No new connections issued when waiting for timeout

RESOLVED FIXED in mozilla0.9.6

Status

()

defect
P2
major
RESOLVED FIXED
18 years ago
8 years ago

People

(Reporter: t8m, Assigned: darin.moz)

Tracking

({regression})

Trunk
mozilla0.9.6
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: proxy, )

Attachments

(1 attachment)

Reporter

Description

18 years ago
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.
Reporter

Updated

18 years ago
Depends on: 83526
Keywords: regression
Whiteboard: proxy
Assignee

Comment 1

18 years ago
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

Comment 2

18 years ago
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.
Assignee

Comment 3

18 years ago
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.

Comment 4

18 years ago
I'm always connected via proxy server. That's complete normal for me. So normal,
that sometimes I forget to write it down :-)
Reporter

Comment 5

18 years ago
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.

Comment 6

18 years ago
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?

Comment 7

18 years ago
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.

Assignee

Comment 8

18 years ago
the pref can be modified in defaults/init/all.js to make it "sticky"

Comment 9

18 years ago
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.
Assignee

Comment 10

18 years ago
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+
Assignee

Comment 13

18 years ago
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.

Updated

18 years ago
OS: Linux → All
Hardware: PC → All

Comment 14

18 years ago
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+
Assignee

Comment 15

18 years ago
fixed-on-trunk
Status: ASSIGNED → RESOLVED
Last Resolved: 18 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.