]> granicus.if.org Git - postgresql/commit
Allow DSM allocation to be interrupted.
authorThomas Munro <tmunro@postgresql.org>
Tue, 18 Sep 2018 10:56:36 +0000 (22:56 +1200)
committerThomas Munro <tmunro@postgresql.org>
Tue, 18 Sep 2018 11:13:27 +0000 (23:13 +1200)
commitf547035a0e1bfb338cd2113976d7f384854a64e3
treeb39127ae0ed30f727ff79c343339c01399b2cec8
parent2a97a0ad34daefde117cc9001c97ad3c0ef82dfb
Allow DSM allocation to be interrupted.

Chris Travers reported that the startup process can repeatedly try to
cancel a backend that is in a posix_fallocate()/EINTR loop and cause it
to loop forever.  Teach the retry loop to give up if an interrupt is
pending.  Don't actually check for interrupts in that loop though,
because a non-local exit would skip some clean-up code in the caller.

Back-patch to 9.4 where DSM was added (and posix_fallocate() was later
back-patched).

Author: Chris Travers
Reviewed-by: Ildar Musin, Murat Kabilov, Oleksii Kliukin
Tested-by: Oleksii Kliukin
Discussion: https://postgr.es/m/CAN-RpxB-oeZve_J3SM_6%3DHXPmvEG%3DHX%2B9V9pi8g2YR7YW0rBBg%40mail.gmail.com
src/backend/storage/ipc/dsm_impl.c