Details
-
Bug
-
Resolution: Done
-
Major - P3
-
2.5.4
-
None
-
ALL
-
Description
The logic behind this is as follows:
In 2.4, the oplogreader which notifies the primary of a secondary's sync progress only sends a handshake when it first connects (in 2.6, we notify the primary of this progress via the SyncSourceFeedback class). This handshake is how the secondary gets added to primary's ghost cache which is how the primary tracks the secondary's sync progress for the sake of write concerns.
On a reconfig where only tags are affected, 2.6 members clear the ghost cache as well as the member list, but do not close all connections in order to avoid triggering an election. When a 2.6 node is syncing from a 2.6 node, this does not cause a problem because the 2.6 secondary node will send an update, hear back that primary does not know who the secondary is, and the secondary will send a handshake.
After the reconfig, the 2.6 primary does not know who the 2.4 secondary is, but the 2.4 secondary does not send a new handshake. So, the secondary will continue to send updates and the primary will ignore them. After 10 minutes the oplogreader timeout is trigger and a reconnect occurs.