From 673bea5121f0a6acadb1304e4a2b1027f5914e72 Mon Sep 17 00:00:00 2001 From: Dilip Kumar Date: Mon, 11 Oct 2021 20:38:58 +0530 Subject: [PATCH v1] Reset snapshot export state during abort --- src/backend/access/transam/xact.c | 3 +++ src/backend/replication/logical/snapbuild.c | 9 +++++++++ src/include/replication/snapbuild.h | 1 + 3 files changed, 13 insertions(+) diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 4cc38f0..60be6bb 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -2698,6 +2698,9 @@ AbortTransaction(void) /* Reset logical streaming state. */ ResetLogicalStreamingState(); + /* Reset snapshot export state. */ + ResetSnapBuildExportSnapshotState(); + /* If in parallel mode, clean up workers and exit parallel mode. */ if (IsInParallelMode()) { diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c index a533334..5127ea5 100644 --- a/src/backend/replication/logical/snapbuild.c +++ b/src/backend/replication/logical/snapbuild.c @@ -693,6 +693,15 @@ SnapBuildClearExportedSnapshot(void) AbortCurrentTransaction(); CurrentResourceOwner = SavedResourceOwnerDuringExport; + ResetSnapBuildExportSnapshotState(); +} + +/* + * Reset snapshot export state on the transaction abort. + */ +void +ResetSnapBuildExportSnapshotState(void) +{ SavedResourceOwnerDuringExport = NULL; ExportInProgress = false; } diff --git a/src/include/replication/snapbuild.h b/src/include/replication/snapbuild.h index de72124..6a1082b 100644 --- a/src/include/replication/snapbuild.h +++ b/src/include/replication/snapbuild.h @@ -70,6 +70,7 @@ extern void SnapBuildSnapDecRefcount(Snapshot snap); extern Snapshot SnapBuildInitialSnapshot(SnapBuild *builder); extern const char *SnapBuildExportSnapshot(SnapBuild *snapstate); extern void SnapBuildClearExportedSnapshot(void); +extern void ResetSnapBuildExportSnapshotState(void); extern SnapBuildState SnapBuildCurrentState(SnapBuild *snapstate); extern Snapshot SnapBuildGetOrBuildSnapshot(SnapBuild *builder, -- 1.8.3.1