You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Sudheer Vinukonda (JIRA)" <ji...@apache.org> on 2014/08/28 02:17:58 UTC
[jira] [Commented] (TS-3049) SPDY requests returning 200 OK with
empty body..
[ https://issues.apache.org/jira/browse/TS-3049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14113101#comment-14113101 ]
Sudheer Vinukonda commented on TS-3049:
---------------------------------------
Origin Response with Chunked encoding -
{code}
+++++++++ Incoming O.S. Response +++++++++
-- State Machine Id: 125764090
HTTP/1.1 200 OK^M
Accept-Ranges: bytes^M
Cache-Control: max-age=536112000^M
Connection: Keep-Alive^M
Content-Encoding: gzip^M
Content-Type: application/javascript^M
Date: Wed, 27 Aug 2014 23:39:53 GMT^M
Etag: *********
Expires: Sat, 05 Sep 2026 00:00:00 GMT^M
Last-Modified: Wed, 27 Aug 2014 20:09:00 GMT^M
Server: HTTP/1.1 ******
Transfer-Encoding: chunked^M
Vary: Accept-Encoding^M
Via: HTTP/1.1 *****
x-ysws-request-id: *****
x-ysws-visited-replicas: ******
{code}
Debug logs showing FETCH_BODY_DONE event being triggered immediately following FETCH_HEADER_DONE..
{code}
[Aug 27 23:39:54.033] Server {0x2aebb5d4d700} DEBUG: (spdy) ----[FETCH HEADER DONE]
[Aug 27 23:39:54.033] Server {0x2aebb5d4d700} DEBUG: (spdy) ----spdylay_submit_syn_reply
[Aug 27 23:39:54.034] Server {0x2aebb5d4d700} DEBUG: (spdy-event) ++++SpdyClientSession[5468427], EVENT:-2, ret:0
[Aug 27 23:39:54.034] Server {0x2aebb5d4d700} DEBUG: (spdy) ----[FETCH BODY DONE]
[Aug 27 23:39:54.034] Server {0x2aebb5d4d700} DEBUG: (spdy) ----spdylay_submit_data
{code}
> SPDY requests returning 200 OK with empty body..
> ------------------------------------------------
>
> Key: TS-3049
> URL: https://issues.apache.org/jira/browse/TS-3049
> Project: Traffic Server
> Issue Type: Bug
> Components: SPDY
> Affects Versions: 5.0.1
> Reporter: Sudheer Vinukonda
> Assignee: Brian Geffon
> Priority: Blocker
> Fix For: 5.1.0
>
>
> Ran into another issue in our production, where some SPDY requests were returning a valid response (200 OK), but, with no data (empty body).
> Below is a sample response:
> {code}
> t=688758 [st= 1] SPDY_SESSION_SYN_STREAM
> --> fin = true
> --> :host: ********
> :method: GET
> :path: /********.js
> :scheme: https
> :version: HTTP/1.1
> accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
> accept-encoding: gzip,deflate
> accept-language: en-US,en;q=0.8
> cache-control: max-age=0
> cookie: [215 bytes were stripped]
> user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36
> --> spdy_priority = 0
> --> stream_id = 1
> --> unidirectional = false
> t=688941 [st= 184] SPDY_SESSION_SYN_REPLY
> --> fin = false
> --> :status: 200 OK
> :version: HTTP/1.1
> accept-ranges: bytes
> age: 2
> cache-control: max-age=536112000
> content-encoding: gzip
> content-type: application/javascript
> date: Wed, 27 Aug 2014 23:39:53 GMT
> etag: "************************"
> expires: Sat, 05 Sep 2026 00:00:00 GMT
> last-modified: Wed, 27 Aug 2014 20:09:00 GMT
> server: ATS
> vary: Accept-Encoding
> via: HTTP/1.1 ********** (ApacheTrafficServer)
> x-ysws-request-id: **********
> x-ysws-visited-replicas: *********
> --> stream_id = 1
> t=688941 [st= 184] SPDY_SESSION_RECV_DATA
> --> fin = true
> --> size = 0
> --> stream_id = 1
> {code}
> Investigating further, it seems that the issue occurs, when the response from the origin is chunked. Debugging further, it looks like there's a bug in FetchSM - check_body_done() is broken for chunked encoding case.
> {code}
> bool
> FetchSM::check_body_done()
> {
> if (!check_chunked()) {
> if (resp_content_length == resp_recived_body_len + resp_reader->read_avail())
> return true;
> return false;
> }
> //
> // TODO: check whether the chunked body is done
> //
> return true;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)