# Postgres : error: connection to server at "ip", port 5000 failed: server closed the connection unexpectedly

**URL:** <https://discourse.haproxy.org/t/postgres-error-connection-to-server-at-ip-port-5000-failed-server-closed-the-connection-unexpectedly/9261>\
**Category:** Help!\
**Created:** [November 24, 2023, 3:02am UTC](https://discourse.haproxy.org/t/postgres-error-connection-to-server-at-ip-port-5000-failed-server-closed-the-connection-unexpectedly/9261 "2023-11-24T03:02:01Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Horry](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.haproxy.org/horry/32/2101_2.png) [@Horry](https://discourse.haproxy.org/u/Horry)\
**Post date:** [November 24, 2023, 3:02am UTC](https://discourse.haproxy.org/t/postgres-error-connection-to-server-at-ip-port-5000-failed-server-closed-the-connection-unexpectedly/9261/1 "2023-11-24T03:02:01Z")

</div>

Error Information , this’s i use haproxy shared ip and port to connect to postgres 15 on linux sytsem

[root@postgres\_node1 ~]# psql -h 192.168.80.70 -p 5000 -U postgres  
psql: error: connection to server at “192.168.80.70”, port 5000 failed: server closed the connection unexpectedly  
This probably means the server terminated abnormally  
before or while processing the request.

[root@postgres\_node2 ~]# psql -h 192.168.80.70 -p 5000 -U postgres  
psql: error: connection to server at “192.168.80.70”, port 5000 failed: server closed the connection unexpectedly  
This probably means the server terminated abnormally  
before or while processing the request.

[root@postgres\_node3 ~]# psql -h 192.168.80.70 -p 5000 -U postgres  
psql: error: connection to server at “192.168.80.70”, port 5000 failed: server closed the connection unexpectedly  
This probably means the server terminated abnormally  
before or while processing the request.

and Mysql service information in bellowing :

[root@postgres\_node1 ~]# sudo systemctl -l status patroni  
● patroni.service - Runners to orchestrate a high-availability PostgreSQL  
Loaded: loaded (/usr/lib/systemd/system/patroni.service; disabled; vendor preset: disabled)  
Active: active (running) since Thu 2023-11-23 21:06:32 EST; 22s ago  
Main PID: 1716 (patroni)  
CGroup: /system.slice/patroni.service  
├─1716 /usr/bin/python3 /usr/bin/patroni /etc/patroni/patroni.yml  
├─1754 /usr/pgsql-15/bin/postgres -D /var/lib/pgsql/15/data --config-file=/var/lib/pgsql/15/data/postgresql.conf --listen\_addresses=192.168.80.71 --port=5432 --cluster\_name=pg\_cluster --wal\_level=replica --hot\_standby=on --max\_connections=100 --max\_wal\_senders=10 --max\_prepared\_transactions=0 --max\_locks\_per\_transaction=64 --track\_commit\_timestamp=off --max\_replication\_slots=10 --max\_worker\_processes=8 --wal\_log\_hints=on  
├─1756 postgres: pg\_cluster: logger  
├─1757 postgres: pg\_cluster: checkpointer  
├─1758 postgres: pg\_cluster: background writer  
├─1764 postgres: pg\_cluster: postgres postgres 192.168.80.71(45174) idle  
├─1768 postgres: pg\_cluster: postgres postgres 192.168.80.71(45176) idle  
├─1790 postgres: pg\_cluster: walwriter  
├─1791 postgres: pg\_cluster: autovacuum launcher  
├─1792 postgres: pg\_cluster: logical replication launcher  
├─1826 postgres: pg\_cluster: walsender replicator 192.168.80.73(52492) streaming 0/44A3BC0  
└─1827 postgres: pg\_cluster: walsender replicator 192.168.80.72(54434) streaming 0/44A3BC0

Nov 23 21:06:35 postgres\_node1 patroni[1716]: 192.168.80.71:5432 - accepting connections  
Nov 23 21:06:35 postgres\_node1 patroni[1716]: 2023-11-23 21:06:35,567 INFO: Got response from postgres\_node3 [http://192.168.80.73:8008/patroni:](http://192.168.80.73:8008/patroni:) {“state”: “running”, “postmaster\_start\_time”: “2023-11-23 21:06:34.085010-05:00”, “role”: “replica”, “server\_version”: 150005, “xlog”: {“received\_location”: 71973424, “replayed\_location”: 71973424, “replayed\_timestamp”: null, “paused”: false}, “timeline”: 7, “cluster\_unlocked”: true, “dcs\_last\_seen”: 1700791595, “database\_system\_identifier”: “7303753397857303071”, “patroni”: {“version”: “3.2.0”, “scope”: “pg\_cluster”, “name”: “postgres\_node3”}}  
Nov 23 21:06:35 postgres\_node1 patroni[1716]: 2023-11-23 21:06:35,568 INFO: Got response from postgres\_node2 [http://192.168.80.72:8008/patroni:](http://192.168.80.72:8008/patroni:) {“state”: “running”, “postmaster\_start\_time”: “2023-11-23 21:06:34.089751-05:00”, “role”: “replica”, “server\_version”: 150005, “xlog”: {“received\_location”: 71973424, “replayed\_location”: 71973424, “replayed\_timestamp”: null, “paused”: false}, “timeline”: 7, “cluster\_unlocked”: true, “dcs\_last\_seen”: 1700791595, “database\_system\_identifier”: “7303753397857303071”, “patroni”: {“version”: “3.2.0”, “scope”: “pg\_cluster”, “name”: “postgres\_node2”}}  
Nov 23 21:06:35 postgres\_node1 patroni[1716]: 2023-11-23 21:06:35,647 INFO: Software Watchdog activated with 25 second timeout, timing slack 15 seconds  
Nov 23 21:06:35 postgres\_node1 patroni[1716]: 2023-11-23 21:06:35,661 INFO: Dropped unknown replication slot ‘postgres\_node3’  
Nov 23 21:06:35 postgres\_node1 patroni[1716]: 2023-11-23 21:06:35,665 INFO: Dropped unknown replication slot ‘postgres\_node2’  
Nov 23 21:06:35 postgres\_node1 patroni[1716]: 2023-11-23 21:06:35,679 INFO: promoted self to leader by acquiring session lock  
Nov 23 21:06:35 postgres\_node1 patroni[1716]: server promoting  
Nov 23 21:06:36 postgres\_node1 patroni[1716]: 2023-11-23 21:06:36,756 INFO: no action. I am (postgres\_node1), the leader with the lock  
Nov 23 21:06:46 postgres\_node1 patroni[1716]: 2023-11-23 21:06:46,735 INFO: no action. I am (postgres\_node1), the leader with the lock

[root@postgres\_node2 ~]# sudo systemctl -l status patroni  
● patroni.service - Runners to orchestrate a high-availability PostgreSQL  
Loaded: loaded (/usr/lib/systemd/system/patroni.service; disabled; vendor preset: disabled)  
Active: active (running) since Thu 2023-11-23 21:06:31 EST; 22s ago  
Main PID: 1725 (patroni)  
CGroup: /system.slice/patroni.service  
├─1725 /usr/bin/python3 /usr/bin/patroni /etc/patroni/patroni.yml  
├─1763 /usr/pgsql-15/bin/postgres -D /var/lib/pgsql/15/data --config-file=/var/lib/pgsql/15/data/postgresql.conf --listen\_addresses=192.168.80.72 --port=5432 --cluster\_name=pg\_cluster --wal\_level=replica --hot\_standby=on --max\_connections=100 --max\_wal\_senders=10 --max\_prepared\_transactions=0 --max\_locks\_per\_transaction=64 --track\_commit\_timestamp=off --max\_replication\_slots=10 --max\_worker\_processes=8 --wal\_log\_hints=on  
├─1765 postgres: pg\_cluster: logger  
├─1766 postgres: pg\_cluster: checkpointer  
├─1767 postgres: pg\_cluster: background writer  
├─1768 postgres: pg\_cluster: startup recovering 000000080000000000000004  
├─1774 postgres: pg\_cluster: postgres postgres 192.168.80.72(37476) idle  
├─1779 postgres: pg\_cluster: postgres postgres 192.168.80.72(37478) idle  
└─1851 postgres: pg\_cluster: walreceiver streaming 0/44A3BC0

Nov 23 21:06:35 postgres\_node2 patroni[1725]: 2023-11-23 21:06:35,406 INFO: Local timeline=7 lsn=0/44A3A30  
Nov 23 21:06:35 postgres\_node2 patroni[1725]: server signaled  
Nov 23 21:06:35 postgres\_node2 patroni[1725]: 2023-11-23 21:06:35,696 INFO: following a different leader because i am not the healthiest node  
Nov 23 21:06:36 postgres\_node2 patroni[1725]: 2023-11-23 21:06:36,476 INFO: Lock owner: postgres\_node1; I am postgres\_node2  
Nov 23 21:06:36 postgres\_node2 patroni[1725]: 2023-11-23 21:06:36,482 INFO: Local timeline=7 lsn=0/44A3A30  
Nov 23 21:06:36 postgres\_node2 patroni[1725]: 2023-11-23 21:06:36,489 INFO: no action. I am (postgres\_node2), a secondary, and following a leader (postgres\_node1)  
Nov 23 21:06:46 postgres\_node2 patroni[1725]: 2023-11-23 21:06:46,470 INFO: Lock owner: postgres\_node1; I am postgres\_node2  
Nov 23 21:06:46 postgres\_node2 patroni[1725]: 2023-11-23 21:06:46,479 INFO: Local timeline=8 lsn=0/44A3B88  
Nov 23 21:06:46 postgres\_node2 patroni[1725]: 2023-11-23 21:06:46,506 INFO: primary\_timeline=8  
Nov 23 21:06:46 postgres\_node2 patroni[1725]: 2023-11-23 21:06:46,520 INFO: no action. I am (postgres\_node2), a secondary, and following a leader (postgres\_node1)

[root@postgres\_node3 ~]# sudo systemctl -l status patroni  
● patroni.service - Runners to orchestrate a high-availability PostgreSQL  
Loaded: loaded (/usr/lib/systemd/system/patroni.service; disabled; vendor preset: disabled)  
Active: active (running) since Thu 2023-11-23 21:06:31 EST; 22s ago  
Main PID: 1709 (patroni)  
CGroup: /system.slice/patroni.service  
├─1709 /usr/bin/python3 /usr/bin/patroni /etc/patroni/patroni.yml  
├─1747 /usr/pgsql-15/bin/postgres -D /var/lib/pgsql/15/data --config-file=/var/lib/pgsql/15/data/postgresql.conf --listen\_addresses=192.168.80.73 --port=5432 --cluster\_name=pg\_cluster --wal\_level=replica --hot\_standby=on --max\_connections=100 --max\_wal\_senders=10 --max\_prepared\_transactions=0 --max\_locks\_per\_transaction=64 --track\_commit\_timestamp=off --max\_replication\_slots=10 --max\_worker\_processes=8 --wal\_log\_hints=on  
├─1749 postgres: pg\_cluster: logger  
├─1750 postgres: pg\_cluster: checkpointer  
├─1751 postgres: pg\_cluster: background writer  
├─1752 postgres: pg\_cluster: startup recovering 000000080000000000000004  
├─1758 postgres: pg\_cluster: postgres postgres 192.168.80.73(57974) idle  
├─1765 postgres: pg\_cluster: postgres postgres 192.168.80.73(57980) idle  
└─1834 postgres: pg\_cluster: walreceiver streaming 0/44A3BC0

Nov 23 21:06:35 postgres\_node3 patroni[1709]: 2023-11-23 21:06:35,399 INFO: Local timeline=7 lsn=0/44A3A30  
Nov 23 21:06:35 postgres\_node3 patroni[1709]: server signaled  
Nov 23 21:06:35 postgres\_node3 patroni[1709]: 2023-11-23 21:06:35,712 INFO: following a different leader because i am not the healthiest node  
Nov 23 21:06:36 postgres\_node3 patroni[1709]: 2023-11-23 21:06:36,473 INFO: Lock owner: postgres\_node1; I am postgres\_node3  
Nov 23 21:06:36 postgres\_node3 patroni[1709]: 2023-11-23 21:06:36,480 INFO: Local timeline=7 lsn=0/44A3A30  
Nov 23 21:06:36 postgres\_node3 patroni[1709]: 2023-11-23 21:06:36,487 INFO: no action. I am (postgres\_node3), a secondary, and following a leader (postgres\_node1)  
Nov 23 21:06:46 postgres\_node3 patroni[1709]: 2023-11-23 21:06:46,475 INFO: Lock owner: postgres\_node1; I am postgres\_node3  
Nov 23 21:06:46 postgres\_node3 patroni[1709]: 2023-11-23 21:06:46,487 INFO: Local timeline=8 lsn=0/44A3B88  
Nov 23 21:06:46 postgres\_node3 patroni[1709]: 2023-11-23 21:06:46,514 INFO: primary\_timeline=8  
Nov 23 21:06:46 postgres\_node3 patroni[1709]: 2023-11-23 21:06:46,527 INFO: no action. I am (postgres\_node3), a secondary, and following a leader (postgres\_node1)

So . I check postgres.conf

[root@postgres\_node1 ~]# grep “listen” /var/lib/pgsql/15/data/postgresql.conf  
listen\_addresses = ‘192.168.80.71’  
[root@postgres\_node2 ~]# grep “listen” /var/lib/pgsql/15/data/postgresql.conf  
listen\_addresses = ‘192.168.80.72’  
[root@postgres\_node3 ~]# grep “listen” /var/lib/pgsql/15/data/postgresql.conf  
listen\_addresses = ‘192.168.80.73’

[root@postgres\_node3 ~]# grep “port” /var/lib/pgsql/15/data/postgresql.conf  
port = ‘5432’  
primary\_conninfo = ‘user=replicator passfile=/tmp/pgpass host=192.168.80.71 port=5432 sslmode=prefer application\_name=postgres\_node3 gssencmode=prefer channel\_binding=prefer’

[root@postgres\_node2 ~]# grep “port” /var/lib/pgsql/15/data/postgresql.conf  
port = ‘5432’  
primary\_conninfo = ‘user=replicator passfile=/tmp/pgpass host=192.168.80.71 port=5432 sslmode=prefer application\_name=postgres\_node2 gssencmode=prefer channel\_binding=prefer’

[root@postgres\_node1 ~]# grep “port” /var/lib/pgsql/15/data/postgresql.conf  
port = ‘5432’

and network Port information ,  
[root@postgres\_node1 ~]# netstat -anp | more  
Active Internet connections (servers and established)  
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name  
tcp 0 0 192.168.80.71:2380 0.0.0.0:\* LISTEN 1148/etcd  
tcp 0 0 0.0.0.0:22 0.0.0.0:\* LISTEN 1143/sshd  
tcp 0 0 0.0.0.0:7000 0.0.0.0:\* LISTEN 1842/haproxy  
tcp 0 0 192.168.80.71:5432 0.0.0.0:\* LISTEN 1754/postgres  
tcp 0 0 127.0.0.1:25 0.0.0.0:\* LISTEN 1331/master  
tcp 0 0 0.0.0.0:6432 0.0.0.0:\* LISTEN 1787/pgbouncer  
tcp 0 0 192.168.80.70:5000 0.0.0.0:\* LISTEN 1842/haproxy \<\<\<\<\<\<  
tcp 0 0 192.168.80.71:8008 0.0.0.0:\* LISTEN 1716/python3  
tcp 0 0 192.168.80.70:5001 0.0.0.0:\* LISTEN 1842/haproxy \<\<\<\<\<  
tcp 0 0 192.168.80.71:2379 0.0.0.0:\* LISTEN 1148/etcd

[root@postgres\_node2 ~]# netstat -anp | more  
Active Internet connections (servers and established)  
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name  
tcp 0 0 192.168.80.72:2379 0.0.0.0:\* LISTEN 1148/etcd  
tcp 0 0 192.168.80.72:2380 0.0.0.0:\* LISTEN 1148/etcd  
tcp 0 0 0.0.0.0:22 0.0.0.0:\* LISTEN 1144/sshd  
tcp 0 0 0.0.0.0:7000 0.0.0.0:\* LISTEN 1865/haproxy  
tcp 0 0 192.168.80.72:5432 0.0.0.0:\* LISTEN 1763/postgres  
tcp 0 0 127.0.0.1:25 0.0.0.0:\* LISTEN 1363/master  
tcp 0 0 0.0.0.0:6432 0.0.0.0:\* LISTEN 1798/pgbouncer  
tcp 0 0 192.168.80.70:5000 0.0.0.0:\* LISTEN 1865/haproxy \<\<\<\<\<  
tcp 0 0 192.168.80.72:8008 0.0.0.0:\* LISTEN 1725/python3  
tcp 0 0 192.168.80.70:5001 0.0.0.0:\* LISTEN 1865/haproxy \<\<\<\<\<

[root@postgres\_node3 ~]# netstat -anp | more  
Active Internet connections (servers and established)  
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name  
tcp 0 0 192.168.80.70:5000 0.0.0.0:\* LISTEN 1848/haproxy \<\<\<\<\<  
tcp 0 0 192.168.80.73:8008 0.0.0.0:\* LISTEN 1709/python3  
tcp 0 0 192.168.80.70:5001 0.0.0.0:\* LISTEN 1848/haproxy \<\<\<\<\<  
tcp 0 0 192.168.80.73:2379 0.0.0.0:\* LISTEN 1139/etcd  
tcp 0 0 192.168.80.73:2380 0.0.0.0:\* LISTEN 1139/etcd  
tcp 0 0 0.0.0.0:22 0.0.0.0:\* LISTEN 1131/sshd  
tcp 0 0 0.0.0.0:7000 0.0.0.0:\* LISTEN 1848/haproxy  
tcp 0 0 192.168.80.73:5432 0.0.0.0:\* LISTEN 1747/postgres  
tcp 0 0 127.0.0.1:25 0.0.0.0:\* LISTEN 1327/master  
tcp 0 0 0.0.0.0:6432 0.0.0.0:\* LISTEN 1781/pgbouncer

and this’s my haproxy -vv options information

Node1:  
[root@postgres\_node1 ~]# haproxy -vv  
HA-Proxy version 1.5.18 2016/05/10  
Copyright 2000-2016 Willy Tarreau [willy@haproxy.org](mailto:willy@haproxy.org)

Build options :  
TARGET = linux2628  
CPU = generic  
CC = gcc  
CFLAGS = -O2 -g -fno-strict-aliasing -DTCP\_USER\_TIMEOUT=18  
OPTIONS = USE\_LINUX\_TPROXY=1 USE\_GETADDRINFO=1 USE\_ZLIB=1 USE\_REGPARM=1 USE\_OPENSSL=1 USE\_PCRE=1

Default settings :  
maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents = 200

Encrypted password support via crypt(3): yes  
Built with zlib version : 1.2.7  
Compression algorithms supported : identity, deflate, gzip  
Built with OpenSSL version : OpenSSL 1.0.2k-fips 26 Jan 2017  
Running on OpenSSL version : OpenSSL 1.0.2k-fips 26 Jan 2017  
OpenSSL library supports TLS extensions : yes  
OpenSSL library supports SNI : yes  
OpenSSL library supports prefer-server-ciphers : yes  
Built with PCRE version : 8.32 2012-11-30  
PCRE library supports JIT : no (USE\_PCRE\_JIT not set)  
Built with transparent proxy support using: IP\_TRANSPARENT IPV6\_TRANSPARENT IP\_FREEBIND

Available polling systems :  
epoll : pref=300, test result OK  
poll : pref=200, test result OK  
select : pref=150, test result OK  
Total: 3 (3 usable), will use epoll.

Node2:  
[root@postgres\_node2 ~]# haproxy -vv  
HA-Proxy version 1.5.18 2016/05/10  
Copyright 2000-2016 Willy Tarreau [willy@haproxy.org](mailto:willy@haproxy.org)

Build options :  
TARGET = linux2628  
CPU = generic  
CC = gcc  
CFLAGS = -O2 -g -fno-strict-aliasing -DTCP\_USER\_TIMEOUT=18  
OPTIONS = USE\_LINUX\_TPROXY=1 USE\_GETADDRINFO=1 USE\_ZLIB=1 USE\_REGPARM=1 USE\_OPENSSL=1 USE\_PCRE=1

Default settings :  
maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents = 200

Encrypted password support via crypt(3): yes  
Built with zlib version : 1.2.7  
Compression algorithms supported : identity, deflate, gzip  
Built with OpenSSL version : OpenSSL 1.0.2k-fips 26 Jan 2017  
Running on OpenSSL version : OpenSSL 1.0.2k-fips 26 Jan 2017  
OpenSSL library supports TLS extensions : yes  
OpenSSL library supports SNI : yes  
OpenSSL library supports prefer-server-ciphers : yes  
Built with PCRE version : 8.32 2012-11-30  
PCRE library supports JIT : no (USE\_PCRE\_JIT not set)  
Built with transparent proxy support using: IP\_TRANSPARENT IPV6\_TRANSPARENT IP\_FREEBIND

Available polling systems :  
epoll : pref=300, test result OK  
poll : pref=200, test result OK  
select : pref=150, test result OK  
Total: 3 (3 usable), will use epoll.

Node3:  
[root@postgres\_node3 ~]# haproxy -vv  
HA-Proxy version 1.5.18 2016/05/10  
Copyright 2000-2016 Willy Tarreau [willy@haproxy.org](mailto:willy@haproxy.org)

Build options :  
TARGET = linux2628  
CPU = generic  
CC = gcc  
CFLAGS = -O2 -g -fno-strict-aliasing -DTCP\_USER\_TIMEOUT=18  
OPTIONS = USE\_LINUX\_TPROXY=1 USE\_GETADDRINFO=1 USE\_ZLIB=1 USE\_REGPARM=1 USE\_OPENSSL=1 USE\_PCRE=1

Default settings :  
maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents = 200

Encrypted password support via crypt(3): yes  
Built with zlib version : 1.2.7  
Compression algorithms supported : identity, deflate, gzip  
Built with OpenSSL version : OpenSSL 1.0.2k-fips 26 Jan 2017  
Running on OpenSSL version : OpenSSL 1.0.2k-fips 26 Jan 2017  
OpenSSL library supports TLS extensions : yes  
OpenSSL library supports SNI : yes  
OpenSSL library supports prefer-server-ciphers : yes  
Built with PCRE version : 8.32 2012-11-30  
PCRE library supports JIT : no (USE\_PCRE\_JIT not set)  
Built with transparent proxy support using: IP\_TRANSPARENT IPV6\_TRANSPARENT IP\_FREEBIND

Available polling systems :  
epoll : pref=300, test result OK  
poll : pref=200, test result OK  
select : pref=150, test result OK  
Total: 3 (3 usable), will use epoll.

Please , Any someone help me , tanks.
