Hi, Since a64ca63e59c11d8fe6db24eee3d82b61db7c2c83 pg_sleep() uses WaitLatch() to wait. That's fine in itself. But procsignal_sigusr1_handler, which is used e.g. when resolving recovery conflicts, doesn't unconditionally do a SetLatch(). That means that we'll we'll currently not be able to cancel conflicting backends during recovery for 10min. Now, I don't think that'll happen too often in practice, but it's still annoying.
As an alternative to doing the PG_TRY/save set_latch_on_sigusr1/set set_latch_on_sigusr1/PG_CATCH/reset set_latch_on_sigusr1/ dance in pg_sleep() we could also have RecoveryConflictInterrupt() do an unconditional SetLatch()? Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers