[SERVER-21237] ReplSetTest.prototype.awaitReplication reads directly from the oplog collection causing false positives Created: 31/Oct/15  Updated: 10/Mar/16  Resolved: 03/Nov/15

Status: Closed
Project: Core Server
Component/s: Replication, Testing Infrastructure
Affects Version/s: None
Fix Version/s: 3.2.0-rc2

Type: Bug Priority: Critical - P2
Reporter: Scott Hernandez (Inactive) Assignee: Matt Dannenberg
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-21129 Allow pipelining of applier work befo... Closed
depends on SERVER-23046 Reimplement operation pipelining appl... Closed
is depended on by SERVER-21298 rollback_index.js fails to wait for r... Closed
Related
related to SERVER-21275 Document not found due to WT commit v... Closed
is related to SERVER-21107 Improve protocol version 1 replicatio... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Repl C (11/20/15)
Participants:
Linked BF Score: 0

 Description   

Because of changes in the way oplog entries are processed, the latest written oplog entries may be ahead of what has been journaled, or snapshotted, and reported and should not be used for "waiting for replication".

ReplSetTest.prototype.awaitReplication must be re-written to use replSetGetStatus/serverStatus(oplog:true) from each node instead of querying the oplog directly.

In addition the function should allow waiting for more types of replication, like for readConcern.majority, or readAfterOptime (which could be used to test for the former).



 Comments   
Comment by Githook User [ 03/Nov/15 ]

Author:

{u'username': u'dannenberg', u'name': u'matt dannenberg', u'email': u'matt.dannenberg@10gen.com'}

Message: SERVER-21237 fix remove1.js to handle failover that occurs in pv0
Branch: master
https://github.com/mongodb/mongo/commit/b25a1fb5144000ad6ef6b6eaa3cd07de5f738b21

This commit was done post-RC2, in case that information becomes important at some point.

Comment by Githook User [ 03/Nov/15 ]

Author:

{u'username': u'dannenberg', u'name': u'matt dannenberg', u'email': u'matt.dannenberg@10gen.com'}

Message: SERVER-21237 remove log message in awaitReplication() since variables are no longer relevant
Branch: master
https://github.com/mongodb/mongo/commit/217ec54c518a04173f4b4b1fc7778ad4a1095c84

Comment by Githook User [ 03/Nov/15 ]

Author:

{u'username': u'GeertBosch', u'name': u'Geert Bosch', u'email': u'geert@mongodb.com'}

Message: SERVER-21237: Add back accidentally removed log variable
Branch: master
https://github.com/mongodb/mongo/commit/8a3acb42742182c5e314636041c2df368232bbc5

Comment by Githook User [ 03/Nov/15 ]

Author:

{u'username': u'dannenberg', u'name': u'matt dannenberg', u'email': u'matt.dannenberg@10gen.com'}

Message: SERVER-21237 fix ReplSetTest.prototype.awaitReplication to use getReplSetStatus rather than query the oplog directly
Branch: master
https://github.com/mongodb/mongo/commit/42d0577042dbc4b63e54eb40765c052baafed555

Comment by Spencer Brody (Inactive) [ 02/Nov/15 ]

The awaitLastOpCommitted also does reads of local.oplog.rs to determine if a given optime has been committed on all nodes. Please consider that method as well when working on this as it might need a similar change, or perhaps the two methods could be combined in some way?
matt.dannenberg

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