[SERVER-17403] logOp fassert during stagedebug delete on stepped down primary Created: 27/Feb/15 Updated: 19/Sep/15 Resolved: 27/Feb/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Write Ops |
| Affects Version/s: | 3.0.0-rc11 |
| Fix Version/s: | 3.0.0, 3.1.0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Robert Guo (Inactive) | Assignee: | J Rassi |
| Resolution: | Done | Votes: | 0 |
| Labels: | 28qa | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Windows Server 2012 R2 |
||
| Issue Links: |
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Operating System: | Windows | ||||||||
| Sprint: | Quint 3.1.0 | ||||||||
| Participants: | |||||||||
| Description |
hash: 7007e0e571b859f3aed79a61c6821cc552fb2685 |
| Comments |
| Comment by Githook User [ 27/Feb/15 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: (cherry picked from commit 7d588bd39adc253e0b32df0049569888d392159b) |
| Comment by Githook User [ 27/Feb/15 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by J Rassi [ 27/Feb/15 ] |
|
The cause of this issue is that StageDebugCmd::slaveOk() should return false, but it returns true. This allows the user to run a write operation (via manual configuration of a DeleteStage with stageDebug) on a replica set member in state SECONDARY, which triggers the fassert (so, to be clear: this is not a concurrency-related issue). And, Andy: the delete stage was added during the 2.7 dev cycle, so this issue doesn't affect 2.6. "stageDebug" is a testing-only command, and it's an oversight that it's not actually registered as a test command. I can't even think of a good reason for this command to exist: test coverage for stages lives in dbtests/query_stage_*.cpp, and the the tests in jstests/core/stages_*.js appears to largely duplicate this coverage. After fixing the immediate issue with slaveOk(), I propose we create a separate ticket to merge stages_*.js into query_stage_*.cpp (assuming the latter is missing any coverage that the former has), and then remove the "stageDebug" command outright. david.storch, do you agree with this proposal? |