Skip to content

worker threads for postgresql are not terminated properly on PROXYSQL RESTART; #5086

@mirostauder

Description

@mirostauder

proxysql - current HEAD 3.0.3-64-g0d2e9ef_DEBUG

While connecting to the proxysql postgresql query port, the psql client seems to hang, and needs to be stopped by CTLR-C.

# psql --version
psql (PostgreSQL) 17.5 (Debian 17.5-1)
# psql -Uroot -h127.0.0.1 -p6133
^C
#

Reproducible in about 50% of tries.
Expected result is the password prompt:

# psql -Uroot -h127.0.0.1 -p6133 
Password for user root: 

To reproduce, start proxysql, and issue a PROXYSQL RESTART; command.

listing the bound 6133 ports shows 4, before restart:

# netstat -ntpl | grep 6133
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   

listing the bound 6133 ports shows 8, after restart:

# netstat -ntpl | grep 6133
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   
tcp        0      0 0.0.0.0:6133            0.0.0.0:*               LISTEN      161161/./proxysql   

Conclusion:
postgresql working threads are not being terminated properly by the PROXYSQL RESTART; command, and a new set of threads is started.
Zombie threads are getting 50% of the connections which then hang.

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions