Fix replication of in-progress transactions in tablesync worker.
authorAmit Kapila <akapila@postgresql.org>
Fri, 27 Nov 2020 02:13:34 +0000 (07:43 +0530)
committerAmit Kapila <akapila@postgresql.org>
Fri, 27 Nov 2020 02:13:34 +0000 (07:43 +0530)
commit0926e96c493443644ba8e96b5d96d013a9ffaf64
treed0acc50df89f075dca3202b373822dda5399d5ae
parentdcfff74fb16622898a9d1df33e530f477caab095
Fix replication of in-progress transactions in tablesync worker.

Tablesync worker runs under a single transaction but in streaming mode, we
were committing the transaction on stream_stop, stream_abort, and
stream_commit. We need to avoid committing the transaction in a streaming
mode in tablesync worker.

In passing move the call to process_syncing_tables in
apply_handle_stream_commit after clean up of stream files. This will
allow clean up of files to happen before the exit of tablesync worker
which would otherwise be handled by one of the proc exit routines.

Author: Dilip Kumar
Reviewed-by: Amit Kapila and Peter Smith
Tested-by: Peter Smith
Discussion: https://postgr.es/m/CAHut+Pt4PyKQCwqzQ=EFF=bpKKJD7XKt_S23F6L20ayQNxg77A@mail.gmail.com
src/backend/replication/logical/worker.c