[SERVER-23600] lockAndCheck sometimes doesn't set error result in batch writes Created: 07/Apr/16 Updated: 15/Dec/16 Resolved: 15/Dec/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Write Ops |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Eric Milkie | Assignee: | David Storch |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Operating System: | ALL | ||||
| Backport Requested: |
v3.0
|
||||
| Sprint: | Repl 18 (08/05/16), Repl 2016-08-29, Query 2017-01-23 | ||||
| Participants: | |||||
| Description |
|
For three cases (isMaster, shard version check, and index constraint check), lockAndCheckImpl() returns false without setting an error in the result. This might result in write operations silently failing without notification to the user, although it doesn't seem to matter for the isMaster case since the connection will always be terminated without returning to the user. This code is scheduled to be refactored in 3.4 but we need to fix it in prior versions. |
| Comments |
| Comment by Eric Milkie [ 15/Dec/16 ] |
|
I went back and reexamined the code, and discovered that the error state is indeed being set for the cases I saw. There is no bug here. |