pgsql: Don't let timeout interrupts happen unless ImmediateInterruptOK - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Don't let timeout interrupts happen unless ImmediateInterruptOK
Date
Msg-id E1VrVx1-0008Mg-27@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Don't let timeout interrupts happen unless ImmediateInterruptOK is set.

Serious oversight in commit 16e1b7a1b7f7ffd8a18713e83c8cd72c9ce48e07:
we should not allow an interrupt to take control away from mainline code
except when ImmediateInterruptOK is set.  Just to be safe, let's adopt
the same save-clear-restore dance that's been used for many years in
HandleCatchupInterrupt and HandleNotifyInterrupt, so that nothing bad
happens if a timeout handler invokes code that tests or even manipulates
ImmediateInterruptOK.

Per report of "stuck spinlock" failures from Christophe Pettus, though
many other symptoms are possible.  Diagnosis by Andres Freund.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/e8312b4f03315a98a987997e05a6e9d6d8d84ddf

Modified Files
--------------
src/backend/utils/misc/timeout.c |   36 +++++++++++++++++++++++-------------
1 file changed, 23 insertions(+), 13 deletions(-)


pgsql-committers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: pgsql: Add GUC to enable WAL-logging of hint bits, even with checksums
Next
From: Tom Lane
Date:
Subject: pgsql: Don't let timeout interrupts happen unless ImmediateInterruptOK