Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-9189

Include 'Connection: close' header in master streaming API responses.

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Accepted
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: HTTP API
    • Labels:
      None

      Description

      We've seen some HTTP intermediaries (e.g. ELB) decide to re-use connections to mesos as an optimization to avoid re-connection overhead. As a result, when the end-client of the streaming API disconnects from the intermediary, the intermediary leaves the connection to mesos open in an attempt to re-use the connection for another request once the response completes. Mesos then thinks that the subscriber never disconnected and the intermediary happily continues to read the streaming events even though there's no end-client.

      To help indicate to intermediaries that the connection SHOULD NOT be re-used, we can set the 'Connection: close' header for streaming API responses. It may not be respected (since the language seems to be SHOULD NOT), but some intermediaries may respect it and close the connection if the end-client disconnects.

      Note that libprocess' http server currently doesn't close the the connection based on a handler setting this header, but it doesn't matter here since the streaming API responses are infinite.

        Attachments

        1. bad_run.txt
          10 kB
          Benjamin Mahler
        2. good_run.txt
          6 kB
          Benjamin Mahler

          Issue Links

            Activity

              People

              • Assignee:
                bmahler Benjamin Mahler
                Reporter:
                bmahler Benjamin Mahler
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated: