[SERVER-35569] reIndex should take a Global exclusive lock instead of just Database Created: 12/Jun/18 Updated: 29/Oct/23 Resolved: 13/Jun/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 4.0.0-rc6, 4.1.1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Eric Milkie | Assignee: | Eric Milkie |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Backwards Compatibility: | Minor Change | ||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||
| Backport Requested: |
v4.0
|
||||||||||||||||||||
| Sprint: | Storage NYC 2018-06-18 | ||||||||||||||||||||
| Participants: | |||||||||||||||||||||
| Linked BF Score: | 72 | ||||||||||||||||||||
| Description |
|
reIndex does writes (both timestamped and untimestamped) but it does not acquire new optimes for such writes; it just piggybacks on whatever the current logical clock time is. |
| Comments |
| Comment by William Schultz (Inactive) [ 14/Jun/18 ] |
|
As described in BF-9559, this fix may not be sufficient to fix the bug about transactions seeing invalid index data, since multi-document transaction snapshots are initially acquired without holding any locks. The suggested fix is to take proper global and database intent locks inside transactions before acquiring the transaction's snapshot. |
| Comment by Githook User [ 13/Jun/18 ] |
|
Author: {'username': 'milkie', 'name': 'Eric Milkie', 'email': 'milkie@10gen.com'}Message: (cherry picked from commit 262a09efff3e9ef33cc56af1eed6a6d73afecc95) |
| Comment by Githook User [ 13/Jun/18 ] |
|
Author: {'username': 'milkie', 'name': 'Eric Milkie', 'email': 'milkie@10gen.com'}Message: |
| Comment by Esha Maharishi (Inactive) [ 12/Jun/18 ] |
|
Note that if reIndex never takes the DBLock, it will not do a databaseVersion check. |