Long hangs with Adblock Plus in latest Nightly

RESOLVED FIXED

Status

()

Core
JavaScript Engine: JIT
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: ehoogeveen, Unassigned)

Tracking

Trunk
x86_64
Windows 7
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

3 years ago
Created attachment 8591952 [details]
Hang stack

Starting today I've been experiencing long hangs when loading pages. The Gecko Profiler eventually (after hanging indefinitely on the first try) pointed out ABP as the culprit, and after disabling the add-on completely indeed the hangs are gone.

All the time is below this line:
exports.FilterStorage._generateFilterData() @ filterStorage.js:479 Adblock Plus

There is no single culprit, however - just a very long list of unsymbolicated things like 0xfffc0000344637b0L, which then branch a few times before stopping. I assume this is JITcode, but I can't tell more than that. I've attached the profile in case it's useful.

The filter subscriptions I'm using are EasyList, EasyList Dutch and Peter Lowe's list. I don't have a lot of custom rules. I have "Allow some non-intrusive advertising" checked, though I doubt it matters - I was seeing hangs on pages for which I'd disabled ABP.

Regression range is somewhere between the 2014-04-11 Nightly and the 2014-04-13 Nightly - the 2014-04-12 Nightly was very late, so I pretty much skipped it. I'll try to narrow it down more, and see if it shows up on a fresh profile.

I noticed some other people complaining about Nightly being slow on Mozillazine [1] so I think this is a common problem.

[1] http://forums.mozillazine.org/viewtopic.php?f=23&t=2928017
(Reporter)

Comment 1

3 years ago
Oh, I should mention that I'm not using e10s, because LastPass still doesn't work half the time with e10s enabled.

Inbound regression range:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=7de210d3a493&tochange=4d09658bd866

Probably bug 1049290, those cycle collector changes are pretty innocent I think. ting, could you have a look?
Blocks: 1049290
Flags: needinfo?(janus926)
(Reporter)

Comment 2

3 years ago
A website I can easily reproduce this on is tweakers.net, just loading the front page or various news articles. I have Adblock Plus turned off for tweakers.net, in case that matters.
(Reporter)

Comment 3

3 years ago
I'm also getting infinite hangs that don't use any CPU - I don't know if those have the same cause. Unfortunately I can't reproduce those on command, so not much hope of finding a regression range.
(Reporter)

Comment 4

3 years ago
Sorry about the bugspam, I keep thinking of more information to add after the fact. I wanted to add that the version of Adblock Plus I am using is 2.6.9.3930, which I think is the latest development build.
[Tracking Requested - why for this release]:  Addon compat regression, even assuming there is no functionality change to boot.
tracking-firefox40: --- → ?
djvj, what tools can I use to debug this?
Flags: needinfo?(janus926) → needinfo?(kvijayan)
The offending patch was backed out. Can somebody confirm in next nightly this is fixed?
https://hg.mozilla.org/integration/mozilla-inbound/rev/2c35e6083ede
Clear NI, as I am fixing it in bug 1049290.
Flags: needinfo?(kvijayan)
(Reporter)

Comment 9

3 years ago
I can confirm that the hangs are gone with the build from [1] (based on 2c35e6083ede), thanks!

The other hangs I was seeing, where the process hangs indefinitely while not using any CPU, are still there. So those are unrelated - I'll try to sample a stack for them or something.

[1] https://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-inbound-win64/1429009329/
(Reporter)

Comment 10

3 years ago
I filed the other hangs as bug 1154263.
(In reply to Ting-Yu Chou [:ting] from comment #6)
> djvj, what tools can I use to debug this?

The issue seems to be that the hang is caused by repeated generation of new ICInNativeDoesNotExist stubs.  Chances are that we're repeatedly generating new stubs because the previous stubs' condition code has some flaw that prevents it from successfully recognizing the inputs it gets.

The best way to handle this is to trace the issue using a debugger to single-step the jitcode in the generated stub, and figure out WHY the conditions aren't hitting.  There's probably some subtle error there that is not easy to spot.
Disregard that last comment, I was looking at the |getprop| instead of the |in| op.  I'll post a comment about fixing this on the main bug.
(Reporter)

Comment 13

3 years ago
Fixed in the latest Nightly by backout of bug 1049290.
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → FIXED

Updated

3 years ago
Duplicate of this bug: 1154421
Looks like this was fixed by a backout; tracking the regressing bug instead of this one.
tracking-firefox40: ? → ---
You need to log in before you can comment on or make changes to this bug.