I encountered the following assertion failure when I executed
an immediate shutdown.
LOG: received immediate shutdown request
WARNING: terminating connection because of crash of another server process
DETAIL: The postmaster has commanded this server process to roll back
the current transaction and exit, because another server process
exited abnormally and possibly corrupted shared memory.
HINT: In a moment you should be able to reconnect to the database and
repeat your command.
TRAP: FailedAssertion("!(CheckpointerPID == 0)", File: "postmaster.c",
The cause of this problem seems to be that PostmasterStateMachine()
may fail to wait for the checkpointer to exit. Attached patch fixes this.