[SERVER-42452] failNonIntentLocksIfWaitNeeded failpoint interrupts lock requests in UninterruptibleLockGuard Created: 26/Jul/19 Updated: 29/Oct/23 Resolved: 27/Jul/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Concurrency, Testing Infrastructure |
| Affects Version/s: | None |
| Fix Version/s: | 4.2.1, 4.3.1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Max Hirschhorn | Assignee: | Max Hirschhorn |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Backport Requested: |
v4.2
|
||||||||||||||||
| Sprint: | STM 2019-08-12 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||
| Story Points: | 1 | ||||||||||||||||
| Description |
|
Interrupting the lock request leads to a LockTimeout exception which is known not to be handled by the C++ code due to the presence of the UninterruptibleLockGuard and causes the server to abort. This issue was found during the rollback fuzzer where we suspect background thread (e.g. the TTL monitor) was holding an intent lock on the collection and prevented the collection lock acquisition in MultiIndexBlock::cleanUpAfterBuild() for a background index build from being acquired immediately. |
| Comments |
| Comment by Githook User [ 13/Aug/19 ] |
|
Author: {'name': 'Max Hirschhorn', 'username': 'visemet', 'email': 'max.hirschhorn@mongodb.com'}Message: The failNonIntentLocksIfWaitNeeded failpoint shouldn't interrupt (cherry picked from commit e547a00bc06de2b84e3cd20d678f0f6bcce01ce1) |
| Comment by Githook User [ 27/Jul/19 ] |
|
Author: {'name': 'Max Hirschhorn', 'username': 'visemet', 'email': 'max.hirschhorn@mongodb.com'}Message: The failNonIntentLocksIfWaitNeeded failpoint shouldn't interrupt |