mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Don't send protocol messages to a shm_mq that no longer exists.
Commit 2bd9e412f9 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.
			
			
This commit is contained in:
		@@ -867,7 +867,7 @@ ParallelWorkerMain(Datum main_arg)
 | 
			
		||||
					 ParallelWorkerNumber * PARALLEL_ERROR_QUEUE_SIZE);
 | 
			
		||||
	shm_mq_set_sender(mq, MyProc);
 | 
			
		||||
	mqh = shm_mq_attach(mq, seg, NULL);
 | 
			
		||||
	pq_redirect_to_shm_mq(mq, mqh);
 | 
			
		||||
	pq_redirect_to_shm_mq(seg, mqh);
 | 
			
		||||
	pq_set_parallel_master(fps->parallel_master_pid,
 | 
			
		||||
						   fps->parallel_master_backend_id);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user