RE: Add client connection check during the execution of the query - Mailing list pgsql-hackers

From tsunakawa.takay@fujitsu.com
Subject RE: Add client connection check during the execution of the query
Date
Msg-id TYAPR01MB2990F4C319FC852CCED60394FE7B9@TYAPR01MB2990.jpnprd01.prod.outlook.com
Whole thread Raw
In response to Re: Add client connection check during the execution of the query  (Thomas Munro <thomas.munro@gmail.com>)
Responses Re: Add client connection check during the execution of the query
List pgsql-hackers
From: Thomas Munro <thomas.munro@gmail.com>
> I changed my mind.  Let's commit the pleasingly simple Linux-only feature for
> now, and extend to it to send some kind of no-op message in a later release.
> So this is the version I'd like to go with.
> Objections?

+1, as some of our users experienced the problem that the server kept processing (IIRC, a buggy PL/pgSQL procedure that
loopsindefinitely) after they killed the client.
 

TBH, Linux and Windows will be sufficient.  But I'm for providing a good feature on a specific OS first.


(1)
+    rc = poll(&pollfd, 1, 0);
+    if (rc < 0)
+    {
+        elog(COMMERROR, "could not poll socket: %m");
+        return false;

I think it's customary to use ereport() and errcode_for_socket_access().


(2)
pq_check_connection()

Following PostmasterIsAlive(), maybe it's better to name it as pq_connection_is_alive() pq_client_is_alive(), or
pq_frontend_is_alive()like the pqcomm.c's head comment uses the word frontend?
 


(3)
 #include <limits.h>
+#include <poll.h>
 #ifndef WIN32
 #include <sys/mman.h>
 #endif

poll.h should be included between #ifndef WIN32 and #endif?


(4)
I think the new GUC works for walsender as well.  If so, how do we explain the relationship between the new GUC and
wal_receiver_timeoutand recommend the settings of them?
 


Regards
Takayuki Tsunakawa



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Flaky vacuum truncate test in reloptions.sql
Next
From: Heikki Linnakangas
Date:
Subject: Re: Perform COPY FROM encoding conversions in larger chunks