[SERVER-27054] Slave can acknowledge write before initial sync is complete Created: 15/Nov/16 Updated: 06/Dec/22 Resolved: 21/Nov/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Tess Avitabile (Inactive) | Assignee: | Backlog - Replication Team |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||
| Assigned Teams: |
Replication
|
||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||
| Steps To Reproduce: |
|
||||||||||||||||||
| Participants: | |||||||||||||||||||
| Description |
|
This behavior means that we cannot use {w:2} writes to tell whether a slave has completed initial sync. |
| Comments |
| Comment by Eric Milkie [ 16/Nov/16 ] |
|
After some investigation, it looks like this may be working as "designed". Since slaves do not have the concept of "minvalid", they do not have an "oplog catch up" phase of initial sync; instead, they fully clone new databases "in the moment" while processing the oplog stream. In the repro test case above, the appearance of the "test" database after the slave's initial sync started was triggering a bug in processing 'db' ops ( |