]> granicus.if.org Git - postgresql/commit
On Windows, retry process creation if we fail to reserve shared memory.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 10 Jul 2017 15:00:09 +0000 (11:00 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 10 Jul 2017 15:00:09 +0000 (11:00 -0400)
commitbc0f76e7ad3704cc5ed3caf7923ef0d94c2b69b1
treef74cbdd07d4db8dc059119ee8adfedf7d5e37fa7
parent4d93184ab3221f3b012bbe1b36b721d2b62f2526
On Windows, retry process creation if we fail to reserve shared memory.

We've heard occasional reports of backend launch failing because
pgwin32_ReserveSharedMemoryRegion() fails, indicating that something
has already used that address space in the child process.  It's not
very clear what, given that we disable ASLR in Windows builds, but
suspicion falls on antivirus products.  It'd be better if we didn't
have to disable ASLR, anyway.  So let's try to ameliorate the problem
by retrying the process launch after such a failure, up to 100 times.

Patch by me, based on previous work by Amit Kapila and others.
This is a longstanding issue, so back-patch to all supported branches.

Discussion: https://postgr.es/m/CAA4eK1+R6hSx6t_yvwtx+NRzneVp+MRqXAdGJZChcau8Uij-8g@mail.gmail.com
src/backend/postmaster/postmaster.c