PQcancel does not use tcp_user_timeout, connect_timeout and keepalive settings - Mailing list pgsql-hackers

From Jelte Fennema
Subject PQcancel does not use tcp_user_timeout, connect_timeout and keepalive settings
Date
Msg-id AM5PR83MB017870DE81FC84D5E21E9D1EF7AA9@AM5PR83MB0178.EURPRD83.prod.outlook.com
Whole thread Raw
Responses Re: PQcancel does not use tcp_user_timeout, connect_timeout and keepalive settings
List pgsql-hackers
The new connection made by PQcancel does not use the tcp_user_timeout, connect_timeout or any of the keepalive settings
thatare provided in the connection string. This means that a call to PQcancel can block for a much longer time than
intendedif there are network issues. This can be especially impactful, because PQcancel is a blocking function an there
isno non blocking version of it.  

I attached a proposed patch to use the tcp_user_timeout from the connection string when connecting to Postgres in
PQcancel.This resolves the issue for me, since this will make connecting timeout after a configurable time. So the
otheroptions are not strictly needed. It might still be nice for completeness to support them too though. I didn't do
thisyet, because I first wanted some feedback and also because implementing connect_timeout would require using non
blockingTCP to connect and then use select to have a timeout. 
Attachment

pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: prevent immature WAL streaming
Next
From: Zhihong Yu
Date:
Subject: Re: PQcancel does not use tcp_user_timeout, connect_timeout and keepalive settings