| From: | Stas Kelvich <s(dot)kelvich(at)postgrespro(dot)ru> |
|---|---|
| To: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | FinishPreparedTransaction missing HOLD_INTERRUPTS section |
| Date: | 2018-04-27 21:36:16 |
| Message-ID: | 3AD85097-A3F3-4EBA-99BD-C38EDF8D2949@postgrespro.ru |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
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
| Attachment | Content-Type | Size |
|---|---|---|
| 0001-Add-HOLD_INTERRUPTS-section-into-FinishPreparedTrans.patch | application/octet-stream | 1.3 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andres Freund | 2018-04-27 22:28:42 | Postgres, fsync, and OSs (specifically linux) |
| Previous Message | Tom Lane | 2018-04-27 21:15:50 | Re: Goodbye pg_pltemplate, hello trusted extensions |