[SERVER-56619] Arbiters should explicitly clear their durable optime Created: 04/May/21  Updated: 06/Dec/22

Status: Backlog
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Matthew Russotto Assignee: Backlog - Replication Team
Resolution: Unresolved Votes: 0
Labels: former-quick-wins
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Issue split
split from SERVER-54876 Upgrade mongodb 4.4.4 from 4.2.12 failed Closed
Assigned Teams:
Replication
Operating System: ALL
Backport Requested:
v4.4, v4.2
Participants:

 Description   

Right now when a node starts up or has a config change, if it is not an arbiter it reads its last optime from the top of the oplog. If it is an arbiter it does not, but it does not clear the last optime either. So if a node goes from being not an arbiter (i.e. REMOVED, which can happen due to network errors) to being an arbiter, and it happens to have an oplog (which an arbiter might if it was ever started as a primary or secondary), it will end up with an old and possibly invalid (e.g. missing term or wall time) value for lastDurableOpTime, which will remain until the next restart.


Generated at Thu Feb 08 05:39:45 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.