Closed Bug 103070 Opened 23 years ago Closed 23 years ago

No new connections issued when waiting for timeout

Categories

(Core :: Networking, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla0.9.6

People

(Reporter: t8m, Assigned: darin.moz)

References

()

Details

(Keywords: regression, Whiteboard: proxy)

Attachments

(1 file)

I'm using a squid proxy to connect to internet. In the fix of the bug 83526 the
Mozilla was limited to make no more than 2 connections per server. But it's VERY
BAD when it means that we make no more than 2 connections per PROXY. Because for
all pages we use the same proxy. 

How to reproduce:
1. Set Mozilla to use some proxy for HTTP req.
2. Open page www.tweakers.net in one window. (It blocks loading waiting for
connection timeout on some pictures.)
3. Try to open some other page in another window. No new connections are issued
before the www.tweakers.net finishes loading. It's very long time depending on
how long timeout is set on the proxy for trying to connect.
Depends on: 83526
Keywords: regression
Whiteboard: proxy
sounds like we should consider a different setting for proxy connections.

reporter: please add the following pref to your prefs.js file:

  pref("network.http.max-persistent-connections-per-server", 2);

and change 2 to a larger value to verify that it helps.
Status: NEW → ASSIGNED
Priority: -- → P2
Target Milestone: --- → mozilla0.9.6
Actually this is the same bug as my bug 101535, which was marked "Wontfix"

With Darin's pref set to 20 the problem is fixed, (Proxy enabled.) but the pref
is removed from prefs.js at shutdown.

I'm happy to see, that my comments in bug 95499 and bug 101535 have finally some
good result.
coen: the difference here is that the problem only shows up when connected via a
proxy server.  i tested IE6 and it allows up to 4 connections to a proxy server,
but no more than 2 to a web server.
I'm always connected via proxy server. That's complete normal for me. So normal,
that sometimes I forget to write it down :-)
The setting helped here too. I think that 4 is probably still too little. Maybe
10 if using a proxy is enough. But then the proxy could issue even 10
connections to the same server. Correct sollution would be to limit the maximum
number of connections per HOST part of URL not per real peer when using a proxy.
I think that MSIE has much shorter timeout for the beginning of transaction but
it is made longer when some data arrives. So the problem is not so much visible
in MSIE.

benc, can you help craft an 0.9.5 relnote for this one if you think it warrants one?
coen, what is this pref setting that works around the problom?
The pref is in Darin's comment from 2001-10-04 11:35

> reporter: please add the following pref to your prefs.js file:
>  pref("network.http.max-persistent-connections-per-server", 2);
> and change 2 to a larger value to verify that it helps.

Everything larger works nice.
Unfortunately, the pref is removed after mozilla is closed. So it should be
added again before starting mozilla.

the pref can be modified in defaults/init/all.js to make it "sticky"
Interesting comments in all.js:

// if network.http.keep-alive is true, then a new connection will only be
// attempted if the number of active connections to a host is less then
// network.http.max-persistent-connections-per-server.  if a http proxy server
// is enabled, then the "server" is the proxy server.  Otherwise, "server" is
// the http origin server.


The 2 connections per proxy is a known problem / limitation.
yes, indeed.  the limit of 2 connections per server (=proxy) probably only makes
sense if pipelining is enabled, and even then it may not be appropriate. 
currently, we don't have http/1.1 pipelining, so i have no problem bumping up
this number for proxy connections.
Comment on attachment 55885 [details] [diff] [review]
v1.0 patch: allows up to 4 persistent connections per proxy server

> // if network.http.keep-alive is true, then a new connection will only be
>-// attempted if the number of active connections to a host is less then
>-// network.http.max-persistent-connections-per-server.  if a http proxy server
>-// is enabled, then the "server" is the proxy server.  Otherwise, "server" is
>-// the http origin server.
>+// attempted if the number of active connections to the origin server is less

attempted directly to the origin server? This pref won't stop us creating 4 connections to an origin
server via a proxy.

>+// then network.http.max-persistent-connections-per-server.
> pref("network.http.max-persistent-connections-per-server", 2);

r=bbaetz

I presume we'll reconsider this when we do pipelining, based on perf data.
Attachment #55885 - Flags: review+
yeah, you're right... i should make it clear that
max-persistent-connections-per-server only applies when directly connected to
the internet.

and, yes... we'll most likely need to revisit these numbers once pipelining
becomes a reality.
OS: Linux → All
Hardware: PC → All
Comment on attachment 55885 [details] [diff] [review]
v1.0 patch: allows up to 4 persistent connections per proxy server

sr=mscott
Attachment #55885 - Flags: superreview+
fixed-on-trunk
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: