]> granicus.if.org Git - postgresql/commit
Don't send protocol messages to a shm_mq that no longer exists.
authorRobert Haas <rhaas@postgresql.org>
Fri, 16 Oct 2015 13:42:33 +0000 (09:42 -0400)
committerRobert Haas <rhaas@postgresql.org>
Fri, 16 Oct 2015 13:42:33 +0000 (09:42 -0400)
commit2ad5c27bb565c26a4b12ea3343331c80f121f269
tree9e4541141b2ea1870ac1097d40777c20fcbba2ea
parent3587cbc34fe87e1bde6c202daba791b68e44cb3a
Don't send protocol messages to a shm_mq that no longer exists.

Commit 2bd9e412f92bc6a68f3e8bcb18e04955cc35001d introduced a mechanism
for relaying protocol messages from a background worker to another
backend via a shm_mq.  However, there was no provision for shutting
down the communication channel.  Therefore, a protocol message sent
late in the shutdown sequence, such as a DEBUG message resulting from
cranking up log_min_messages, could crash the server.  To fix, install
an on_dsm_detach callback that disables sending messages to the shm_mq
when the associated DSM is detached.
src/backend/access/transam/parallel.c
src/backend/libpq/pqmq.c
src/include/libpq/pqmq.h