New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 704956 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 700617



Sign in to add a comment

Investigate Preconnect HttpStreamFactoryImpl::Job

Project Member Reported by xunji...@chromium.org, Mar 24 2017

Issue description

This is to follow up on  Issue 700617 .

erikchen@'s trace (https://drive.google.com/a/google.com/file/d/0B6ho_7_ut5e1dXVnTGx6d0ExLWs/view?usp=sharing) shows a 348 Preconnect HttpStreamFactoryImpl::Job. 

348 sounds excessive. We need to investigate whether this expected or something else is going on.

 

Comment 1 by shrike@chromium.org, Mar 27 2017

Cc: shrike@chromium.org
Labels: Performance-Memory
 Issue 700617  fixed a problem in QUIC. 
Preconnect Jobs do not go through QUIC, so it's likely something else is going on.
I have been running Chrome with zhongyi@'s  Issue 700617  fix for a week now. I wasn't able to reproduce this issue. I will try do some cleanups and see if we can find anything.
Project Member

Comment 4 by bugdroid1@chromium.org, Apr 3 2017

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

commit 14af3e715ff775b85391f96baf0847e3b53ccf38
Author: xunjieli <xunjieli@chromium.org>
Date: Mon Apr 03 15:26:14 2017

Remove unreachable code in HttpStreamFactoryImpl::Job::OnPreconnectsComplete

BUG= 704956 ,475060

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

[modify] https://crrev.com/14af3e715ff775b85391f96baf0847e3b53ccf38/net/http/http_stream_factory_impl_job.cc

Labels: sr-pm-5
Cc: zhongyi@chromium.org rch@chromium.org
correction to #2. Preconnect Jobs go through QUIC, so this might be an artifact of the synchronous crypto connect  bug 700617 .
+ zhongyi@, rch@ to confirm.

Thanks to zhongyi@, we now have UMA histograms (added in  Issue 704988 ) to detect this case. Leaving this bug open while we gather more data.
Preconnect jobs can go through QUIC, and the leak can be caused if the server the preconnect job trying to connect to is trapped in the synchronous crypto connect error state.

Preconnect job via QUIC:
When JobController creates preconnect job(which is always set in main job), it try to GetAlternativeServiceFor the request. If we get a valid alt svc, then QUIC job will be used to preconnect, it's set in main_job, but actually is an alternative service job. 

https://cs.chromium.org/chromium/src/net/http/http_stream_factory_impl_job_controller.cc?q=JobController+package:%5Echromium$&l=135

We have sample NetLogs to confirm that preconnect job can use QUIC:

448: HTTP_STREAM_JOB_CONTROLLER
Start Time: 2017-04-10 17:50:29.221

t= 0 [st= 0] +HTTP_STREAM_JOB_CONTROLLER  [dt=18]
              --> is_preconnect = true
              --> url = "https://www.google.com/"
t= 1 [st= 1]    HTTP_STREAM_REQUEST_STARTED_JOB
                --> source_dependency = 449 (HTTP_STREAM_JOB)
t=18 [st=18] -HTTP_STREAM_JOB_CONTROLLER

449: HTTP_STREAM_JOB
https://www.google.com/
Start Time: 2017-04-10 17:50:29.221

t= 0 [st= 0] +HTTP_STREAM_JOB  [dt=18]
              --> alternative_service = "quic www.google.com:443"
              --> original_url = "https://www.google.com/"
              --> priority = "IDLE"
              --> source_dependency = 448 (HTTP_STREAM_JOB_CONTROLLER)
              --> url = "https://www.google.com/"
t= 1 [st= 1]   +PROXY_SERVICE  [dt=9]
t=10 [st=10]      PROXY_SERVICE_RESOLVED_PROXY_LIST
                  --> pac_string = "DIRECT"
t=10 [st=10]   -PROXY_SERVICE
t=10 [st=10]    HTTP_STREAM_JOB_PROXY_SERVER_RESOLVED
                --> proxy_server = "DIRECT"
t=10 [st=10]    HTTP_STREAM_JOB_WAITING  [dt=0]
                --> should_wait = false
t=11 [st=11]    HTTP_STREAM_JOB_INIT_CONNECTION  [dt=0]
t=18 [st=18] -HTTP_STREAM_JOB
Status: WontFix (was: Assigned)
Thanks zhongyi! Let's WontFix this one.

Sign in to add a comment