Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8cf0a87

Browse files
committed
do not hold lock for mtm.cluster_nodes in MtmOnNodeConnect
1 parent 15385ab commit 8cf0a87

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/dmq.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,7 @@ dmq_receiver_loop(PG_FUNCTION_ARGS)
10001000

10011001
/* setup queues with backends */
10021002
seg = dsm_create(dmq_toc_size(), 0);
1003+
dsm_pin_mapping(seg);
10031004
toc = shm_toc_create(DMQ_MQ_MAGIC, dsm_segment_address(seg),
10041005
dmq_toc_size());
10051006
mq_handles = palloc(MaxBackends*sizeof(shm_mq_handle *));

src/state.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,11 @@ void MtmOnNodeConnect(char *node_name)
500500
else
501501
mtm_log(MtmStateMessage, "[STATE] Node %i: connected", node_id);
502502

503+
/* do not hold lock for mtm.cluster_nodes */
504+
ResourceOwnerRelease(TopTransactionResourceOwner,
505+
RESOURCE_RELEASE_LOCKS,
506+
true, true);
507+
503508
LWLockAcquire(MtmStateLock, LW_EXCLUSIVE);
504509

505510
BIT_SET(mtm_state->connected_mask, node_id - 1);

0 commit comments

Comments
 (0)