-
Type: Spec Change
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Component/s: Transactions
-
None
-
Needed
The Network Error section states:
Any error or timeout that occurs while selecting a server or reading from or writing to a network socket.
But this is not common usage of the term, so it's easy to gloss over. And furthermore, it the rest of the spec server selection timeouts are called out explicitly, e.g.
Any network error or server selection error encountered running any command besides commitTransaction in a transaction
The spec should redefine network errors according to more common usage by pulling out the "selecting a server" piece of it, and ensure that server selection timeout is called out explicitly, where applicable.
The spec should also call out connection pool-related timeouts as having the same semantics as server selection timeouts. Just as with server selection timeout, a failure to check out a connection from the pool is a transient error and should be retryable in the same circumstances.