Don't advance origin during apply failure.
authorAmit Kapila <akapila@postgresql.org>
Wed, 21 Aug 2024 03:52:32 +0000 (09:22 +0530)
committerAmit Kapila <akapila@postgresql.org>
Wed, 21 Aug 2024 03:52:32 +0000 (09:22 +0530)
commit3f28b2fcac33fb352d261fac298cfe68c3899d32
tree9c0bf70251848546b145cb070a701b01fed0a02f
parenta95ff1fe2eb4926b13e0940ad1f37d048704bdb0
Don't advance origin during apply failure.

We advance origin progress during abort on successful streaming and
application of ROLLBACK in parallel streaming mode. But the origin
shouldn't be advanced during an error or unsuccessful apply due to
shutdown. Otherwise, it will result in a transaction loss as such a
transaction won't be sent again by the server.

Reported-by: Hou Zhijie
Author: Hayato Kuroda and Shveta Malik
Reviewed-by: Amit Kapila
Backpatch-through: 16
Discussion: https://postgr.es/m/TYAPR01MB5692FAC23BE40C69DA8ED4AFF5B92@TYAPR01MB5692.jpnprd01.prod.outlook.com
src/backend/replication/logical/worker.c
src/backend/utils/error/elog.c
src/include/utils/elog.h
src/test/subscription/t/021_twophase.pl