Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-28710

vectorized send() should handle EWOULDBLOCK

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.2.14, 3.4.5, 3.5.7
    • Affects Version/s: None
    • Component/s: Networking
    • Labels:
      None
    • Fully Compatible
    • ALL
    • v3.4, v3.2
    • Platforms 2017-05-08

      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.

            Assignee:
            andrew.morrow@mongodb.com Andrew Morrow (Inactive)
            Reporter:
            mira.carey@mongodb.com Mira Carey
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: