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.
Attachments
Issue Links
- contains
-
TS-2758 Unable to get file descriptor from transaction close
- Closed
- is related to
-
TS-3612 Restructure Proxy Client Sessions to support transaction oriented Sessions execute transaction hooks and connection oriented Sessions execute session hooks
- Closed
- is required by
-
TS-3802 ASAN Crash with latest master due to double free of MIOBuffer in SSLNetVConnection.
- Closed