Page 1 of 1

ABE locks up Fx2 for the duration of dns query

Posted: Wed Jul 29, 2009 2:07 am
by al_9x
ABE seemingly causes Fx2 to perform dns queries synchronously on the ui thread, so a long running and failing query locks up the ui.

Re: ABE locks up Fx2 for the duration of dns query

Posted: Wed Jul 29, 2009 6:01 am
by GµårÐïåñ
Although I am not on Fx2, I suspected this might be the issue here: http://forums.informaction.com/viewtopi ... =10&t=2100 but no luck, so hopefully we can find out.

Re: ABE locks up Fx2 for the duration of dns query

Posted: Wed Jul 29, 2009 7:49 am
by Giorgio Maone
al_9x wrote:ABE seemingly causes Fx2 to perform dns queries synchronously on the ui thread, so a long running and failing query locks up the ui.
Yes it does, sometimes. It's a Gecko limitation, affecting also Local Rodeo, the current patch attempt by Mozilla for CSRF attacks against internal networks (as I had to note in this comment of mine) and any other thing which needs to make blocking decision based on IP addresses before the request hits the network.

I managed to work around this almost impossible problem on Gecko 1.9 and above (it took at least 50% of the development time of ABE), but none of the several techniques I had to invent and use on 1.9 are possible on older versions.

That's the main reason why ABE is both disabled and invisible in stable NoScript versions for Gecko 1.8.x users (can be made visible by the noscript.abe.legacySupport about:config preference and then enabled manually). Only beta testers have it enabled if they installed early development build prototypes.

This is definitely a WONTFIX. If you want both ABE and performance, you need to upgrade to a decent Gecko version.

@GµårÐïåñ:
the issue you linked, yet to be diagnosed and almost surely due to an extension conflict, is completely unrelated to this topic since you're on Fx 3.5.1.

Re: ABE locks up Fx2 for the duration of dns query

Posted: Wed Jul 29, 2009 3:39 pm
by therube
ABE causes Fx2 to perform dns queries synchronously on the ui thread, so a long running and failing query locks up the ui.
Could you explain that in terms that I might be able to understand?


PS: Should that be, @GµårÐïåñ, the issue you linked too...

Re: ABE locks up Fx2 for the duration of dns query

Posted: Wed Jul 29, 2009 7:17 pm
by al_9x
therube wrote:
ABE causes Fx2 to perform dns queries synchronously on the ui thread, so a long running and failing query locks up the ui.
Could you explain that in terms that I might be able to understand?
firefox waits for the DNS lookup to complete and does not process user input while it's waiting

Re: ABE locks up Fx2 for the duration of dns query

Posted: Wed Jul 29, 2009 7:35 pm
by al_9x
Giorgio Maone wrote:This is definitely a WONTFIX. If you want both ABE and performance, you need to upgrade to a decent Gecko version.
Understood, I'll probably turn off ABE in Fx2, so it's somewhat moot, but do you want future ABE + 1.8.1 bug reports, like this, for instance?

Re: ABE locks up Fx2 for the duration of dns query

Posted: Wed Jul 29, 2009 7:36 pm
by therube
Sure.
You're a bug hunting maven. The more the merrier. :-)

Re: ABE locks up Fx2 for the duration of dns query

Posted: Wed Jul 29, 2009 10:52 pm
by GµårÐïåñ
Giorgio Maone wrote:@GµårÐïåñ:
the issue you linked, yet to be diagnosed and almost surely due to an extension conflict, is completely unrelated to this topic since you're on Fx 3.5.1.
Actually I am nearly 100% certain it has nothing to do with another extension and its easier to dump on other extensions as the cause but the fact is that NS is being tweaked almost every other day in response to a bug and since its the only one being installed repeatedly and in dev form, the problem lies there. Especially that there is a predictable and specific interval for the UI freezing and the connection losses stink of DNS failures as they come back with "Site not found" and on the same ip and connection on a different copy without NS it comes up just fine. SO its not a connection issue, not a DSL issue, not an extension issue. If we don't want to debug it that's one thing but to simply dismiss it and say its a conflict, that's just tacky.

Re: ABE locks up Fx2 for the duration of dns query

Posted: Thu Jul 30, 2009 10:13 pm
by al_9x
GµårÐïåñ wrote:f we don't want to debug it that's one thing but to simply dismiss it and say its a conflict, that's just tacky.
Here's something you can do to debug it. Configure a bogus DNS server that will swallow queries with 0 response (neither UDP nor ICMP), this (74.125.67.100) google ip works for this purpose. This will maximally extend the query time to the system or firefox timeout value. Then in a new profile navigate to some bogus (so it's not in you local dns cache) address.

In my testing 3.5.1 does not get locked up. I did notice a difference with ABE turned on, there is no "looking up <host>" message in the status bar. Although small, that is a bug, as that message is useful. Georgio, can you address that?

Re: ABE locks up Fx2 for the duration of dns query

Posted: Thu Jul 30, 2009 10:19 pm
by Giorgio Maone
al_9x wrote: I did notice a difference with ABE turned on, there is no "looking up <host>" message in the status bar. Although small, that is a bug, as that message is useful. Georgio, can you address that?
Not sure: the message is not there because from the observer stand-point (the window) there's no DNS query at all (it happens before the window starts listening).
I'll check if it can be surrogate in some way.