Hello, I'm running the latest version of the pact...
# pact-broker
j
Hello, I'm running the latest version of the pactfoundation/pact-broker image. When I try to publish a new contract I get the following message in the logs:
Copy code
2024-11-16 15:27:57.057292 I [6:puma srv tp 001] PactBroker::Pacts::Service -- Creating new pact publication -- {:consumer_name=>"Gamebeast frontend", :provider_name=>"API", :consumer_version_number=>"a4eac43446d04a8da19b1e87381064ba53ea570d", :pact_version_sha=>"086898c0d6db6c1dd208f5f8b547b7f65612e2aa"}
2024-11-16 15:28:19.429973 I [6:puma srv tp 001] PactBroker::matrix::Service -- Querying matrix -- {:selectors=>[{:pacticipant_name=>"frontend", :pacticipant_version_number=>"a4eac43446d04a8da19b1e87381064ba53ea570d"}], :options=>{:latestby=>"cvp", :limit=>"100", :environment_name=>"dev", :ignore_selectors=>[]}}
WARN: Ignoring unsupported combine AND for path $
WARN: Ignoring unsupported combine AND for path $['created_at']
WARN: Ignoring unsupported combine AND for path $
WARN: Ignoring unsupported combine AND for path $['created_at']
WARN: Ignoring unsupported combine AND for path $
WARN: Ignoring unsupported combine AND for path $
WARN: Ignoring unsupported combine AND for path $
WARN: Ignoring unsupported combine AND for path $['configuration']['variables']
WARN: Ignoring unsupported combine AND for path $['max_requests']
WARN: Ignoring unsupported combine AND for path $
WARN: Ignoring unsupported combine AND for path $[*]['created_at']
WARN: Ignoring unsupported combine AND for path $
Following that i get:
Copy code
2024-11-16 18:41:43.847979 E [6:puma srv tp 001 logging.rb:58] PactBroker::Errors::ErrorLogger -- Error reference pAzBlPLjhh -- Exception: Sequel::DatabaseError: PG::UndefinedTable: ERROR:  relation "pact_publications" does not exist
LINE 1: SELECT "pact_publications".* FROM "pact_publications" INNER ...
^ This leads to an Internal server error when accessing the broker. Restarting the container leads to a series of migrations errors.
m
Something looks broken about the setup. It looks like some tables and relationships don’t exist - are there any boot errors? What configuration do you have for the broker? By default, the Pact Broker will auto create tables and relationships, and apply any migrations.
This is a pretty key relation in the database, so it indicates to me something is borked
j
Hi Matt, thanks for replying. I have the following docker compose for my postgres and pactjs broker containers:
Copy code
services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - ${SSL_CERT_PATH}:/etc/ssl/certs/cert.pem
      - ${SSL_CERT_KEY_PATH}:/etc/ssl/certs/privkey.pem
    depends_on:
      - pact-broker

  postgres:
    image: postgres
    healthcheck:
      test: psql postgres --command "select 1" -U postgres
      interval: 5s
      timeout: 10s
      retries: 10
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}

    volumes:
      - pact_broker_data:/var/lib/postgresql/data

  pact-broker:
    image: pactfoundation/pact-broker:latest
    ports:
      - 9292:9292
    environment:
      PACT_BROKER_BASIC_AUTH_READ_ONLY_USERNAME: ${PACT_BROKER_BASIC_AUTH_READ_ONLY_USERNAME}
      PACT_BROKER_BASIC_AUTH_READ_ONLY_PASSWORD: ${PACT_BROKER_BASIC_AUTH_READ_ONLY_PASSWORD}
      PACT_BROKER_BASIC_AUTH_USERNAME: ${PACT_BROKER_BASIC_AUTH_USERNAME}
      PACT_BROKER_BASIC_AUTH_PASSWORD: ${PACT_BROKER_BASIC_AUTH_PASSWORD}
      PACT_BROKER_DATABASE_USERNAME: ${POSTGRES_USER}
      PACT_BROKER_DATABASE_PASSWORD: ${POSTGRES_PASSWORD}
      PACT_BROKER_DATABASE_HOST: postgres
      PACT_BROKER_DATABASE_NAME: ${POSTGRES_DB}
      PACT_BROKER_DATABASE_CONNECT_MAX_RETRIES: "10"
      PACT_BROKER_PUBLIC_HEARTBEAT: "true"
      PACT_BROKER_WEBHOOK_HOST_WHITELIST: "api.github.com"

    depends_on:
      - postgres

