[SERVER-23560] Syncing from delayed secondary may trigger fatal assertion Created: 06/Apr/16  Updated: 17/May/16  Resolved: 17/May/16

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: 3.2.4
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Kevin Adistambha Assignee: Eric Milkie
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File syncfrom-delayedsecondary.js    
Issue Links:
Related
Operating System: ALL
Steps To Reproduce:

1. Modify the replica set to have a delayed secondary.
2. Reconfig the replica set.
3. Insert a document on the primary.
4. Set the other secondary to sync from the delayed secondary.

Attached is the jstest that reproduces this issue (syncfrom-delayedsecondary.js).

Sprint: Repl 15 (06/03/16)
Participants:

 Description   

Using rs.syncFrom() to change the sync target for a delayed secondary may trigger a fatal assertion:

[rsSync] Fatal assertion 34361 OplogOutOfOrder: Attempted to apply an earlier oplog entry (ts: Apr  6 16:39:42:2) when our lastWrittenOptime was (term: 1, timestamp: Apr  6 16:39:42:3)



 Comments   
Comment by Eric Milkie [ 17/May/16 ]

Using the latest version of 3.2, I can't reproduce a crash. Instead, the node enters rollback state (which is expected).

Comment by Eric Milkie [ 17/May/16 ]

I can't run your jstest, as it is calling getConfigFromPrimary() which doesn't seem to be a function I know about.
I get the gist of what you are trying to do, though, so I will try to amend the test and see if I can reproduce.
Thanks for submitting this!

Generated at Thu Feb 08 04:03:44 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.