...
BugZero found this defect 2861 days ago.
The vectorized write path in /util/net/sock.cpp only handles EAGAIN, unlike the non-vectorized path (which also handles EWOULDBLOCK). Both can receive it (from the SO_SNDTIMEO sockopt). Failing to handle it means that socket timeouts will be sent up to the rest of the system as SocketException::SEND_ERROR, rather than SEND_TIMEOUT.
xgen-internal-githook commented on Mon, 1 May 2017 15:39:12 +0000: Author: {u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@mongodb.com'} Message: SERVER-28710 Unify error handling between send and sendmsg paths (cherry picked from commit 6ce4f12e208e3f02a6de1ba79158b2d181e60bd8) Branch: v3.2 https://github.com/mongodb/mongo/commit/1a24cc13e5068cc6e3e536b825b4821dedcb851d xgen-internal-githook commented on Thu, 27 Apr 2017 15:57:39 +0000: Author: {u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@mongodb.com'} Message: SERVER-28710 Unify error handling between send and sendmsg paths (cherry picked from commit 6ce4f12e208e3f02a6de1ba79158b2d181e60bd8) Branch: v3.4 https://github.com/mongodb/mongo/commit/60669a7596b2c8dd96697840e0dfb374ea6c5193 xgen-internal-githook commented on Wed, 26 Apr 2017 12:12:49 +0000: Author: {u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@mongodb.com'} Message: SERVER-28710 Unify error handling between send and sendmsg paths Branch: master https://github.com/mongodb/mongo/commit/6ce4f12e208e3f02a6de1ba79158b2d181e60bd8