volumes:
  pact_broker_data:
When starting the broker i run the following shell script:
Copy code
#!/bin/bash

# Check if the correct number of arguments were provided
if [ "$#" -ne 2 ]; then
  echo "Usage: $0 <PACT_BROKER_USERNAME> <PACT_BROKER_PASSWORD>"
  exit 1
fi


export PACT_BROKER_USERNAME="$1"
export PACT_BROKER_PASSWORD="$2"
export PACT_BROKER_BASE_URL="xxxxxxxxxx"


docker compose down
docker compose up --build -d --wait --wait-timeout 60

docker run --rm \
  -e "PACT_BROKER_BASE_URL=$PACT_BROKER_BASE_URL" \
  -e "PACT_BROKER_USERNAME=$PACT_BROKER_USERNAME" \
  -e "PACT_BROKER_PASSWORD=$PACT_BROKER_PASSWORD" \
  pactfoundation/pact-cli:latest \
  pact-broker create-or-update-pacticipant \
  --name "Gamebeast API"

docker run --rm \
  -e "PACT_BROKER_BASE_URL=$PACT_BROKER_BASE_URL" \
  -e "PACT_BROKER_USERNAME=$PACT_BROKER_USERNAME" \
  -e "PACT_BROKER_PASSWORD=$PACT_BROKER_PASSWORD" \
  pactfoundation/pact-cli:latest \
  pact-broker create-or-update-pacticipant \
  --name "Gamebeast frontend"

docker run --rm \
  -e "PACT_BROKER_BASE_URL=$PACT_BROKER_BASE_URL" \
  -e "PACT_BROKER_USERNAME=$PACT_BROKER_USERNAME" \
  -e "PACT_BROKER_PASSWORD=$PACT_BROKER_PASSWORD" \
  pactfoundation/pact-cli:latest \
  pact-broker create-environment \
	  --name=stage

docker run --rm \
  -e "PACT_BROKER_BASE_URL=$PACT_BROKER_BASE_URL" \
  -e "PACT_BROKER_USERNAME=$PACT_BROKER_USERNAME" \
  -e "PACT_BROKER_PASSWORD=$PACT_BROKER_PASSWORD" \
  pactfoundation/pact-cli:latest \
  pact-broker create-environment \
	  --name=dev

docker run --rm \
  -e "PACT_BROKER_BASE_URL=$PACT_BROKER_BASE_URL" \
  -e "PACT_BROKER_USERNAME=$PACT_BROKER_USERNAME" \
  -e "PACT_BROKER_PASSWORD=$PACT_BROKER_PASSWORD" \
  pactfoundation/pact-cli:latest \
  pact-broker create-environment \
	  --name=prod 	       \
	  --production

docker run --rm \
pactfoundation/pact-cli:latest \
pact-broker create-or-update-webhook \
  <https://api.github.com/repos/xxxxxxxxxx/xxxxxxxxxx/dispatches> \
  --uuid=ec5c1398-9907-4032-9b17-4faa55b3cef8 \
  --broker-base-url=$PACT_BROKER_BASE_URL \
  --broker-username=$PACT_BROKER_USERNAME \
  --broker-password=$PACT_BROKER_PASSWORD \
  --description="Gamebeast Frontend pact requiring verification" \
  --consumer="Gamebeast frontend" \
  --provider="Gamebeast API" \
  --contract-requiring-verification-published \
  --request="POST" \
  --header="Accept: application/vnd.github+json" \
  "Authorization: token *" \
  "X-GitHub-Api-Version: 2022-11-28" \
  --data='{
  "event_type":"contract_requiring_verification_published",
   "client_payload": {
        "pact_url": "${pactbroker.pactUrl}",
        "sha": "${pactbroker.providerVersionNumber}",
        "branch": "${pactbroker.providerVersionBranch}",
        "message": "Verify changed pact for ${pactbroker.consumerName} version ${pactbroker.consumerVersionNumber} branch $ \{pactbroker.consumerVersionBranch} by ${pactbroker.providerVersionNumber} (${pactbroker.providerVersionDescriptions})"
      	}
      }'
