You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Conan Wang (JIRA)" <ji...@apache.org> on 2012/10/13 14:32:03 UTC

[jira] [Commented] (TS-1525) SPDY plugin will hang after several requests

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

Conan Wang commented on TS-1525:
--------------------------------

As for malformed status line and incorrect warning at error.log : [spdy] client is version 2, but we implement version 3, following change is OK for me.

{code}
diff --git a/plugins/experimental/spdy/http.cc b/plugins/experimental/spdy/htt
index 94cb9ac..b5e0432 100644
--- a/plugins/experimental/spdy/http.cc
+++ b/plugins/experimental/spdy/http.cc
@@ -41,7 +41,7 @@ populate_http_headers(
     snprintf(status, sizeof(status),
             "%u %s", (unsigned)code, TSHttpHdrReasonLookup(code));
     snprintf(httpvers, sizeof(httpvers),
-            "HTTP/%2u.%2u", TS_HTTP_MAJOR(vers), TS_HTTP_MINOR(vers));
+            "HTTP/%u.%u", TS_HTTP_MAJOR(vers), TS_HTTP_MINOR(vers));
 
     if (version == spdy::PROTOCOL_VERSION_2) {
         kvblock["status"] = status;
diff --git a/plugins/experimental/spdy/lib/spdy/spdy.h b/plugins/experimental/
index 90bea0f..fa5632a 100644
--- a/plugins/experimental/spdy/lib/spdy/spdy.h
+++ b/plugins/experimental/spdy/lib/spdy/spdy.h
@@ -35,7 +35,7 @@ namespace spdy {
     };
 
     enum : unsigned {
-        PROTOCOL_VERSION = 3,
+        PROTOCOL_VERSION = 2,
         MAX_FRAME_LENGTH = (1u << 24)
     };
{code}
                
> SPDY plugin will hang after several requests
> --------------------------------------------
>
>                 Key: TS-1525
>                 URL: https://issues.apache.org/jira/browse/TS-1525
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Plugins
>            Reporter: Conan Wang
>
> In a spdy session, plugin will hang if reload the page several times in browser.
> Debug log:
> {code}
> (spdy.plugin) spdy_vconn_io:297 received 738 bytes
> (spdy.plugin) spdy_vconn_io:297 received 754 bytes
> (spdy.plugin) spdy_vconn_io:297 received 1442 bytes
> (spdy.plugin) spdy_vconn_io:297 received 1458 bytes
> ....repeat on each reload request....
> {code}
> Some debug info,  FYI:
> When hanging, at spdy.cc:204 consume_spdy_frame(), nbytes from TSIOBufferBlockReadStart will not grow. So (header.datalen <= (nbytes - spdy::message_header::size) can not pass test. 
> nbytes from TSIOBufferBlockReadStart is the available bytes of current block, which I think should get from TSIOBufferReaderAvail(io->input.reader). However, after replacing with TSIOBufferReaderAvail, other issues will raise: parsing request header will fail or crash when decompressing header.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira