-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Index Maintenance
-
None
-
Fully Compatible
-
v4.2
-
Execution Team 2019-11-04
Remove global X lock acquisition for reIndex. This is because acquiring global lock in X mode can be blocked by prepared transactions. The enqueued global X lock can block oplog queries which need the global IS lock. If these oplog queries and the data replication are needed to satisfy the prepared transaction's write concern, then the prepare transaction and replication cannot make progress. Thus a deadlock occurs.
Alternatively, if removing global X lock is not an option, deprecate the command or make sure it won't be blocked on prepare transactions.
- is related to
-
SERVER-44343 Make 'reIndex' a standalone-only command
- Closed
- related to
-
SERVER-35569 reIndex should take a Global exclusive lock instead of just Database
- Closed
- split from
-
SERVER-43242 Deadlock involving commands acquiring global X lock and prepared transactions waiting for write concern
- Closed