[SERVER-32047] The `forceRoutingTableRefresh` command waits for migration critical section while holding a lock Created: 20/Nov/17  Updated: 30/Oct/23  Resolved: 21/Nov/17

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: 3.6.0-rc4
Fix Version/s: 3.6.0-rc5, 3.7.1

Type: Bug Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Kaloian Manassiev
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v3.6
Sprint: Sharding 2017-12-04
Participants:
Linked BF Score: 0

 Description   

The code under forceRoutingTableRefresh is waiting for the migration critical section while holding a lock. While waiting for condition variable while holding a lock is in most cases illegal, this particular case is also a guaranteed deadlock since the move chunk sequence won't be able to ever leave the migration critical section.



 Comments   
Comment by Githook User [ 21/Nov/17 ]

Author:

{'name': 'Kaloian Manassiev', 'username': 'kaloianm', 'email': 'kaloian.manassiev@mongodb.com'}

Message: SERVER-32047 Make `forceRoutingTableRefresh` wait for critical section outside of collection lock

(cherry picked from commit 1ed3f218239da2a3913dba8d45f59a7dab430fd3)
Branch: v3.6
https://github.com/mongodb/mongo/commit/56a1d0887ba26a9d760eba2237643d17932d2e29

Comment by Githook User [ 21/Nov/17 ]

Author:

{'name': 'Kaloian Manassiev', 'username': 'kaloianm', 'email': 'kaloian.manassiev@mongodb.com'}

Message: SERVER-32047 Make `forceRoutingTableRefresh` wait for critical section outside of collection lock
Branch: master
https://github.com/mongodb/mongo/commit/1ed3f218239da2a3913dba8d45f59a7dab430fd3

Generated at Thu Feb 08 04:29:01 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.