1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-09 06:21:09 +03:00

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
This commit is contained in:
Álvaro Herrera
2025-11-04 20:31:43 +01:00
parent 1213cb4753
commit 0a3d27bfe0

View File

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