-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
The change stream spec says that:
Any error encountered which is not a server error (e.g. a timeout error or network error)
should be resumable.
Currently we add only particular exceptions to the list of resumable exceptions. We should consider making all exceptions that are inherited from MongoClientException resumable. It may require additional changes to exclude exceptions like "MongoConfigurationException" (that's clearly not resumable) from this logic. One of solution here might be adding a new field like IsRetryable=true on MongoClientException level that we will be able to override in children.
Additionally, we should consider replacing some of .net exceptions that we throw in the code on new ones inherited from MongoClientException that in turns also will be resumable. For example, we throw ObjectDisposedException if we try to call any method from the disposed server, but the server can be disposed by cluster at any moment for example because replica set reconfiguration. And in this case if this disposed server was pinned by any logic for example a created cursor, the pinned server will throw ObjectDisposedException during usage that won't be resumable
- split from
-
CSHARP-3963 MongoConnectionPoolPausedException should be resumable for change stream
- Closed