[SERVER-41371] Unify NamespaceNotFound handling when calling applyOperation_inlock Created: 29/May/19 Updated: 13/Apr/23 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Siyuan Zhou | Assignee: | Backlog - Replication Team |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | former-quick-wins, quick_wins | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Assigned Teams: |
Replication
|
||||||||||||
| Participants: | |||||||||||||
| Description |
|
applyOperation_inlock() needs the collection lock held before calling the function, which may throw a NamespaceNotFound error. As a result, all callers have to handle NamespaceNotFound correctly for idempotency reasons. We should unify the logic. |
| Comments |
| Comment by Ratika Gandhi [ 18/Jul/19 ] |
|
jesse@mongodb.com, please consider this ticket while designing 'address tech debt in oplog application path'. |
| Comment by Matthew Russotto [ 30/May/19 ] |
|
Note we currently have, in sync_tail, a parameter called allowNamespaceNotFoundErrorsOnCrudOps, which is used sometimes to handle treatment of NamespaceNotFound. We should either get rid of this parameter or make this parameter control all treatment of NamespaceNotFound as part of this ticket. |