Sudheer Vinukonda created TS-3049:
-------------------------------------
Summary: 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
Reporter: Sudheer Vinukonda
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)