Andreas Pflug <pgadmin@pse-consulting.de> writes:
>> I thought we agreed that using the cancel functionality, which we know
>> works and is tested,
> I've seen cancel *not* working. In 80 % this was the reason to use
> terminate.
Even a moment's perusal of the code will prove that there is no
situation in which a backend will respond to SIGTERM but not SIGINT
--- there is only one InterruptPending flag and both cases are checked
in ProcessInterrupts(). So I don't believe the above argument for
using terminate in the slightest.
I can easily believe that we have missed some places that need a
CHECK_FOR_INTERRUPTS() call added, to ensure the backend can't go too
long without making these checks. I added one in the planner main
loop just a couple weeks ago, for instance. If you can identify what
a backend that's ignoring a cancel request is doing, please let us know.
regards, tom lane