]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix kqueue support under debugger on macOS.
authorThomas Munro <tmunro@postgresql.org>
Tue, 17 Mar 2020 23:43:05 +0000 (12:43 +1300)
committerThomas Munro <tmunro@postgresql.org>
Wed, 18 Mar 2020 00:05:07 +0000 (13:05 +1300)
commit7bc84a1f304acc9f4705c4178eb362ddce310452
tree74dc22acfd886c268cdac3e9c385ce432b06ba00
parente6c178b5b73ac1fb822829e6d9b99e3fc1129c21
Fix kqueue support under debugger on macOS.

While running under a debugger, macOS's getppid() can return the
debugger's PID.  That could cause a backend to exit because it falsely
believed that the postmaster had died, since commit 815c2f09.

Continue to use getppid() as a fast postmaster check after adding the
postmaster's PID to a kqueue, to close a PID-reuse race, but double
check that it actually exited by trying to read the pipe.  The new check
isn't reached in the common case.

Reported-by: Alexander Korotkov <a.korotkov@postgrespro.ru>
Discussion: https://postgr.es/m/CA%2BhUKGKhAxJ8V8RVwCo6zJaeVrdOG1kFBHGZOOjf6DzW_omeMA%40mail.gmail.com
src/backend/storage/ipc/latch.c