-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Connectivity
-
None
-
Minor Change
Summary of required driver work:
Reduce race conditions in SDAM error handling. In summary, drivers will update their SDAM and error handling logic to:
Add topologyVersion field to ServerDescription.
Ignore stale errors based on generation number and topologyVersion.
Implement SDAM spec tests for topologyVersion comparison.
Implement SDAM spec tests for handling mock application errors with the new tests in the tests/errors directory.
Spec changes:
Spec commit (part 1 of 2):
Author:
Message: SPEC-1663 Reduce race conditions in SDAM error handling (#781)
Add topologyVersion field to ServerDescription.
Add SDAM spec tests for topologyVersion comparison.
Clients ignore stale errors based on generation number and topologyVersion.
Branch: master
https://github.com/mongodb/specifications/commit/7dd9c008be6edaf65368787d5e91c2ac3aeb95b8
Spec commit (part 2 of 2):
Author:
Message: SPEC-1663 Add SDAM tests for detecting stale application errors (#787)
Add applicationErrors to configure mock errors.
Add pool generation to outcome assertion.
Add optional "description" field to each phase.
Add tests for network errors before/after handshake completes.
Add tests for not master errors pre/post 4.2.
Branch: master
https://github.com/mongodb/specifications/commit/371e95b18f4783d485218bb1565970be10568e8a
See DRIVERS-1187 for updated details.
- depends on
-
CSHARP-2126 Change handling of network errors or timeouts during connection handshake
- Closed
-
CSHARP-3114 Change handling of network errors or timeouts during connection handshake followup
- Closed
- is related to
-
CSHARP-3119 Update SDAM to not request immediate rechecks on network errors
- Backlog
-
CSHARP-2433 Connections survive primary stepdown
- Closed
-
CSHARP-3115 Connections survive primary stepdown followup
- Closed
-
CSHARP-3114 Change handling of network errors or timeouts during connection handshake followup
- Closed
-
CSHARP-3128 Use Interlocker.CompareExchange in the ServerMonitor in the same way as in Server
- Backlog
-
CSHARP-3088 Resync SDAM error handling spec tests
- Closed