You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Ryo Okubo (JIRA)" <ji...@apache.org> on 2015/03/03 03:42:05 UTC

[jira] [Updated] (TS-3415) H2 sending FIN stream too early

     [ https://issues.apache.org/jira/browse/TS-3415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ryo Okubo updated TS-3415:
--------------------------
    Attachment: ts-3415-02.diff

ts-3415-02.diff (includes ts-3415.diff) fixes the problem around chunking. HPACK encoder removes connection-specific response header fields of FetchSM directly to satisfy [requirements for intermediaries|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.1.2.2] but these are used to check whether chunked body is done. I fix the encoder to skip these but not remove.

> H2 sending FIN stream too early
> -------------------------------
>
>                 Key: TS-3415
>                 URL: https://issues.apache.org/jira/browse/TS-3415
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: HTTP/2
>            Reporter: Sudheer Vinukonda
>         Attachments: ts-3415-02.diff, ts-3415-3414.diff, ts-3415.diff
>
>
> With H2 running on the docs/jenkins server, some of us have noticed empty pages on chrome/FF when hitting those servers. Looking at the H2 traces, it seems that ATS is sending FIN streams (both SPDY_SESSION_RECV_HEADERS and SPDY_SESSION_RECV_DATA with fin flag set to true) before sending the data frames. This makes the browser display blank pages.
> Example:
> {code}
> t=31890437 [st=140]    SPDY_SESSION_RECV_DATA
>                        --> fin = true
>                        --> size = 0
>                        --> stream_id = 1
> t=31890437 [st=140]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 2591
>                        --> stream_id = 1
> {code}
> Detailed traces below:
> {code}
> 1112054: SPDY_SESSION
> ci.trafficserver.apache.org:443 (DIRECT)
> Start Time: 2015-02-26 13:30:14.060
> t=31890297 [st=  0] +SPDY_SESSION  [dt=?]
>                      --> host = "ci.trafficserver.apache.org:443"
>                      --> proxy = "DIRECT"
> t=31890297 [st=  0]    SPDY_SESSION_INITIALIZED
>                        --> protocol = "h2-14"
>                        --> source_dependency = 1112049 (SOCKET)
> t=31890297 [st=  0]    SPDY_SESSION_SEND_SETTINGS
>                        --> settings = ["[id:3 flags:0 value:1000]","[id:4 flags:0 value:10485760]"]
> t=31890297 [st=  0]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 10420224
>                        --> window_size = 10485760
> t=31890297 [st=  0]    SPDY_SESSION_SENT_WINDOW_UPDATE_FRAME
>                        --> delta = 10420224
>                        --> stream_id = 0
> t=31890297 [st=  0]    SPDY_SESSION_SYN_STREAM
>                        --> fin = true
>                        --> :authority: ci.trafficserver.apache.org
>                            :method: GET
>                            :path: /job/tsqa-master/180/consoleFull
>                            :scheme: https
>                            accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
>                            accept-encoding: gzip, deflate, sdch
>                            accept-language: en-US,en;q=0.8
>                            cache-control: max-age=0
>                            cookie: [71 bytes were stripped]
>                            user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
>                        --> spdy_priority = 0
>                        --> stream_id = 1
>                        --> unidirectional = false
> t=31890335 [st= 38]    SPDY_SESSION_RECV_SETTINGS
>                        --> clear_persisted = false
>                        --> host = "ci.trafficserver.apache.org:443"
> t=31890335 [st= 38]    SPDY_SESSION_RECV_SETTING
>                        --> flags = 0
>                        --> id = 1
>                        --> value = 4096
> t=31890335 [st= 38]    SPDY_SESSION_RECV_SETTING
>                        --> flags = 0
>                        --> id = 2
>                        --> value = 0
> t=31890335 [st= 38]    SPDY_SESSION_RECV_SETTING
>                        --> flags = 0
>                        --> id = 3
>                        --> value = 100
> t=31890436 [st=139]    SPDY_SESSION_RECV_HEADERS
>                        --> fin = true
>                        --> :status: 200
>                            age: 1
>                            cache-control: no-cache,no-store,must-revalidate
>                            content-encoding: gzip
>                            content-type: text/html;charset=UTF-8
>                            date: Thu, 26 Feb 2015 21:30:14 GMT
>                            expires: Thu, 01 Jan 1970 00:00:00 GMT
>                            server: ATS/5.3.0
>                            set-cookie: [67 bytes were stripped]
>                            strict-transport-security: max-age=86400
>                            via: http/1.1 ATS (ApacheTrafficServer/5.3.0 [cMsSf ])
>                            x-frame-options: sameorigin
>                            x-hudson: 1.395
>                            x-hudson-cli-port: 40666
>                            x-hudson-theme: default
>                            x-instance-identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5JuJJnF3WReAyfHqknx9O1JV3chT6Iihwk/UIOYpZ6tLORwKrzPYVO6ho7cpwT9Jtfj91lb9Gpx0FZnhGZXsdh9SMYG8gUfGo3DRy9dLkXjNu5kYo9PQk701PvnCQJSByIpzGWTCoIwfgWTGqMEuGYZ5TvRbLnmm9j9ujo2SQpOeAUXi9f0d27wcb/MOYv8H8nICgsAcpp1AaTcboabfsJYWNodDDPYvtCjfIbQhBov5qDFnsmYXbmWavXaJ2ZGI24jSmdebFcto7NlbLLAI0JFHFualDGvfcY51NGaiK1+MNxllYsEnVSP6kSdxEtJSHOxN7z6oRVGKExh104YyDQIDAQAB
>                            x-jenkins: 1.598
>                            x-jenkins-cli-port: 40666
>                            x-jenkins-cli2-port: 40666
>                            x-jenkins-session: 906fc928
>                        --> stream_id = 1
> t=31890437 [st=140]    SPDY_SESSION_RECV_DATA
>                        --> fin = true
>                        --> size = 0
>                        --> stream_id = 1
> t=31890437 [st=140]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 2591
>                        --> stream_id = 1
> t=31890437 [st=140]    SPDY_SESSION_UPDATE_RECV_WINDOW
>                        --> delta = -2591
>                        --> window_size = 10483169
> t=31890437 [st=140]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 2591
>                        --> window_size = 10485760
> t=31890437 [st=140]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 5592
>                        --> stream_id = 1
> t=31890437 [st=140]    SPDY_SESSION_UPDATE_RECV_WINDOW
>                        --> delta = -5592
>                        --> window_size = 10480168
> t=31890437 [st=140]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 5592
>                        --> window_size = 10485760
> t=31890437 [st=140]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 2591
>                        --> stream_id = 1
> t=31890437 [st=140]    SPDY_SESSION_UPDATE_RECV_WINDOW
>                        --> delta = -2591
>                        --> window_size = 10483169
> t=31890437 [st=140]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 2591
>                        --> window_size = 10485760
> t=31890488 [st=191]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 3900
>                        --> stream_id = 1
> t=31890488 [st=191]    SPDY_SESSION_UPDATE_RECV_WINDOW
>                        --> delta = -3900
>                        --> window_size = 10481860
> t=31890488 [st=191]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 3900
>                        --> window_size = 10485760
> t=31890488 [st=191]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 1692
>                        --> stream_id = 1
> t=31890488 [st=191]    SPDY_SESSION_UPDATE_RECV_WINDOW
>                        --> delta = -1692
>                        --> window_size = 10484068
> t=31890488 [st=191]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 1692
>                        --> window_size = 10485760
> t=31890488 [st=191]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 6491
>                        --> stream_id = 1
> t=31890488 [st=191]    SPDY_SESSION_UPDATE_RECV_WINDOW
>                        --> delta = -6491
>                        --> window_size = 10479269
> t=31890488 [st=191]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 6491
>                        --> window_size = 10485760
> t=31890488 [st=191]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 1692
>                        --> stream_id = 1
> t=31890488 [st=191]    SPDY_SESSION_UPDATE_RECV_WINDOW
>                        --> delta = -1692
>                        --> window_size = 10484068
> t=31890488 [st=191]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 1692
>                        --> window_size = 10485760
> t=31890488 [st=191]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 6491
>                        --> stream_id = 1
> t=31890488 [st=191]    SPDY_SESSION_UPDATE_RECV_WINDOW
>                        --> delta = -6491
>                        --> window_size = 10479269
> t=31890488 [st=191]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 6491
>                        --> window_size = 10485760
> t=31890488 [st=191]    SPDY_SESSION_RECV_DATA
>                        --> fin = false
>                        --> size = 647
>                        --> stream_id = 1
> t=31890488 [st=191]    SPDY_SESSION_UPDATE_RECV_WINDOW
>                        --> delta = -647
>                        --> window_size = 10485113
> t=31890488 [st=191]    SPDY_STREAM_UPDATE_RECV_WINDOW
>                        --> delta = 647
>                        --> window_size = 10485760
> t=31890488 [st=191]    SPDY_SESSION_RECV_DATA
>                        --> fin = true
>                        --> size = 0
>                        --> stream_id = 1
> t=31890490 [st=193]    SPDY_SESSION_SYN_STREAM
>                        --> fin = true
>                        --> :authority: ci.trafficserver.apache.org
>                            :method: GET
>                            :path: /favicon.ico
>                            :scheme: https
>                            accept: */*
>                            accept-encoding: gzip, deflate, sdch
>                            accept-language: en-US,en;q=0.8
>                            cookie: [71 bytes were stripped]
>                            if-modified-since: Fri, 30 Jan 2015 15:31:33 GMT
>                            user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
>                        --> spdy_priority = 4
>                        --> stream_id = 3
>                        --> unidirectional = false
> t=31890555 [st=258]    SPDY_SESSION_RECV_HEADERS
>                        --> fin = true
>                        --> :status: 304
>                            date: Thu, 26 Feb 2015 21:30:14 GMT
>                            expires: Mon, 09 Feb 2015 19:39:27 GMT
>                            server: ATS/5.3.0
>                            strict-transport-security: max-age=86400
>                            via: http/1.1 ATS (ApacheTrafficServer/5.3.0 [cSsNfU])
>                        --> stream_id = 3
> t=31890555 [st=258]    SPDY_SESSION_RECV_DATA
>                        --> fin = true
>                        --> size = 0
>                        --> stream_id = 3
> {code} 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)