[SERVER-23351] Member transitions to secondary after rollback before reaching minvalid Created: 25/Mar/16  Updated: 20/Nov/16  Resolved: 05/Apr/16

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 3.2.5, 3.3.5

Type: Bug Priority: Major - P3
Reporter: Scott Hernandez (Inactive) Assignee: Eric Milkie
Resolution: Done Votes: 0
Labels: code-and-test
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-23295 Uncommitted write visible with 'major... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Completed:
Sprint: Repl 13 (04/22/16)
Participants:

 Description   

Due to the fact that a rollback fetches documents from the source, it cannot transition to secondary, or out of recovering, until it passes the point in the oplog from the last document fetched during rollback.



 Comments   
Comment by Githook User [ 14/Apr/16 ]

Author:

{u'username': u'milkie', u'name': u'Eric Milkie', u'email': u'milkie@10gen.com'}

Message: SERVER-23351 test read committed snapshots after a rollback occurs

(cherry picked from commit 0c3430437bc84b1d1f02ab78f1303732e84fe0c4)
Branch: v3.2
https://github.com/mongodb/mongo/commit/c558a396d221ee5c13278ca76667cca5adf8bdf5

Comment by Githook User [ 07/Apr/16 ]

Author:

{u'username': u'milkie', u'name': u'Eric Milkie', u'email': u'milkie@10gen.com'}

Message: SERVER-23351 test read committed snapshots after a rollback occurs
Branch: master
https://github.com/mongodb/mongo/commit/0c3430437bc84b1d1f02ab78f1303732e84fe0c4

Comment by Githook User [ 06/Apr/16 ]

Author:

{u'username': u'milkie', u'name': u'Eric Milkie', u'email': u'milkie@10gen.com'}

Message: SERVER-23351 further refinements to resetting minvalid after rollback

(cherry picked from commit 481739f40314a85e989462f8e37044b449d1d6a6)
Branch: v3.2
https://github.com/mongodb/mongo/commit/73290d02e9a89c05762d9500e1be054183bf4db9

Comment by Githook User [ 06/Apr/16 ]

Author:

{u'username': u'milkie', u'name': u'Eric Milkie', u'email': u'milkie@10gen.com'}

Message: SERVER-23351 ensure applier aquires new minvalid value after rollback

(cherry picked from commit 42cfa52297f1fc6d9fae8bb3bdf236389c800225)
Branch: v3.2
https://github.com/mongodb/mongo/commit/389d3a6d07507af85ea6af58247f472eb00c085c

Comment by Githook User [ 06/Apr/16 ]

Author:

{u'username': u'milkie', u'name': u'Eric Milkie', u'email': u'milkie@10gen.com'}

Message: SERVER-23351 further refinements to resetting minvalid after rollback
Branch: master
https://github.com/mongodb/mongo/commit/481739f40314a85e989462f8e37044b449d1d6a6

Comment by Githook User [ 05/Apr/16 ]

Author:

{u'username': u'milkie', u'name': u'Eric Milkie', u'email': u'milkie@10gen.com'}

Message: SERVER-23351 ensure applier aquires new minvalid value after rollback
Branch: master
https://github.com/mongodb/mongo/commit/42cfa52297f1fc6d9fae8bb3bdf236389c800225

Comment by Eric Milkie [ 05/Apr/16 ]

Details:
The applier thread attempts to go live as secondary every second, with the minvalid value it originally procured from the database and then continually updated in a local variable as it applies operations.
If another thread attempts to set a new minvalid on disk, as rollback does, it currently does not communicate this to the applier thread, and it will continue to use the old, erroneous value of minvalid while attempting to transition to SECONDARY.

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