diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 605639b0c3..a3ff1b22f0 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -2138,7 +2138,7 @@ CommitTransaction(void) AtEOXact_HashTables(true); AtEOXact_PgStat(true); AtEOXact_Snapshot(true, false); - AtCommit_ApplyLauncher(); + AtEOXact_ApplyLauncher(true); pgstat_report_xact_timestamp(0); CurrentResourceOwner = NULL; @@ -2612,6 +2612,7 @@ AbortTransaction(void) AtEOXact_ComboCid(); AtEOXact_HashTables(false); AtEOXact_PgStat(false); + AtEOXact_ApplyLauncher(false); pgstat_report_xact_timestamp(0); } diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c index f5058d5a9a..09c87d7c53 100644 --- a/src/backend/replication/logical/launcher.c +++ b/src/backend/replication/logical/launcher.c @@ -748,10 +748,12 @@ ApplyLauncherShmemInit(void) * Wakeup the launcher on commit if requested. */ void -AtCommit_ApplyLauncher(void) +AtEOXact_ApplyLauncher(bool isCommit) { - if (on_commit_launcher_wakeup) + if (isCommit && on_commit_launcher_wakeup) ApplyLauncherWakeup(); + + on_commit_launcher_wakeup = false; } /* diff --git a/src/include/replication/logicallauncher.h b/src/include/replication/logicallauncher.h index 0c2bf03a5f..fb3c2f5370 100644 --- a/src/include/replication/logicallauncher.h +++ b/src/include/replication/logicallauncher.h @@ -22,6 +22,6 @@ extern Size ApplyLauncherShmemSize(void); extern void ApplyLauncherShmemInit(void); extern void ApplyLauncherWakeupAtCommit(void); -extern void AtCommit_ApplyLauncher(void); +extern void AtEOXact_ApplyLauncher(bool isCommit); #endif /* LOGICALLAUNCHER_H */