Re: BUG #15293: Stored Procedure Triggered by Logical Replication is Unable to use Notification Events

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Sergei Kornilov <sk@zsrv.org>, Petr Jelinek <petr@2ndquadrant.com>
Cc: "michael.paul.powers@gmail.com" <michael.paul.powers@gmail.com>, "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2018-07-24T15:58:29Z
Lists: pgsql-bugs, pgsql-hackers
Hi,

On 2018-07-24 16:19:45 +0300, Sergei Kornilov wrote:
> I checked this bug and found reason: we do not notify backends about new events by call ProcessCompletedNotifies from logical worker.
> New notify from regular backend does call ProcessCompletedNotifies: send signal to all listen backends and found new events for youself.
> But i am not sure where is correct place for call ProcessCompletedNotifies in logical worker src/backend/replication/logical/worker.c and i can not provide patch.

Peter, Petr, this is the second report of this issue. Anything?

Greetings,

Andres Freund


Commits

  1. Disallow LISTEN in background workers.

  2. Send NOTIFY signals during CommitTransaction.

  3. Make some efficiency improvements in LISTEN/NOTIFY.