Fix snapshot handling bug in recent BRIN fix

Commit a95e3d84c0 added ActiveSnapshot push+pop when processing
work-items (BRIN autosummarization), but forgot to handle the case of
a transaction failing during the run, which drops the snapshot untimely.
Fix by making the pop conditional on an element being actually there.

Author: Álvaro Herrera <alvherre@kurilemu.de>
Backpatch-through: 13
Discussion: https://postgr.es/m/202511041648.nofajnuddmwk@alvherre.pgsql
REL_14_STABLE
Álvaro Herrera 1 month ago
parent 371d40c1a3
commit 65b0d1f740
No known key found for this signature in database
GPG Key ID: 1C20ACB9D5C564AE
  1. 3
      src/backend/postmaster/autovacuum.c

@ -2625,7 +2625,8 @@ deleted:
PushActiveSnapshot(GetTransactionSnapshot());
perform_work_item(workitem);
PopActiveSnapshot();
if (ActiveSnapshotSet()) /* transaction could have aborted */
PopActiveSnapshot();
/*
* Check for config changes before acquiring lock for further jobs.

Loading…
Cancel
Save