[
https://issues.apache.org/jira/browse/TS-3049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14115342#comment-14115342
]
Sudheer Vinukonda edited comment on TS-3049 at 8/29/14 3:49 PM:
----------------------------------------------------------------
Debugging further, it seems that FetchSM may never see the chunking (confirmed
with the logs below, that for a chunked response, in both working and failing
cases, body_done is sent immediately after header_done events). If the data is
all available by the time header_done is sent, the body is able to be sent
correctly, and if the data is not available by then, empty body is returned. It
is also quite possible that the a non-empty body is not necessarily the
complete response. Whatever data is available/read by the time header_done is
sent, is what is returned to the client before closing the stream.
Working Case Logs:
{code}
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) tunnel_run
started, p_arg is NULL
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.chunked_reader->read_avail() =
636
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel)
[producer_run] do_dechunking::Copied header of size 636
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_cs)
tcp_init_cwnd_set 0
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_cs) desired TCP
congestion window is 0
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.chunked_reader->read_avail() =
636
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.skip_bytes = 636
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
producer_handler [http server VC_EVENT_READ_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
producer_handler_chunked [http server VC_EVENT_READ_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_redirect)
[HttpTunnel::producer_handler] enable_redirection: [1 0 0] event: 100
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
producer_handler [http server VC_EVENT_READ_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
producer_handler_chunked [http server VC_EVENT_READ_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_chunk) read chunk
size of 11978 bytes
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_chunk) completed
read of chunk of 11978 bytes
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_redirect)
[HttpTunnel::producer_handler] enable_redirection: [1 0 0] event: 100
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
consumer_handler [cache write VC_EVENT_WRITE_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
consumer_handler [user agent VC_EVENT_WRITE_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM) [fetch_handler]
calling fetch_plugin
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM)
[process_fetch_read] I am here read
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM)
[process_fetch_read] number of bytes in read ready 12614
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM)
[process_fetch_read] copied 12614 bytes
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM)
[process_fetch_read] total copied 12614 bytes
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (spdy) ----[FETCH HEADER
DONE]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy)
----spdylay_submit_syn_reply
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy-event)
++++SpdyClientSession[1], EVENT:-2, ret:0
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ----[FETCH BODY
DONE]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy)
----spdylay_submit_data
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy-event)
++++SpdyClientSession[1], EVENT:-4, ret:0
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
consumer_handler [user agent VC_EVENT_WRITE_READY]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ----[WRITE EVENT]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy)
----spdy_send_callback, length:392
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ----SEND SYN_REPLY
(sm_id:1, stream_id:1, flag:0, length:384)
Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (FetchSM) [cleanUp] calling
cleanup
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ****Delete
Request[1:1]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy)
----spdy_send_callback, length:3794
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ----SEND DATA frame
(sm_id:1, stream_id:1, flag:1, length:3786)
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy-event)
++++SpdyClientSession[1], EVENT:101, ret:0
{code}
Failed Case Logs:
{code}
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.chunked_reader->read_avail() =
636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel)
[producer_run] do_dechunking::Copied header of size 636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_cs)
tcp_init_cwnd_set 0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_cs) desired TCP
congestion window is 0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.chunked_reader->read_avail() =
636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.skip_bytes = 636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
producer_handler [http server VC_EVENT_READ_READY]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
producer_handler_chunked [http server VC_EVENT_READ_READY]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_redirect)
[HttpTunnel::producer_handler] enable_redirection: [1 0 0] event: 100
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
consumer_handler [cache write VC_EVENT_WRITE_READY]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
consumer_handler [user agent VC_EVENT_WRITE_READY]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM) [fetch_handler]
calling fetch_plugin
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM)
[process_fetch_read] I am here read
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM)
[process_fetch_read] number of bytes in read ready 636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM)
[process_fetch_read] copied 636 bytes
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM)
[process_fetch_read] total copied 636 bytes
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy) ----[FETCH HEADER
DONE]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy)
----spdylay_submit_syn_reply
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy-event)
++++SpdyClientSession[5468429], EVENT:-2, ret:0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy) ----[FETCH BODY
DONE]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy)
----spdylay_submit_syn_reply
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy-event)
++++SpdyClientSession[5468429], EVENT:-2, ret:0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy) ----[FETCH BODY
DONE]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy)
----spdylay_submit_data
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy-event)
++++SpdyClientSession[5468429], EVENT:-4, ret:0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
consumer_handler [user agent VC_EVENT_WRITE_READY]
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy) ----[WRITE EVENT]
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy)
----spdy_send_callback, length:393
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy) ----SEND SYN_REPLY
(sm_id:5468429, stream_id:1, flag:0, length:385)
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (FetchSM) [cleanUp]
calling cleanup
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy) ****Delete
Request[5468429:1]
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy)
----spdy_send_callback, length:8
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy) ----SEND DATA frame
(sm_id:5468429, stream_id:1, flag:1, length:0)
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy-event)
++++SpdyClientSession[5468429], EVENT:101, ret:0
{code}
was (Author: sudheerv):
Debugging further, it seems that FetchSM may never see the chunking (confirmed
with the logs below, that for a chunked response, in both working and failing
cases, body_done is sent immediately after header_done events). If the data is
all available by the time header_done is sent, the body is able to be sent
correctly, and if the data is not available by then, empty body is returned.
Working Case Logs:
{code}
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) tunnel_run
started, p_arg is NULL
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.chunked_reader->read_avail() =
636
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel)
[producer_run] do_dechunking::Copied header of size 636
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_cs)
tcp_init_cwnd_set 0
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_cs) desired TCP
congestion window is 0
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.chunked_reader->read_avail() =
636
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.skip_bytes = 636
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
producer_handler [http server VC_EVENT_READ_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
producer_handler_chunked [http server VC_EVENT_READ_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_redirect)
[HttpTunnel::producer_handler] enable_redirection: [1 0 0] event: 100
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
producer_handler [http server VC_EVENT_READ_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
producer_handler_chunked [http server VC_EVENT_READ_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_chunk) read chunk
size of 11978 bytes
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_chunk) completed
read of chunk of 11978 bytes
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_redirect)
[HttpTunnel::producer_handler] enable_redirection: [1 0 0] event: 100
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
consumer_handler [cache write VC_EVENT_WRITE_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
consumer_handler [user agent VC_EVENT_WRITE_READY]
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM) [fetch_handler]
calling fetch_plugin
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM)
[process_fetch_read] I am here read
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM)
[process_fetch_read] number of bytes in read ready 12614
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM)
[process_fetch_read] copied 12614 bytes
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (FetchSM)
[process_fetch_read] total copied 12614 bytes
[Aug 29 14:47:07.183] Server {0x2b8425c4c700} DEBUG: (spdy) ----[FETCH HEADER
DONE]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy)
----spdylay_submit_syn_reply
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy-event)
++++SpdyClientSession[1], EVENT:-2, ret:0
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ----[FETCH BODY
DONE]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy)
----spdylay_submit_data
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy-event)
++++SpdyClientSession[1], EVENT:-4, ret:0
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (http_tunnel) [18]
consumer_handler [user agent VC_EVENT_WRITE_READY]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ----[WRITE EVENT]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy)
----spdy_send_callback, length:392
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ----SEND SYN_REPLY
(sm_id:1, stream_id:1, flag:0, length:384)
Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (FetchSM) [cleanUp] calling
cleanup
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ****Delete
Request[1:1]
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy)
----spdy_send_callback, length:3794
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy) ----SEND DATA frame
(sm_id:1, stream_id:1, flag:1, length:3786)
[Aug 29 14:47:07.184] Server {0x2b8425c4c700} DEBUG: (spdy-event)
++++SpdyClientSession[1], EVENT:101, ret:0
{code}
Failed Case Logs:
{code}
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.chunked_reader->read_avail() =
636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel)
[producer_run] do_dechunking::Copied header of size 636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_cs)
tcp_init_cwnd_set 0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_cs) desired TCP
congestion window is 0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.chunked_reader->read_avail() =
636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel)
[producer_run] do_dechunking p->chunked_handler.skip_bytes = 636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
producer_handler [http server VC_EVENT_READ_READY]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
producer_handler_chunked [http server VC_EVENT_READ_READY]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_redirect)
[HttpTunnel::producer_handler] enable_redirection: [1 0 0] event: 100
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
consumer_handler [cache write VC_EVENT_WRITE_READY]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
consumer_handler [user agent VC_EVENT_WRITE_READY]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM) [fetch_handler]
calling fetch_plugin
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM)
[process_fetch_read] I am here read
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM)
[process_fetch_read] number of bytes in read ready 636
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM)
[process_fetch_read] copied 636 bytes
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (FetchSM)
[process_fetch_read] total copied 636 bytes
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy) ----[FETCH HEADER
DONE]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy)
----spdylay_submit_syn_reply
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy-event)
++++SpdyClientSession[5468429], EVENT:-2, ret:0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy) ----[FETCH BODY
DONE]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy)
----spdylay_submit_syn_reply
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy-event)
++++SpdyClientSession[5468429], EVENT:-2, ret:0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy) ----[FETCH BODY
DONE]
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy)
----spdylay_submit_data
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (spdy-event)
++++SpdyClientSession[5468429], EVENT:-4, ret:0
[Aug 28 14:12:55.052] Server {0x2aebb6757700} DEBUG: (http_tunnel) [125828193]
consumer_handler [user agent VC_EVENT_WRITE_READY]
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy) ----[WRITE EVENT]
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy)
----spdy_send_callback, length:393
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy) ----SEND SYN_REPLY
(sm_id:5468429, stream_id:1, flag:0, length:385)
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (FetchSM) [cleanUp]
calling cleanup
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy) ****Delete
Request[5468429:1]
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy)
----spdy_send_callback, length:8
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy) ----SEND DATA frame
(sm_id:5468429, stream_id:1, flag:1, length:0)
[Aug 28 14:12:55.053] Server {0x2aebb6757700} DEBUG: (spdy-event)
++++SpdyClientSession[5468429], EVENT:101, ret:0
{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
>
> Attachments: ts3049.pcap
>
>
> 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)