[SERVER-31471] Certain applyOps and convertToCapped commands can cause secondaries to fassert Created: 09/Oct/17 Updated: 29/Jan/18 Resolved: 20/Nov/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication, Storage |
| Affects Version/s: | 3.5.13 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Robert Guo (Inactive) | Assignee: | Xiangyu Yao (Inactive) |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | rbfz | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||||||
| Issue Links: |
|
||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||
| Operating System: | ALL | ||||||||||||
| Steps To Reproduce: | See nsnotfound.js |
||||||||||||
| Sprint: | Storage 2017-12-04 | ||||||||||||
| Participants: | |||||||||||||
| Description |
|
A certain sequence of applyOps and convertToCapped operations issued through the mongo shell can cause secondaries to fassert because an insert command with an invalid UUID is replicated. The repro is attached and can be run through the mongo shell: ./mongo --nodb nsnotfound.js Most of the repro script is boiler plate code, the commands themselves are on lines 98 to 122. The content of the primary's oplog is also attached.
|
| Comments |
| Comment by Robert Guo (Inactive) [ 20/Nov/17 ] |
|
Indeed it has gone away. I confirmed that it repros on 3.5.13, but not rc0. Based on the error message, it looks jstestfuzz caught this problem as well which was fixed in Closing this ticket and marking it as a dupe of |
| Comment by Xiangyu Yao (Inactive) [ 18/Nov/17 ] |
|
robert.guo I failed to reproduce this on my local machine. Could it be that the issue is gone? |
| Comment by Ian Whalen (Inactive) [ 25/Oct/17 ] |
|
Bumping from 3.6 Required to 3.7 Desired as per input from Dan P. |
| Comment by Robert Guo (Inactive) [ 10/Oct/17 ] |
|
Attached the full logs of this repro. it has the same fassert but with a different UUID. It also prints out the ops passed into applyOps. They're towards the end of the log and can be found by searching for "Printing the list of applyOps commands" |