[ 
https://issues.apache.org/jira/browse/MESOS-8907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16659211#comment-16659211
 ] 

Till Toenshoff commented on MESOS-8907:
---------------------------------------

[~Kirill P] the problem is our current HTTP parser. Only when we try to feed an 
HTTP result into the parser that in fact was HTTP/2, we hit the described bug. 
We therefore need to fix all HTTP client invocations that try to feed the HTTP 
responses into the HTTP parser.
The docker fetcher which does this does not use libcurl but instead calls out 
to the {{curl}} command line tool.
 



> curl fetcher fails with HTTP/2
> ------------------------------
>
>                 Key: MESOS-8907
>                 URL: https://issues.apache.org/jira/browse/MESOS-8907
>             Project: Mesos
>          Issue Type: Task
>          Components: fetcher
>    Affects Versions: 1.5.1, 1.6.1, 1.7.0, 1.8.0
>            Reporter: James Peach
>            Assignee: Till Toenshoff
>            Priority: Major
>              Labels: integration
>
> {noformat}
> [ RUN      ] 
> ImageAlpine/ProvisionerDockerTest.ROOT_INTERNET_CURL_SimpleCommand/2
> ...
> I0510 20:52:00.209815 25010 registry_puller.cpp:287] Pulling image 
> 'quay.io/coreos/alpine-sh' from 
> 'docker-manifest://quay.iocoreos/alpine-sh?latest#https' to 
> '/tmp/ImageAlpine_ProvisionerDockerTest_ROOT_INTERNET_CURL_SimpleCommand_2_wF7EfM/store/docker/staging/qit1Jn'
> E0510 20:52:00.756072 25003 slave.cpp:6176] Container 
> '5eb869c5-555c-4dc9-a6ce-ddc2e7dbd01a' for executor 
> 'ad9aa898-026e-47d8-bac6-0ff993ec5904' of framework 
> 7dbe7cd6-8ffe-4bcf-986a-17ba677b5a69-0000 failed to start: Failed to decode 
> HTTP responses: Decoding failed
> HTTP/2 200
> server: nginx/1.13.12
> date: Fri, 11 May 2018 03:52:00 GMT
> content-type: application/vnd.docker.distribution.manifest.v1+prettyjws
> content-length: 4486
> docker-content-digest: 
> sha256:61bd5317a92c3213cfe70e2b629098c51c50728ef48ff984ce929983889ed663
> x-frame-options: DENY
> strict-transport-security: max-age=63072000; preload
> ...
> {noformat}
> Note that curl is saying the HTTP version is "HTTP/2". This happens on modern 
> curl that automatically negotiates HTTP/2, but the docker fetcher isn't 
> prepared to parse that.
> {noformat}
> $ curl -i --raw -L -s -S -o -  'http://quay.io/coreos/alpine-sh?latest#https'
> HTTP/1.1 301 Moved Permanently
> Content-Type: text/html
> Date: Fri, 11 May 2018 04:07:44 GMT
> Location: https://quay.io/coreos/alpine-sh?latest
> Server: nginx/1.13.12
> Content-Length: 186
> Connection: keep-alive
> HTTP/2 301
> server: nginx/1.13.12
> date: Fri, 11 May 2018 04:07:45 GMT
> content-type: text/html; charset=utf-8
> content-length: 287
> location: https://quay.io/coreos/alpine-sh/?latest
> x-frame-options: DENY
> strict-transport-security: max-age=63072000; preload
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to