-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Change Streams, Retryability
Use Case
As a... Node.js engineer
I want... any socket error to be converted to a MongoNetworkError
So that... driver retry and resume logic responds as expected
User Experience
- What is the desired/expected outcome for the user once this ticket is implemented?
- Socket error events are always converted to our MongoNetworkError class, because the driver will not retry plain runtime errors
- If bug: What is the number of impacted customers? How severe is the impact? Is anyone blocked or broken?
- The timing has to be right to make the error event handling run and proceed to our "read promise" rejection before the close event occurs.
Dependencies
- None
Risks/Unknowns
- What could go wrong while implementing this change? (e.g., performance, inadvertent behavioral changes in adjacent functionality, existing tech debt, etc)
- Is there an opportunity for better cross-driver alignment or testing in this area?
- This is node-specific but it was overlooked because failpoints that close the connection do not cause the "perfect storm" of event ordering.
- Is there an opportunity to improve existing documentation on this subject?
Acceptance Criteria
Implementation Requirements
- Convert socket errors to MongoNetworkErrors
Testing Requirements
- Destroy the socket one micro tick after read and after write and assert a MongoNetworkError is thrown from the operation.
Documentation Requirements
- None
Follow Up Requirements
- None
- is related to
-
NODE-6861 Flaky: Client Side Encryption Prose Tests KMS TLS Options Tests should fail with no TLS
-
- Ready for Work
-