Closed Bug 207652 Opened 21 years ago Closed 21 years ago

PAC: freezes upon opening while trying to isInNet()

Categories

(Core :: Networking: HTTP, defect)

x86
Windows 98
defect
Not set
critical

Tracking

()

RESOLVED DUPLICATE of bug 208287

People

(Reporter: mark, Assigned: darin.moz)

References

()

Details

(Keywords: verifyme)

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Build Identifier: latest "stable" release. can't get it to not freeze upon opening the app Browser freezes while trying to resolve DNS upon opening. Reproducible: Always Steps to Reproduce: 1.Click on desktop icon to launch Mozilla 2.Window opens, then browser stops while resolving DNS 3. Actual Results: Control+Alt+Delete to shut down the application Expected Results: umm, not freeze? No themes, no nothing, just downloaded the browser, installed, and tried to access the internet with it.
Have you installed Mozilla in a empty directory and not over an older build ? (that means: deinstalled Mozilla, deleted the whole application directory except the plugins subfolder and installed the new Mozilla)
Severity: blocker → critical
I get a similar problem Moz 1.4, 1.5 (and possibly earlier... can't remember exactly how long). If I type a non-existent address into the URL bar and hit return, all mozilla windows stop responding, won't redraw, etc. Today I noticed that if I leave it long enough (minutes), the browser reawakend with an error from our local proxies. Running Win XP Pro, Installation of mozilla "into clean directory" (ie. didn't uninstall, but used different target directory), Auto Proxying enabled (from a http://..../default.pac url). Followup: back-buttoned to check the wording of the error, and replicated behaviour: 1. Browser stoppen responding, screen repainted when covered/uncovered by other windows. If window resized, original extent of window repainted, scrollbars etc not redrawn in new position - stuff hidden if window shrunk / white space if window expanded. 2. After minute or so, XP marked app "not responding" in title bar. Redrawing now limited to portion of window not obscured by other windows at that moment. The bits obscured behind the active window repainted in white. 3. I invoked task manager - application list showed two mozilla entries, but no large CPU use. Blocked rather than tightly looping? 4. After a minute or so, it came back, and I typed this text. FYI, proxy error was ("The requested item could not be loaded by the proxy. Proxy server is unable to locate the server: v. The server does not have a DNS entry. Check the server name in the Location (URL) and try again.") I'll try to replicate this later without a proxy, and/or on W98 if that is considered helpful.
>Auto Proxying enabled ah!! and, does your PAC file call isInNet or isResolvable? these will block the main mozilla thread until the host lookup completes.
How would I find out? http-get the .pac file and read it? Don't understand this in detail, but is it ever OK for a browwser to hang for as long as this? Given that end-users in the company don't control this file (and it's pretty much required, since the real proxies could keep moving, and most users don't know how to manually identify and conf the real proxies), can mozilla be made more resistant to blocking due to such "carefully crafted" proxy setup? After all, IE doesn't freeze with the same proxy definitions, and freezing is not desirable behaviour... If true, this is potentially a widespread problem which would not easily be detected back at mozilla "hq". No auto feedback... just users concluding mozilla is broken... Can anyone confirm? Is this a known issue?
please just load the pac url in mozilla and look for the presence of those two functions i mentioned. i would like to confirm that those functions are the problem before marking this bug as a duplicate of _that_ well known problem. thx.
Yes - the isInNet function is present. The default.pac contains a variety of lines of the form: function FindProxyForURL(url,host) { .... if ( (shExpMatch(host, "*.2.example.com"))|| (shExpMatch(host, "*.3.example.com"))|| (isInNet(host, "10.0.0.0", "255.0.0.0"))|| (isInNet(host, "192.168.3.0", "255.255.255.0"))|| (shExpMatch(host, "foo.4.example.com"))|| (shExpMatch(host, "foobar*.4.example.com"))|| (shExpMatch(host, "foo.5.example.com/foo"))|| (localHostOrDomainIs(host, "foo.6.example.com"))|| (localHostOrDomainIs(host, "localhost")) ) { return "DIRECT" } if ( (isInNet(host, "172.16.1.1", "255.255.255.255"))|| (localHostOrDomainIs(host, "foo.7.example.com"))|| (shExpMatch(host, "*.foobar.7.example.com")) ) { return "PROXY foofoo.example.com:8080; DIRECT" } return "PROXY fffoo.example.com:8080; PROXY bbbar.example.com:8080; DIRECT" }
yup, that's what i figured. hmm... paul: can you please give 1.6 alpha a try and let me know if it has the same problem? thx!
I've been having this problem as well with 1.5RC1 and no-ads.pac (http://www.schooner.com/~loverso/no-ads/) I guess I'll take a look through it and see what can be changed. Not exactly an old hand with Javascript, so if anyone else cares to hack at it, be my guest. Any luck with 1.6b? I had a GDI system crash my first day using it, so I've switched back to 1.5RC1.
Okay. I fixed my copy of no-ads.pac by remarking out a few lines that filtered out whole subnets (and adding one close-paren to replace one lost in the remarking.) The site I was having trouble with (www.pgdp.net, which is having DNS troubles, hopefully temporarily) just gives a DNS timeout message after a few seconds, and doesn't lock up the system while waiting for that. I'd still like to see this fixed. Some folks don't have the access and/or ability to edit their pac file.
I'm not certain the initial description is the same Pauls problem, but I think we've morphed, so I updated the summary. isInNet() causes your browser to resolve every hostname. That in itself is not incredibly slow, but environmental factors like firewalls and domain naming conventions can make it very slow. There are actually a couple, related issues here. 1- You probably got a proxy version of bug 65924. I've never tested the case of that bug via proxy, but it is the logical inference. 2- Your PAC file is not very efficient in all cases. It looks like you go through isInNet() several times. I don't know how PAC interacts w/ DNS cache, but Darin probably knows. 3- Is the behavior worse in 1.6x than previous versions. Nobody has complained in a while, which suggests a combination of: a) People who had really badly designed PAC files had removed the "bad functions" b) People who had the bad functions operated in environments where they didn't notice or complain.
Summary: browser freezes upon opening while trying to resolve DNS → PAC: freezes upon opening while trying to resolve DNS
I have seen the same problem with 1.6 - though not so often. Maybe my typing is improving :) (and the centrally managed .pac file is actually much "worse than that" - I summarised)
RESOLVED/DUPE. Please confirm. If there are problems post-Mozilla 1.6, please file a new bug. Preferably use 1.7RC1 or later, b/c Darin had two important re-writes of DNS cache and PAC usage of DNS cache. *** This bug has been marked as a duplicate of 208287 ***
Status: UNCONFIRMED → RESOLVED
Closed: 21 years ago
Keywords: verifyme
Resolution: --- → DUPLICATE
Summary: PAC: freezes upon opening while trying to resolve DNS → PAC: freezes upon opening while trying to isInNet()
You need to log in before you can comment on or make changes to this bug.