-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Internal Client
-
None
-
Fully Compatible
-
Repl 2019-12-02
Currently DBClientConnection will sometimes return an internal code for network errors, which means its user cannot tell these are network errors which could be retried. We should change this so DBClientConnection and related classes pass any network errors up as network errors.
Examples:
https://github.com/mongodb/mongo/blob/master/src/mongo/client/dbclient_connection.cpp#L540
https://github.com/mongodb/mongo/blob/master/src/mongo/client/dbclient_connection.cpp#L625
https://github.com/mongodb/mongo/blob/master/src/mongo/client/dbclient_cursor.cpp#L276
https://github.com/mongodb/mongo/blob/master/src/mongo/client/dbclient_base.cpp#L591 (this is probably not a network error but we should still propagate the error code)
https://github.com/mongodb/mongo/blob/master/src/mongo/client/dbclient_base.cpp#L651
https://github.com/mongodb/mongo/blob/master/src/mongo/client/dbclient_base.cpp#L772
Some of these will require changing lower level classes to preserve error information.