[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:
Backports
Depends
Related
is related to SERVER-39154 Create a fail point to make it so if... Closed
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: SERVER-42452 Avoid interrupting uninterruptible requests in lock fp.

The failNonIntentLocksIfWaitNeeded failpoint shouldn't interrupt
uninterruptible lock requests because it'll lead to a LockTimeout
exception the calling code is known to not be prepared to handle.

(cherry picked from commit e547a00bc06de2b84e3cd20d678f0f6bcce01ce1)
Branch: v4.2
https://github.com/mongodb/mongo/commit/f1c1de2000734f4f12dd7a12cf585a25f42b8d62

Comment by Githook User [ 27/Jul/19 ]

Author:

{'name': 'Max Hirschhorn', 'username': 'visemet', 'email': 'max.hirschhorn@mongodb.com'}

Message: SERVER-42452 Avoid interrupting uninterruptible requests in lock fp.

The failNonIntentLocksIfWaitNeeded failpoint shouldn't interrupt
uninterruptible lock requests because it'll lead to a LockTimeout
exception the calling code is known to not be prepared to handle.
Branch: master
https://github.com/mongodb/mongo/commit/e547a00bc06de2b84e3cd20d678f0f6bcce01ce1

Generated at Thu Feb 08 05:00:32 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.