Separate read/write timeouts for socket operations (original) (raw)

mgo has a single single timeout for read/write operations causes issues when setting sensible limits:

There's some interesting interplay between timeouts too:

mgo-timeouts

This doesn't include the pool connection wait timeout (session.poolTimeout) or the iter/changestream timeouts, etc.

This ticket is to track fixing the two hard-coded timeouts, and splitting Timeout into ReadTimeout and WriteTimeout in a backwards compatible way.