FinishPreparedTransaction missing HOLD_INTERRUPTS section
Stas Kelvich <s.kelvich@postgrespro.ru>
From: Stas Kelvich <s.kelvich@postgrespro.ru>
To: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-04-27T21:36:16Z
Lists: pgsql-hackers
Attachments
- 0001-Add-HOLD_INTERRUPTS-section-into-FinishPreparedTrans.patch (application/octet-stream) patch 0001
Hello. It seems that during COMMIT PREPARED FinishPreparedTransaction() doesn't hold interrupts around writing to wal and cleaning up ProcArray and GXact entries. At least RemoveTwoPhaseFile (which is called in between) can print a warning with ereport(), which, in turn will check for interrupts and therefore can cancel backend or throw an error before GXact clean-up. Other similar places like CommitTransaction and PrepareTransaction have such hold interrupts sections. -- Stas Kelvich Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Commits
-
Add HOLD_INTERRUPTS section into FinishPreparedTransaction.
- 540e7a6e535e 9.3.23 landed
- 6bd659f19cac 9.4.18 landed
- d3fc427f478f 9.5.13 landed
- d9b3bc55201a 9.6.9 landed
- ee492e3dedbd 10.4 landed
- 8f9be261f437 11.0 landed