Skip to content

Commit 70e7be2

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 d1d2845 commit 70e7be2

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
@@ -2167,8 +2167,9 @@ PrepareTransaction(void)
21672167
AtEOXact_Files();
21682168
AtEOXact_ComboCid();
21692169
AtEOXact_HashTables(true);
2170-
/* don't call AtEOXact_PgStat here */
2170+
/* don't call AtEOXact_PgStat here; we fixed pgstat state above */
21712171
AtEOXact_Snapshot(true);
2172+
pgstat_report_xact_timestamp(0);
21722173

21732174
CurrentResourceOwner = NULL;
21742175
ResourceOwnerDelete(TopTransactionResourceOwner);

0 commit comments

Comments
 (0)