• Thomas Munro's avatar
    Allow DSM allocation to be interrupted. · 422952ee
    Thomas Munro authored
    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
    422952ee
dsm_impl.c 32.4 KB