New issue
Advanced search Search tips

Issue 679373 link

Starred by 5 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Waiting for available sockets

Reported by romul...@gmail.com, Jan 9 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

Example URL:
Anyone after the problem occurs.

Steps to reproduce the problem:
1. Use Google for some time throught a proxy
2. Wait until all sockets are been used
3. Try to open a site

What is the expected behavior?
The expected behavior it's the site work.

What went wrong?
Chrome keeps saying "waiting for available sockets", until i went to "chrome://netinternals -> sockets" and flush active sockets.

When using a proxy, Chrome set a maximum sockets as 32, and without using proxy, these limit is 256.

Did this work before? N/A 

Chrome version: 55.0.2883.87  Channel: stable
OS Version: 10.0
Flash Version: Shockwave Flash 24.0 r0

Seem's like that this bug it's well know from Google, but they don't give importance to this.

https://bugs.chromium.org/p/chromium/issues/detail?id=44501
 

Comment 1 by romul...@gmail.com, Jan 9 2017

One suggestion it's that just leave the number of sockets the same as using Chrome without proxy; the number of connections should be the proxy administration's problem, not a Google Chrome problem.

Other suggestion it's that this number could be changed by the user...

I'm using Chrome at my house (without proxy) i open easly 60-70 sockets... We're facing problems because Chrome has a fixed limit of 32, and i can't even chance this number.
Comparação-Chrome.png
60.4 KB View Download
Cc: eroman@chromium.org mmenke@chromium.org
mmenke, eroman: Do you have any context on the original reasoning for the 32 socket limit, and whether it should be revisited?
The limit predates when I started working on Chrome.  It wouldn't surprise me if it were based off of whatever FireFox did at the time.  I'm certainly fine with experimenting with it.
In the absence of people actively working on it, I'm inclined to merge this as a duplicate into  Issue 44501 .

Are there any objections to that (knowing that objection = signing up to experiment :P)

Comment 5 by eroman@chromium.org, Jan 13 2017

Status: WontFix (was: Unconfirmed)
32 is in line with what Firefox uses: network.http.max-persistent-connections-per-proxy

As chronicled in  issue 44501  there is a very fragile balance with increasing the default numbers, since it runs the risk of making performance worse (as servers get overloaded and aren't prepared for this).

For the case of proxy connections there is a policy that you can set (or your chrome admin can set) to raise this, which offers a better solution than raising the default:

https://www.chromium.org/administrators/policy-list-3#MaxConnectionsPerProxy

Comment 6 by romul...@gmail.com, Jan 13 2017

As an user, i can tell that something is making Chrome hang the sockets opened even if i close the respective tab.

Only for Google, my Chrome hangs 6 sockets opened.

It seems that WhatsApp Web it's causing the sockets to open and stay opened.. each media (photo, audio, video) open a new socket. 

On sockets tab, i can see 30-50 whatsapp domains, some with active sockets, others with sockets "sleeped". Considering that i use whatsapp web from 1 year or more, maybe a recent update on it started to use more sockets (and hangering them alive), affecting chrome utilization throught a proxy server (and invisible to home users, as i can open 256 sockets when directly connected to the web)

Buu, anyway, thanks for the policy tip. Tomorrow i will up this number to 100 to see how Chrome will works.

Comment 7 by eroman@chromium.org, Jan 13 2017

Try taking a look at chrome://net-internals/#sockets to see what is consuming your open sockets. It might be certain web apps, or chrome extensions are creating lots of persistent connections.

Comment 8 by romul...@gmail.com, Jan 17 2017

I tried the #5 tip and increased, by policy, the number of sockets to 100, and it's working fine since them.

My question is about this part of the post: "since it runs the risk of making performance worse (as servers get overloaded and aren't prepared for this)."

What server? Because if the "servers that get overloaded" are the final destination of the request (WhatsApp, Facebook, Google, news, etc), they are already prepared for that, as, without the use of a proxy, the limit of the number of sockets is 256.

If "the servers" are the proxy server that handles the connections, seems that the way of guess and implement this setting is inverted: If the proxy server cannot handle 100-500 users with 256 sockets each, THEM the proxy administrators should decrease the number of sockets, if necessary, by policy.

Why Chrome should supose, by default, that every proxy server wouldn't handle it's connections? Just because "Firefox use this"?

It's just a question, not a critic.

Thanks for attention.

Comment 9 by mmenke@chromium.org, Jan 17 2017

By "servers" eroman meant proxy servers.  Generally, defaults are set at levels that shouldn't badly break anything, and match the behavior of other browsers (If one browser works fine, and the other causes a proxy to fall over, which do you think people tend to blame?  The flaky proxy server or the other browser).

Comment 10 by romul...@gmail.com, Jan 17 2017

Yes, this make sense...

But, with our internal tests, including other users, seems like Firefox handles everything fine with 32 sockets, and Chrome, not.

Chrome seems to hang sockets for more time than Firefox. I just not know why it has this behavior.

WhatsApp Web use a lot of sockets... and you can try, for example, a website like "www.uol.com.br" (a brazilian news site that seems like that open a lot of sockets).
If we're hanging onto sockets longer than Firefox, that does sound like something that's potentially worth investigating.

What you're urnning into may also have something to do with the fact we separate out "privacy mode" / "uncredentialed" requests to the same domain that we're also making credentialed requests to, which potentially increases the number of requests.  Or differences in how we handle paused streaming media requests.  A lot of places where differences can affect number of connections.

Sign in to add a comment