You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Susan Hinrichs (JIRA)" <ji...@apache.org> on 2015/05/01 20:18:06 UTC

[jira] [Updated] (TS-3578) Rearrange Client Session processing to give access to socket at SSN_CLOSE for all protocols

     [ https://issues.apache.org/jira/browse/TS-3578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Susan Hinrichs updated TS-3578:
-------------------------------
    Description: 
I wanted to use the tcpinfo plugin to look at the kernel measured RTT.  Unfortunately, there was really only visibility for HTTP/1.x.  Not HTTP/2 or SPDY.  In the H2 and SPDY cases, the underlying NetVC is a PluginVC and does not have access to the underlying socket.

With HTTP/2, the SSN_CLOSE hook would trigger, but by the time the SSN_CLOSE hook would go off, the netVC had already been closed.

I propose making the following changes.

1.  Make SpdyClientSession a subclass of ProxyClientSession, so SSN_CLOSE_HOOK can be triggered there too.

2.  Rearrange the hook calling and net vc close so the SSN_CLOSE hook is called before the net vc is closed.

I've made both changes on my dev build, and in my simple tests, the tcpinfo plugin is recording times for traffic on top of HTTP/1.1, SPDY, and HTTP/2.

Since this involves rearranging some of the bowels of the protocol processing, I'll set up a pull request for broader review.

  was:
I wanted to use the tcpinfo plugin look at the kernel measured RTT.  Unfortunately, there was really only visibility for HTTP/1.x.  Not HTTP/2 or SPDY.  In the H2 and SPDY cases the underlying NetVC is a PluginVC and does not have access to the underlying socket.

With HTTP/2, the SSN_CLOSE hook would trigger, but by the time the SSN_CLOSE hook would go off, the netVC had already been closed.

I propose making the following changes.

1.  Make SpdyClientSession a subclass of ProxyClientSession, so SSN_CLOSE_HOOK can be triggered there too.

2.  Rearrange the hook calling and net vc close so the SSN_CLOSE hook is called before the net vc is closed.

I've made both changes on my dev build, and in my simple tests, the tcpinfo plugin is recording times for traffic on top of HTTP/1.1, SPDY, and HTTP/2.

Since this involves rearranging some of the bowels of the protocol processing, I'll set up a pull request for broader review.


> Rearrange Client Session processing to give access to socket at SSN_CLOSE for all protocols
> -------------------------------------------------------------------------------------------
>
>                 Key: TS-3578
>                 URL: https://issues.apache.org/jira/browse/TS-3578
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: HTTP, HTTP/2, SPDY
>            Reporter: Susan Hinrichs
>            Assignee: Susan Hinrichs
>
> I wanted to use the tcpinfo plugin to look at the kernel measured RTT.  Unfortunately, there was really only visibility for HTTP/1.x.  Not HTTP/2 or SPDY.  In the H2 and SPDY cases, the underlying NetVC is a PluginVC and does not have access to the underlying socket.
> With HTTP/2, the SSN_CLOSE hook would trigger, but by the time the SSN_CLOSE hook would go off, the netVC had already been closed.
> I propose making the following changes.
> 1.  Make SpdyClientSession a subclass of ProxyClientSession, so SSN_CLOSE_HOOK can be triggered there too.
> 2.  Rearrange the hook calling and net vc close so the SSN_CLOSE hook is called before the net vc is closed.
> I've made both changes on my dev build, and in my simple tests, the tcpinfo plugin is recording times for traffic on top of HTTP/1.1, SPDY, and HTTP/2.
> Since this involves rearranging some of the bowels of the protocol processing, I'll set up a pull request for broader review.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)