Skip to content

Commit ea9ac77

Browse files
committed
Reset pg_stat_activity.xact_start during PREPARE TRANSACTION.
Once we've completed a PREPARE, our session is not running a transaction, so its entry in pg_stat_activity should show xact_start as null, rather than leaving the value as the start time of the now-prepared transaction. I think possibly this oversight was triggered by faulty extrapolation from the adjacent comment that says PrepareTransaction should not call AtEOXact_PgStat, so tweak the wording of that comment. Noted by Andres Freund while considering bug #10123 from Maxim Boguk, although this error doesn't seem to explain that report. Back-patch to all active branches.
1 parent f9cd2b7 commit ea9ac77

File tree

1 file changed

+2
-1
lines changed
  • src/backend/access/transam

1 file changed

+2
-1
lines changed

src/backend/access/transam/xact.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2247,8 +2247,9 @@ PrepareTransaction(void)
22472247
AtEOXact_Files();
22482248
AtEOXact_ComboCid();
22492249
AtEOXact_HashTables(true);
2250-
/* don't call AtEOXact_PgStat here */
2250+
/* don't call AtEOXact_PgStat here; we fixed pgstat state above */
22512251
AtEOXact_Snapshot(true);
2252+
pgstat_report_xact_timestamp(0);
22522253

22532254
CurrentResourceOwner = NULL;
22542255
ResourceOwnerDelete(TopTransactionResourceOwner);

0 commit comments

Comments
 (0)