Re: Local visibility with logical decoding

Marko Tiikkaja <marko@joh.to>

From: Marko Tiikkaja <marko@joh.to>
To: Antonin Houska <ah@cybertec.at>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-07-20T17:10:55Z
Lists: pgsql-hackers
On Mon, Jul 20, 2020 at 7:36 PM Antonin Houska <ah@cybertec.at> wrote:

> Marko Tiikkaja <marko@joh.to> wrote:
>
> > It appears that when logical decoding sends out the data from the output
> > plugin, it is not guaranteed that the decoded transaction's effects are
> > visible on the source server.  Is this the way it's supposed to work?
>
> Can you please share the test that indicates this behavior? As far as I
> understand, the transaction must have been committed before the output
> plugin
> starts to receive the changes.
>

I don't have a reliable test program, but you can reproduce quite easily
with test_decoding if you put a breakpoint before the SyncRepWaitForLSN()
call in src/backend/access/transam/xact.c.  pg_logicalrecv will see the
changes while the session is sitting on the breakpoint, and not finishing
its commit.


-marko