[SERVER-40326] Don't access the filesystem under std::mutex in the chunk cloner's nextModsBatch Created: 25/Mar/19 Updated: 03/Apr/19 Resolved: 03/Apr/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | 3.4.20, 3.6.11, 4.0.7, 4.1.9 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Blake Oler | Assignee: | Randolph Tan |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | sharding-wfbf-day | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Sprint: | Sharding 2019-04-08 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
Accessing the filesystem under a std::mutex can cause deadlocks. When retrieving the next modifications batch in the migration cloner source, we check if each document still exists in the storage subsystem. This is done under the cloner's internal mutex. We should rework the function so to not access the storage subsystem while holding the mutex. Note: caused a BF in a patch build. |
| Comments |
| Comment by Randolph Tan [ 03/Apr/19 ] |
|
Already covered by https://github.com/mongodb/mongo/commit/47153dbf7aebeba9a5b9086a82709adfa6fd7226 |