Are we accepting cancel interrupts too often?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: Are we accepting cancel interrupts too often?
Date: 2001-12-30 18:46:05
Message-ID: 669.1009737965@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Presently, the RESUME_INTERRUPTS() and END_CRIT_SECTION() macros implicitly
do a CHECK_FOR_INTERRUPTS(); that is, if a cancel request arrived during
the interrupt-free section it will be serviced immediately upon exit
from the section.

It strikes me that this is a really bad idea. There are lots of places
where we release one lock then acquire another, and are not expecting to
lose control in between. The original concept of the query-cancel
facility was that we'd accept cancels only at *explicit*
CHECK_FOR_INTERRUPTS points. What we actually have at the moment is
that cancels could be accepted in a very wide variety of places, and
I don't believe we've considered the consequences at each such place.

I am inclined to remove the ProcessInterrupts calls from
RESUME_INTERRUPTS and END_CRIT_SECTION. Does anyone object?

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Olivier PRENANT 2001-12-30 19:12:00 Little question on owners
Previous Message Tom Lane 2001-12-30 18:04:29 Re: LWLock contention: I think I understand the problem