New issue
Advanced search Search tips

Issue 705967 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

Log source_dependency in HTTP2_SESSION_SEND_HEADERS.

Project Member Reported by b...@chromium.org, Mar 28 2017

Issue description

It would make debugging much easier if HTTP2_SESSION_SEND_HEADERS events in each HTTP2_SESSION had a source_dependency pointing to the HttpStreamFactoryImpl::Job or HttpProxyClientSocketWrapper instance that created the stream.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0

commit 3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0
Author: bnc <bnc@chromium.org>
Date: Wed Mar 29 13:20:34 2017

Log source_dependency in HTTP2_SESSION_SEND_HEADERS.

Pass in HttpStreamFactoryImpl::Job's NetLog source as source_dependency
to SpdyHttpStream and BidirectionalStreamSpdyImpl, where it is saved in
a private member.

Save HttpProxyClientSocketWrapper's NetLog source in
SpdyProxyClientSocket constructor (NetLog object was already passed in).

Add SpdyStream::Delegate::source_dependency() and log it in
SpdySession::CreateHeaders().

Add dummy implementation to test-only classes FuzzerDelegate,
SessionOpeningDelegate, ClosingDelegate, and StreamDelegateBase.

Example NetLog excerpt:

1567: HTTP_STREAM_JOB
https://clients1.google.com/
Start Time: 2017-03-29 09:09:35.617

t=9692 [st= 0] +HTTP_STREAM_JOB  [dt=74]
                --> alternative_service = "unknown :0"
                --> original_url = "https://clients1.google.com/"
                --> priority = "LOWEST"
                --> source_dependency = 1566 (HTTP_STREAM_JOB_CONTROLLER)
                --> url = "https://clients1.google.com/"
[...]
t=9764 [st=72]    HTTP2_SESSION_POOL_IMPORTED_SESSION_FROM_SOCKET
                  --> source_dependency = 1576 (HTTP2_SESSION)
t=9766 [st=74]    HTTP_STREAM_JOB_BOUND_TO_REQUEST
                  --> source_dependency = 1565 (URL_REQUEST)
t=9766 [st=74] -HTTP_STREAM_JOB

1576: HTTP2_SESSION
clients1.google.com:443 (DIRECT)
Start Time: 2017-03-29 09:09:35.688

t= 9763 [st=  0] +HTTP2_SESSION  [dt=318+]
                  --> host = "clients1.google.com:443"
                  --> proxy = "DIRECT"
t= 9763 [st=  0]    HTTP2_SESSION_INITIALIZED
                    --> protocol = "h2"
                    --> source_dependency = 1573 (SOCKET)
[...]
t= 9768 [st=  5]    HTTP2_SESSION_SEND_HEADERS
                    --> exclusive = true
                    --> fin = false
                    --> has_priority = true
                    --> :method: POST
                        :authority: clients1.google.com
                        :scheme: https
                        :path: /tbproxy/af/query?client=Chromium
                        content-length: 113
                        content-type: text/proto
                        user-agent: [...]
                        accept-encoding: gzip, deflate, br
                        accept-language: en-US,en;q=0.8
                    --> parent_stream_id = 0
                    --> source_dependency = 1567 (HTTP_STREAM_JOB)
                    --> stream_id = 1
                    --> weight = 147
t= 9769 [st=  6]    HTTP2_SESSION_SEND_DATA
                    --> fin = true
                    --> size = 113
                    --> stream_id = 1
[...]

1567 HTTP_STREAM_JOB's HTTP2_SESSION_POOL_IMPORTED_SESSION_FROM_SOCKET already
had a source_dependency pointing to 1576 HTTP2_SESSION before this CL.  This CL
adds the reverse direction: 1576 HTTP2_SESSION's HTTP2_SESSION_SEND_HEADERS
now has a source_dependency pointing to 1567 HTTP_STREAM_JOB.

BUG= 705967 

Review-Url: https://codereview.chromium.org/2783683002
Cr-Commit-Position: refs/heads/master@{#460365}

[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/http/http_stream_factory_impl.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/http/http_stream_factory_impl.h
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/http/http_stream_factory_impl_job.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/http/http_stream_factory_impl_job_controller.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/bidirectional_stream_spdy_impl.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/bidirectional_stream_spdy_impl.h
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/bidirectional_stream_spdy_impl_unittest.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_http_stream.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_http_stream.h
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_http_stream_unittest.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_proxy_client_socket.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_proxy_client_socket.h
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_session.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_session.h
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_session_fuzzer.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_session_pool_unittest.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_stream.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_stream.h
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_stream_test_util.cc
[modify] https://crrev.com/3d95ca9fd487e0a0dd2617eee0f683eea7a7bed0/net/spdy/spdy_stream_test_util.h

Comment 2 by b...@chromium.org, Mar 29 2017

Status: Fixed (was: Started)

Sign in to add a comment