Armand Grillet created MESOS-8368:
-------------------------------------

             Summary: Improve HTTP parser to support HTTP/2 messages.
                 Key: MESOS-8368
                 URL: https://issues.apache.org/jira/browse/MESOS-8368
             Project: Mesos
          Issue Type: Improvement
            Reporter: Armand Grillet


We currently use [http-parser|https://github.com/nodejs/http-parser] to parse 
HTTP messages. This parser does not work with HTTP/2 requests and responses 
which as an issue as curl enables HTTP/2 by default for HTTPS connections since 
its version 7.47.

The issue has been discovered in some of our tests (e.g. ProvisionerDockerTest) 
where it crashes with the message {{Failed to decode HTTP responses: Decoding 
failed}}. See [MESOS-8335|https://issues.apache.org/jira/browse/MESOS-8335] for 
more details.

Possible long-term solutions:
* Upgrade the parser to be compatible with HTTP/2 messages. 
[http-parser|https://github.com/nodejs/http-parser] has not been updated 
regularly this past year in favor of 
[nghttp2|https://github.com/nghttp2/nghttp2] which has a much broader scope. 
[There is no equivalent of http-parser for HTTP/2 
yet|https://users.rust-lang.org/t/is-there-anything-similar-to-http-parser-but-for-http2/10721].
* Test which version of curl is used at startup and report an error if the 
version is >= 7.47 and the flag {{--http1.0}} is not used in curl (more details 
regarding this flag are available [here|https://curl.haxx.se/docs/manpage.html].

In the meantime, we are upgrading our testing machines using a recent version 
of curl to run with the flag {{--http1.0}} 
([MESOS-8335|https://issues.apache.org/jira/browse/MESOS-8335]).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to