Re: NOTIFY does not work as expected
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Jeff Janes <jeff.janes@gmail.com>
Cc: Andrey <parihaaraka@gmail.com>, Pg Bugs <pgsql-bugs@postgresql.org>
Date: 2018-07-03T18:27:04Z
Lists: pgsql-bugs
Jeff Janes <jeff.janes@gmail.com> writes: > Further diagnosis here is that in the "working" case the client receives a > single packet from the server containing both the pg_sleep response, and > async response, in that order, and the client processes both of them. In > the "broken" case, the client receives a single packet from the server > containing the pg_sleep response, and processes it, and then blocks on user > input. The async response is immediately available in the next packet if > the client would ask for it, but the client doesn't do so. This suggests that 4f85fde8e introduced an extra output-flush operation into the code path, ie it must be flushing the output buffer to the client after ReadyForQuery and then again after emitting the Notify. > If I am diagnosing the right problem, this still doesn't seem like a bug to > me. Well, it seems undesirable to me, both because it implies network traffic inefficiency and because clients don't seem to be expecting it. We have another recent complaint that seems to be possibly the same thing, bug #15255. regards, tom lane
Commits
-
Client-side fixes for delayed NOTIFY receipt.
- ecc59e31a81e 10.6 landed
- d30d27a52818 11.1 landed
- ac3be116a798 9.5.15 landed
- 4247db62522f 12.0 landed
- 34aad21cbf03 9.6.11 landed
-
Server-side fix for delayed NOTIFY and SIGTERM processing.
- f4941666afc6 9.5.15 landed
- cbab94077e12 9.6.11 landed
- 7aaeb7b45ac7 11.1 landed
- 3bdef6d21131 10.6 landed
- 2ddb9149d14d 12.0 landed
-
Introduce and use infrastructure for interrupt processing during client reads.
- 4f85fde8eb86 9.5.0 cited