Skip to content

PostgreSQL error ( log Docker) #1249

@matteopetri2002

Description

@matteopetri2002

I'm running two replicated databases with Docker and tried to add a load balancer (HAProxy), but every time I do docker compose up, I get the following log:

haproxy-1     | Connect from 192.168.65.1:27560 to 172.21.0.4:5432 (pgsql/TCP)
haproxy-1     | Connect from 192.168.65.1:41348 to 172.21.0.4:5432 (pgsql/TCP)
pg_primary-1  | 2024-06-18 14:50:12.989 UTC [357] LOG:  invalid length of startup packet
pg_replica-1  | 2024-06-18 14:50:14.094 UTC [304] LOG:  invalid length of startup packet
haproxy-1     | Connect from 192.168.65.1:34021 to 172.21.0.4:5432 (pgsql/TCP)
pg_primary-1  | 2024-06-18 14:50:14.103 UTC [366] LOG:  invalid length of startup packet
haproxy-1     | Connect from 192.168.65.1:38342 to 172.21.0.4:5432 (pgsql/TCP)
pg_replica-1  | 2024-06-18 14:50:14.114 UTC [313] LOG:  invalid length of startup packet
haproxy-1     | Connect from 192.168.65.1:24032 to 172.21.0.4:5432 (pgsql/TCP)
pg_primary-1  | 2024-06-18 14:50:15.705 UTC [368] LOG:  invalid length of startup packet
haproxy-1     | Connect from 192.168.65.1:61890 to 172.21.0.4:5432 (pgsql/TCP)
haproxy-1     | Connect from 192.168.65.1:37349 to 172.21.0.4:5432 (pgsql/TCP)
pg_replica-1  | 2024-06-18 14:50:16.293 UTC [315] LOG:  invalid length of startup packet
pg_primary-1  | 2024-06-18 14:50:16.299 UTC [369] LOG:  invalid length of startup packet
haproxy-1     | Connect from 192.168.65.1:18951 to 172.21.0.4:5432 (pgsql/TCP)
pg_replica-1  | 2024-06-18 14:50:16.309 UTC [316] LOG:  invalid length of startup packet
haproxy-1     | Connect from 192.168.65.1:22642 to 172.21.0.4:5432 (pgsql/TCP)
haproxy-1     | Connect from 192.168.65.1:31553 to 172.21.0.4:5432 (pgsql/TCP)
pg_primary-1  | 2024-06-18 14:50:16.483 UTC [371] LOG:  invalid length of startup packet
pg_primary-1  | 2024-06-18 14:51:21.182 UTC [51] LOG:  checkpoint starting: time
pg_primary-1  | 2024-06-18 14:51:25.360 UTC [51] LOG:  checkpoint complete: wrote 42 buffers (0.3%); 0 WAL file(s) added, 0 removed, 1 recycled; write=4.148 s, sync=0.011 s, total=4.178 s; sync files=10, longest=0.007 s, average=0.002 s; distance=16644 kB, estimate=16644 kB; lsn=0/30413D0, redo lsn=0/3041398

My Docker Compose file is structured like this:

services:
  pg_primary:
    image: postgres:16
    user: postgres
    restart: always
    healthcheck:
      test: 'pg_isready -U user --dbname=postgres'
      interval: 10s
      timeout: 5s
      retries: 5
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_HOST_AUTH_METHOD: "scram-sha-256\nhost replication all 0.0.0.0/0 md5"
      POSTGRES_INITDB_ARGS: "--auth-host=scram-sha-256"
    command: |
      postgres
      -c wal_level=replica
      -c hot_standby=on
      -c max_wal_senders=10
      -c max_replication_slots=10
      -c hot_standby_feedback=on
    volumes:
      - ${PWD}/00_init.sql:/docker-entrypoint-initdb.d/00_init.sql:ro

  pg_replica:
    image: postgres:16
    user: postgres
    restart: always
    healthcheck:
      test: 'pg_isready -U user --dbname=postgres'
      interval: 10s
      timeout: 5s
      retries: 5
    ports:
      - 5433:5432
    environment:
      PGUSER: replicator
      PGPASSWORD: replicator_password
    command: |
      bash -c "
      until pg_basebackup --pgdata=/var/lib/postgresql/data -R --slot=replication_slot --host=pg_primary --port=5432
      do
      echo 'Waiting for primary to connect..'
      sleep 1s
      done
      echo 'Backup done, starting replica...'
      chmod 0700 /var/lib/postgresql/data
      postgres
      "
    depends_on:
      - pg_primary

  pgadmin:
    image: dpage/pgadmin4
    restart: always
    ports:
      - 8080:80
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@example.com
      PGADMIN_DEFAULT_PASSWORD: admin
    depends_on:
      - pg_primary
      - pg_replica

  haproxy:
    image: haproxy:2.5
    restart: always
    ports:
      - 5434:5432
    volumes:
      - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
    depends_on:
      - pg_primary
      - pg_replica
    entrypoint: ["sh", "-c", "sleep 10 && haproxy -f /usr/local/etc/haproxy/haproxy.cfg"]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions