[SERVER-27231] add failpoint to turn off re-evaluating sync sources, for jstests that manipulate chaining Created: 30/Nov/16  Updated: 07/Sep/17  Resolved: 20/Jan/17

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 3.2.13, 3.4.2, 3.5.2

Type: Task Priority: Major - P3
Reporter: Eric Milkie Assignee: Benety Goh
Resolution: Done Votes: 0
Labels: bkp, neweng
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Related
related to SERVER-27397 Disable OplogFetcher sync source re-e... Closed
Backwards Compatibility: Fully Compatible
Backport Completed:
Backport Requested:
v3.2
Participants:
Linked BF Score: 0

 Description   

Tests that use replSetSyncFrom can fail on slow machines. They can fail because immediately after a test issues a replSetSyncFrom command, the "sync source is 30 seconds behind another viable source" logic can kick in and change the sync source again.
This logic is based on optimes gleaned from heartbeats, so if there is a period of time when a server takes longer than 30 seconds to replicate a write (for example, at startup time when servers are preallocating files on mmap), the test is in danger of hitting this situation.
Using a failpoint to disable this logic would prevent these types of failures.



 Comments   
Comment by Githook User [ 21/Apr/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-27231 added disableMaxSyncSourceLagSecs failpoint to turn off re-evaluating sync sources, for jstests that manipulate chaining

(cherry picked from commit ae2f197bcb46ee961ebadbccba18154f94a09f56)
Branch: v3.2
https://github.com/mongodb/mongo/commit/6e5057ed6f9b66dba6a2e660f9587aab94248d30

Comment by Githook User [ 22/Jan/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-27231 added disableMaxSyncSourceLagSecs failpoint to turn off re-evaluating sync sources, for jstests that manipulate chaining

(cherry picked from commit ae2f197bcb46ee961ebadbccba18154f94a09f56)
Branch: v3.4
https://github.com/mongodb/mongo/commit/7c06463d638828ddcab9de1fba79767ea452d94a

Comment by Githook User [ 20/Jan/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-27231 added disableMaxSyncSourceLagSecs failpoint to turn off re-evaluating sync sources, for jstests that manipulate chaining
Branch: master
https://github.com/mongodb/mongo/commit/ae2f197bcb46ee961ebadbccba18154f94a09f56

Comment by Spencer Brody (Inactive) [ 13/Dec/16 ]

Should we just turn off the 'there is another node more than 30 seconds ahead' logic in shouldChangeSyncSource when a replSetSyncFrom command has been issued and we're syncing from the requested node?

Comment by Judah Schvimer [ 08/Dec/16 ]

We should also change all tests that disallow chaining to use the new failpoint.

Comment by Eric Milkie [ 30/Nov/16 ]

Note that after this failpoint is implemented, we should change all jstests that issue replSetSyncFrom commands to use the new failpoint, as necessary.

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