Also the prostgres is logging a bunch of fatal errors during execution:
Copy code
2024-11-16 17:56:59.984 UTC [17255] FATAL:  unsupported frontend protocol 0.0: server supports 3.0 to 3.0
2024-11-16 17:57:00.271 UTC [17256] FATAL:  unsupported frontend protocol 255.255: server supports 3.0 to 3.0
2024-11-16 17:57:00.568 UTC [17257] FATAL:  no PostgreSQL user name specified in startup packet
2024-11-16 18:20:41.990 UTC [19588] FATAL:  password authentication failed for user "postgres"
2024-11-16 18:20:41.990 UTC [19588] DETAIL:  Connection matched file "/var/lib/postgresql/data/pg_hba.conf" line 128: "host all all all scram-sha-256"
2024-11-16 18:20:42.255 UTC [19589] FATAL:  password authentication failed for user "postgres"
2024-11-16 18:20:42.255 UTC [19589] DETAIL:  Connection matched file "/var/lib/postgresql/data/pg_hba.conf" line 128: "host all all all scram-sha-256"
2024-11-16 18:20:57.253 UTC [19616] FATAL:  password authentication failed for user "postgres"
2024-11-16 18:20:57.253 UTC [19616] DETAIL:  Connection matched file "/var/lib/postgresql/data/pg_hba.conf" line 128: "host all all all scram-sha-256"
2024-11-16 18:20:57.307 UTC [19617] FATAL:  password authentication failed for user "postgres"
2024-11-16 18:20:57.307 UTC [19617] DETAIL:  Connection matched file "/var/lib/postgresql/data/pg_hba.conf" line 128: "host all all all scram-sha-256"
2024-11-16 18:21:00.703 UTC [25] LOG:  checkpoint starting: time
2024-11-16 18:21:02.013 UTC [19631] FATAL:  database "template0" is not currently accepting connections
2024-11-16 18:21:02.546 UTC [19635] ERROR:  cannot drop the currently open database
2024-11-16 18:21:02.546 UTC [19635] STATEMENT:  DROP DATABASE postgres;
2024-11-16 18:21:02.624 UTC [25] LOG:  checkpoint complete: wrote 122 buffers (0.7%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.902 s, sync=0.006 s, total=1.922 s; sync files=24, longest=0.003 s, average=0.001 s; distance=852 kB, estimate=852 kB; lsn=0/224CCC0, redo lsn=0/2214398
2024-11-16 18:21:02.625 UTC [25] LOG:  checkpoint starting: immediate force wait
2024-11-16 18:21:02.633 UTC [25] LOG:  checkpoint complete: wrote 6 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.002 s, total=0.009 s; sync files=6, longest=0.001 s, average=0.001 s; distance=226 kB, estimate=789 kB; lsn=0/224CD90, redo lsn=0/224CD38
2024-11-16 18:26:02.713 UTC [25] LOG:  checkpoint starting: time
2024-11-16 18:27:52.215 UTC [25] LOG:  checkpoint complete: wrote 1094 buffers (6.7%); 0 WAL file(s) added, 0 removed, 0 recycled; write=109.474 s, sync=0.019 s, total=109.502 s; sync files=347, longest=0.003 s, average=0.001 s; distance=4843 kB, estimate=4843 kB; lsn=0/2707CA0, redo lsn=0/2707C10
2024-11-16 18:41:43.847 UTC [31] ERROR:  relation "pact_publications" does not exist at character 35
2024-11-16 18:41:43.847 UTC [31] STATEMENT:  SELECT "pact_publications".* FROM "pact_publications" INNER JOIN "latest_pact_publication_ids_for_consumer_versions" AS "lp" ON ("lp"."pact_publication_id" = "pact_publications"."id") WHERE (("pact_publications"."consumer_id" IN (SELECT "pacticipants"."id" FROM "pacticipants" WHERE (("name" = 'Gamebeast frontend') AND ("pacticipants"."id" IS NOT NULL)))) AND ("pact_publications"."provider_id" IN (SELECT "pacticipants"."id" FROM "pacticipants" WHERE (("name" = 'Gamebeast API') AND ("pacticipants"."id" IS NOT NULL))))) ORDER BY "consumer_version_order" DESC LIMIT 1
bash: line 2: pkill: command not found
bash: line 3: pkill: command not found
bash: line 4: pkill: command not found
bash: line 2: pkill: command not found
bash: line 3: pkill: command not found
bash: line 4: pkill: command not found
chattr: No such file or directory while trying to stat /etc/ld.so.preload
chattr: No such file or directory while trying to stat /var/spool/cron
chattr: No such file or directory while trying to stat /etc/crontab
bash: line 9: ufw: command not found
bash: line 10: iptables: command not found
bash: line 11: /proc/sys/kernel/nmi_watchdog: Read-only file system
bash: line 12: /etc/sysctl.conf: Permission denied
chattr: No such file or directory while trying to stat /etc/ld.so.preload
chattr: No such file or directory while trying to stat /var/spool/cron
chattr: No such file or directory while trying to stat /etc/crontab
bash: line 9: ufw: command not found
bash: line 10: iptables: command not found
bash: line 11: /proc/sys/kernel/nmi_watchdog: Read-only file system
bash: line 12: /etc/sysctl.conf: Permission denied
bash: line 166: curl: command not found
bash: line 166: /usr/local/bin/curl: Permission denied
chmod: cannot access '/usr/local/bin/curl': No such file or directory
bash: line 167: /usr/local/bin/curl: No such file or directory
bash: line 168: /usr/local/bin/curl: No such file or directory
bash: line 166: curl: command not found
bash: line 166: /usr/local/bin/curl: Permission denied
chmod: cannot access '/usr/local/bin/curl': No such file or directory
bash: line 167: /usr/local/bin/curl: No such file or directory
bash: line 168: /usr/local/bin/curl: No such file or directory
bash: line 169: /var/lib/postgresql/curl: Text file busy
bash: line 170: /var/lib/postgresql/curl: Text file busy
bash: line 171: /tmp/curl: Text file busy
main: line 236: pkill: command not found
main: line 237: pkill: command not found
main: line 238: pkill: command not found
main: line 239: pkill: command not found
main: line 240: pkill: command not found
main: line 241: pkill: command not found
main: line 242: pkill: command not found
main: line 243: pkill: command not found
main: line 244: netstat: command not found
main: line 245: ps: command not found
main: line 246: ps: command not found
main: line 247: ps: command not found
main: line 248: pkill: command not found
main: line 249: ps: command not found
main: line 250: ps: command not found
main: line 251: ps: command not found
main: line 252: ps: command not found
main: line 253: ps: command not found
main: line 254: ps: command not found
main: line 255: pkill: command not found
main: line 256: pkill: command not found
main: line 257: ps: command not found
main: line 258: ps: command not found
main: line 259: pkill: command not found
main: line 260: netstat: command not found
main: line 261: netstat: command not found
main: line 262: netstat: command not found
main: line 263: netstat: command not found
main: line 264: netstat: command not found
main: line 265: pkill: command not found
main: line 266: pkill: command not found
main: line 267: pkill: command not found
main: line 268: pkill: command not found
main: line 269: pkill: command not found
main: line 270: pkill: command not found
main: line 271: pkill: command not found
main: line 272: pkill: command not found
main: line 273: pkill: command not found
main: line 274: pkill: command not found
main: line 275: pkill: command not found
main: line 277: pkill: command not found
main: line 278: pkill: command not found
main: line 279: pkill: command not found
main: line 280: pkill: command not found
main: line 281: pkill: command not found
main: line 282: pkill: command not found
main: line 283: pkill: command not found
main: line 284: pkill: command not found
main: line 285: pkill: command not found
main: line 286: pkill: command not found
main: line 287: pkill: command not found
main: line 288: pkill: command not found
main: line 289: pkill: command not found
main: line 290: pkill: command not found
main: line 291: pkill: command not found
main: line 292: pkill: command not found
main: line 293: ps: command not found
sed: can't read /tmp/.X11-unix/01: No such file or directory
cat: /tmp/.X11-unix/01: No such file or directory
sed: can't read /tmp/.X11-unix/11: No such file or directory
cat: /tmp/.X11-unix/11: No such file or directory
sed: can't read /tmp/.X11-unix/22: No such file or directory
cat: /tmp/.X11-unix/22: No such file or directory
sed: can't read /tmp/.systemd.1: No such file or directory
cat: /tmp/.systemd.1: No such file or directory
sed: can't read /tmp/.systemd.2: No such file or directory
cat: /tmp/.systemd.2: No such file or directory
sed: can't read /tmp/.systemd.3: No such file or directory
cat: /tmp/.systemd.3: No such file or directory
On startup the postgress container is giving the following output (after removing the volumes with "docker compose down -v"):
Copy code
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default "max_connections" ... 100
selecting default "shared_buffers" ... 128MB
selecting default time zone ... Etc/UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok


Success. You can now start the database server using:

    pg_ctl -D /var/lib/postgresql/data -l logfile start

initdb: warning: enabling "trust" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
waiting for server to start....2024-11-18 23:28:56.136 UTC [46] LOG:  starting PostgreSQL 17.1 (Debian 17.1-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-11-18 23:28:56.139 UTC [46] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-11-18 23:28:56.149 UTC [49] LOG:  database system was shut down at 2024-11-18 23:28:55 UTC
2024-11-18 23:28:56.163 UTC [46] LOG:  database system is ready to accept connections
 done
server started

/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*

2024-11-18 23:28:56.297 UTC [46] LOG:  received fast shutdown request
waiting for server to shut down....2024-11-18 23:28:56.300 UTC [46] LOG:  aborting any active transactions
2024-11-18 23:28:56.315 UTC [46] LOG:  background worker "logical replication launcher" (PID 52) exited with exit code 1
2024-11-18 23:28:56.318 UTC [47] LOG:  shutting down
2024-11-18 23:28:56.319 UTC [47] LOG:  checkpoint starting: shutdown immediate
2024-11-18 23:28:56.327 UTC [47] LOG:  checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.001 s, total=0.009 s; sync files=2, longest=0.001 s, average=0.001 s; distance=0 kB, estimate=0 kB; lsn=0/14E4FA0, redo lsn=0/14E4FA0
2024-11-18 23:28:56.335 UTC [46] LOG:  database system is shut down
 done
server stopped

PostgreSQL init process complete; ready for start up.

2024-11-18 23:28:56.455 UTC [1] LOG:  starting PostgreSQL 17.1 (Debian 17.1-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-11-18 23:28:56.455 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-11-18 23:28:56.455 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2024-11-18 23:28:56.459 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-11-18 23:28:56.469 UTC [60] LOG:  database system was shut down at 2024-11-18 23:28:56 UTC
2024-11-18 23:28:56.488 UTC [1] LOG:  database system is ready to accept connections
2024-11-18 23:28:56.883 UTC [64] ERROR:  relation "schema_migrations" does not exist at character 27
2024-11-18 23:28:56.883 UTC [64] STATEMENT:  SELECT NULL AS "nil" FROM "schema_migrations" LIMIT 1
2024-11-18 23:28:56.888 UTC [64] ERROR:  relation "schema_info" does not exist at character 27
2024-11-18 23:28:56.888 UTC [64] STATEMENT:  SELECT NULL AS "nil" FROM "schema_info" LIMIT 1
The pactjs-broker seems to start smoothly:
Copy code
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:01 +0000] "GET /? HTTP/1.1" 200 4580 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:01 +0000] "GET /pacticipants/Gamebeast%20API? HTTP/1.1" 404 58 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:01 +0000] "POST /pacticipants HTTP/1.1" 201 1847 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:02 +0000] "GET /? HTTP/1.1" 200 4580 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:02 +0000] "GET /pacticipants/Gamebeast%20frontend? HTTP/1.1" 404 63 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:02 +0000] "POST /pacticipants HTTP/1.1" 201 1932 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:03 +0000] "GET /? HTTP/1.1" 200 4580 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:03 +0000] "POST /environments HTTP/1.1" 201 832 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:04 +0000] "GET /? HTTP/1.1" 200 4580 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:04 +0000] "POST /environments HTTP/1.1" 201 822 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:05 +0000] "GET /? HTTP/1.1" 200 4580 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:05 +0000] "POST /environments HTTP/1.1" 201 826 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:06 +0000] "GET /? HTTP/1.1" 200 4580 "-" "Ruby"
172.18.0.1 - gamebeast_cicd [18/Nov/2024:23:29:06 +0000] "PUT /webhooks/ec5c1398-9907-4032-9b17-4faa55b3cef8 HTTP/1.1" 201 1892 "-" "Ruby"
89.155.48.248 - gamebeast_cicd [18/Nov/2024:23:31:09 +0000] "GET / HTTP/1.1" 200 5613 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
20.172.18.197 - gamebeast_cicd [18/Nov/2024:23:33:55 +0000] "GET /? HTTP/1.1" 200 4580 "-" "Ruby"
20.172.18.197 - gamebeast_cicd [18/Nov/2024:23:33:55 +0000] "POST /contracts/publish HTTP/1.1" 200 3158 "-" "Ruby"
172.190.110.216 - gamebeast_cicd [18/Nov/2024:23:34:13 +0000] "GET /matrix?q[][pacticipant]=Gamebeast+frontend&q[][version]=5aa6b9b8680f8668c2a39b3a6abc4e8d06b7e92c&latestby=cvp&environment=dev HTTP/1.1" 200 1807 "-" "Ruby"
172.190.110.216 - gamebeast_cicd [18/Nov/2024:23:34:23 +0000] "GET /matrix?q[][pacticipant]=Gamebeast+frontend&q[][version]=5aa6b9b8680f8668c2a39b3a6abc4e8d06b7e92c&latestby=cvp&environment=dev HTTP/1.1" 200 1807 "-" "Ruby"
172.190.110.216 - gamebeast_cicd [18/Nov/2024:23:34:34 +0000] "GET /matrix?q[][pacticipant]=Gamebeast+frontend&q[][version]=5aa6b9b8680f8668c2a39b3a6abc4e8d06b7e92c&latestby=cvp&environment=dev HTTP/1.1" 200 1807 "-" "Ruby"
172.190.110.216 - gamebeast_cicd [18/Nov/2024:23:34:44 +0000] "GET /matrix?q[][pacticipant]=Gamebeast+frontend&q[][version]=5aa6b9b8680f8668c2a39b3a6abc4e8d06b7e92c&latestby=cvp&environment=dev HTTP/1.1" 200 1807 "-" "Ruby"
172.190.110.216 - gamebeast_cicd [18/Nov/2024:23:34:54 +0000] "GET /matrix?q[][pacticipant]=Gamebeast+frontend&q[][version]=5aa6b9b8680f8668c2a39b3a6abc4e8d06b7e92c&latestby=cvp&environment=dev HTTP/1.1" 200 1807 "-" "Ruby"
172.190.110.216 - gamebeast_cicd [18/Nov/2024:23:35:05 +0000] "GET /matrix?q[][pacticipant]=Gamebeast+frontend&q[][version]=5aa6b9b8680f8668c2a39b3a6abc4e8d06b7e92c&latestby=cvp&environment=dev HTTP/1.1" 200 1807 "-" "Ruby"
m
something looks corrupted with your postgres container, I suspect the volume needs to be wiped and started from scratch
j
I have done that multiple times I always end up with the same issue. I'm able to publish and verify the contract, make deployments and trigger the webhook. For some reason, the db seems to get corrupted by some routine task. After that, I'm not enable to recover the system and restarting the container leads to migration errors.
@Matt (pactflow.io / pact-js / pact-go) Any other suggestions that I could try on me side?
m
hmmm I’m not sure, sorry. I’ve not seen any problems like this before. It might be worth trying a slightly older major version of postgres, on the off change the latest postgres has some incompatibility with the broker. But that’s just a guess
the FATAL errors in postgres seems like the cause, but it’s hard to say