pgsql: Improve the code to decide and process the apply action.

From: Amit Kapila <akapila(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Improve the code to decide and process the apply action.
Date: 2023-01-17 06:11:04
Message-ID: E1pHfBX-00454p-St@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Improve the code to decide and process the apply action.

The code that decides the apply action missed to handle non-transactional
messages and we didn't catch it in our testing as currently such messages
are simply ignored by the apply worker. This was introduced by changes in
commit 216a784829.

While testing this, I noticed that we forgot to reset stream_xid after
processing the stream stop message which could also result in the wrong
apply action after the fix for non-transactional messages.

In passing, change assert to elog for unexpected apply action in some of
the routines so as to catch the problems in the production environment, if
any.

Reported-by: Tomas Vondra
Author: Amit Kapila
Reviewed-by: Tomas Vondra, Sawada Masahiko, Hou Zhijie
Discussion: https://postgr.es/m/984ff689-adde-9977-affe-cd6029e850be@enterprisedb.com
Discussion: https://postgr.es/m/CAA4eK1+wyN6zpaHUkCLorEWNx75MG0xhMwcFhvjqm2KURZEAGw@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c981d9145deae067bc67bc8f8bcd68b300ece3fe

Modified Files
--------------
src/backend/replication/logical/worker.c | 73 ++++++++++++++++++++------------
1 file changed, 47 insertions(+), 26 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message John Naylor 2023-01-17 07:11:49 pgsql: Remove dead code in formatting.c
Previous Message Amit Kapila 2023-01-17 05:13:57 pgsql: Fix typo in comment.