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:26:02 UTC

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

Conan Wang created TS-1525:
------------------------------

             Summary: 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

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

Posted by "Leif Hedstrom (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-1525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Leif Hedstrom updated TS-1525:
------------------------------

    Fix Version/s: 3.3.2
    
> 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
>            Assignee: James Peach
>             Fix For: 3.3.2
>
>
> 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

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

Posted by "James Peach (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-1525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Peach reassigned TS-1525:
-------------------------------

    Assignee: James Peach
    
> 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
>            Assignee: James Peach
>
> 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

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

Posted by "James Peach (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13475690#comment-13475690 ] 

James Peach commented on TS-1525:
---------------------------------

Thanks for filing the bug and the patch. I don't know what I was thinking with that format string :)
                
> 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
>            Assignee: James Peach
>
> 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

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

Posted by "Conan Wang (JIRA)" <ji...@apache.org>.
    [ 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

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

Posted by "James Peach (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13475720#comment-13475720 ] 

James Peach commented on TS-1525:
---------------------------------

1e80f531c6c0112bc08c7e00b5edebc323455f96 TS-1525: SPDY plugin sends  malformed HTTP version string

                
> 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
>            Assignee: James Peach
>
> 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