RE: Fix 035_standby_logical_decoding.pl race conditions - Mailing list pgsql-hackers

From Hayato Kuroda (Fujitsu)
Subject RE: Fix 035_standby_logical_decoding.pl race conditions
Date
Msg-id OSCPR01MB14966184B3A7DE05716026376F5AC2@OSCPR01MB14966.jpnprd01.prod.outlook.com
Whole thread Raw
In response to Re: Fix 035_standby_logical_decoding.pl race conditions  (Bertrand Drouvot <bertranddrouvot.pg@gmail.com>)
List pgsql-hackers
Dear Bertrand,

> > > s/to avoid the seeing a xl_running_xacts/to avoid seeing a xl_running_xacts/?
> >
> > Fixed.

Sorry, I misunderstood your comment and wrongly fixed. I will address in next version.

> === 1
>
> +                * XXX What value should we return here? Originally this
> returns the
> +                * inserted location of RUNNING_XACT record. Based on that,
> here
> +                * returns the latest insert location for now.
> +                */
> +               return GetInsertRecPtr();
>
> Looking at the LogStandbySnapshot() that are using the output lsn, i.e:
>
> pg_log_standby_snapshot()
> BackgroundWriterMain()
> ReplicationSlotReserveWal()
>
> It looks ok to me to use GetInsertRecPtr().
>
> But if we "really" want to produce a "new" WAL record, what about using
> LogLogicalMessage()? It could also be used for debugging purpose. Bonus point:
> it does not need wal_level to be set to logical. Thoughts?

Right. Similarly, an SQL function pg_logical_emit_message() is sometimes used for
the testing purpose, advance_wal() and emit_wal( in Cluster.pm. Even so, we have
not found the use-case yet, thus I want to retain now and will update based on
the future needs.

I'll investigate another point [1] and then will post new version.

[1]: https://www.postgresql.org/message-id/CAA4eK1%2Bx5-eOn5%2BMW6FiUjB_1bBCH8jCCARC1uMrx6erZ3J73w%40mail.gmail.com

Best regards,
Hayato Kuroda
FUJITSU LIMITED




pgsql-hackers by date:

Previous
From: David Geier
Date:
Subject: Hashed IN only applied to first encountered IN
Next
From: torikoshia
Date:
Subject: Re: Change log level for notifying hot standby is waiting non-overflowed snapshot