Closed Bug 456784 Opened 16 years ago Closed 16 years ago

Multi-tab session restore -> hang with 120% CPU and hard drive activity

Categories

(Firefox :: Session Restore, defect)

x86
Linux
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: Parasyte, Unassigned)

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.2) Gecko/2008092313 Ubuntu/8.04 (hardy) Firefox/3.0.2
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.2) Gecko/2008092313 Ubuntu/8.04 (hardy) Firefox/3.0.2

Restoring a session with multiple tabs open (some with fairly large amounts of data) will cause Firefox to hang (120% CPU usage) after a few minutes of rapid HDD activity.

Reproducible: Always

Steps to Reproduce:
1. Open four tabs:
 a. http://www.mozilla.org/
 b. http://bugzilla.mozilla.org/
 c. http://www.whatwg.org/specs/web-apps/current-work/#seamless
 d. http://tinderbox.mozilla.org/showbuilds.cgi?tree=Thunderbird
2. Kill Firefox from a terminal: pkill firefox
3. Start Firefox and choose to restore the previous session
Actual Results:  
The Firefox UI (with tabs and their document titles) will show up, but the document is all white and the UI is totally unresponsive. After a few minutes of this unresponsiveness, hard drive activity begins (and will continue) and the entire system slows to a crawl; the mouse cursor jumps sporadicly and other applications' response times become very bad.

At the point when HDD activity begins, `top` shows that Firefox is using approx. 1% of my CPU time, and ~38% of my memory. After about 5 minutes of this, Firefox remains completely unresponsive, my system remains partially crippled, and HDD activity still continues wildly ... then Firefox suddenly ramps my CPU usage to "120%" (due to SMP?) and memory usage to 70%.

I gave up after another 10 minutes of this and killed Firefox again. Restarting Firefox *without* restoring the session works fine.


Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.2) Gecko/2008092313 Ubuntu/8.04 (hardy) Firefox/3.0.2 ID:2008072820


INSTALLED EXTENSIONS:

Adblock Plus 0.7.5.5
Adblock Plus Filter Uploader 1.5+
Adblock Plus: Element Hiding Helper 1.0.5
Add N Edit Cookies 0.2.1.0 [DISABLED]
Chrome List 0.2.2
CS Lite 1.3.9
DOM Inspector 2.0.0
DownloadHelper 3.2.2
Firebug 1.2.1
FireFTP 1.0.2
Flashblock 1.5.6
Greasemonkey 0.8.20080609.0
Image Zoom 0.3.1
More Tools Menu 1.1
Nightly Tester Tools 2.0.2
Organize Status Bar 0.6.2
Regular Expressions Tester 1.1.6.12
Ubuntu Firefox Modifications 0.5
Web Developer 1.1.6


SYSTEM INFORMATION:

osterj@CN212409:~$ uname -a
Linux CN212409 2.6.24-21-generic #1 SMP Mon Aug 25 17:32:09 UTC 2008 i686 GNU/Linux

osterj@CN212409:~$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 15
model		: 2
model name	: Intel(R) Pentium(R) 4 CPU 2.60GHz
stepping	: 9
cpu MHz		: 2593.766
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 2
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts cid xtpr
bogomips	: 5192.05
clflush size	: 64

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 15
model		: 2
model name	: Intel(R) Pentium(R) 4 CPU 2.60GHz
stepping	: 9
cpu MHz		: 2593.766
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 2
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts cid xtpr
bogomips	: 5187.06
clflush size	: 64

osterj@CN212409:~$ cat /proc/meminfo 
MemTotal:       498508 kB
MemFree:        227872 kB
Buffers:          4256 kB
Cached:          84700 kB
SwapCached:      33580 kB
Active:         105780 kB
Inactive:        68136 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       498508 kB
LowFree:        227872 kB
SwapTotal:      819272 kB
SwapFree:       630216 kB
Dirty:              56 kB
Writeback:           0 kB
AnonPages:       74912 kB
Mapped:          32672 kB
Slab:            11800 kB
SReclaimable:     3940 kB
SUnreclaim:       7860 kB
PageTables:       2080 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   1068524 kB
Committed_AS:   554116 kB
VmallocTotal:   524280 kB
VmallocUsed:      5320 kB
VmallocChunk:   518772 kB
Component: General → Session Restore
Does the same happen when you restore into Safe Mode (i.e. without all those extensions)? And does the same happen when you don't crash Firefox but instead just tell it to "Save and Quit" when you exit it?
> Does the same happen when you restore into Safe Mode (i.e. without all those
> extensions)? And does the same happen when you don't crash Firefox but instead
> just tell it to "Save and Quit" when you exit it?

Yes, the hang happens after saving a session and closing Firefox proper.

No, it does not happen when restoring a session with all extensions disabled. One or more of my installed extensions either cause, or exacerbate the problem to noticeable proportions.

Some of my findings from testing:

All extensions enabled: Hangs.
All extensions enabled except GreaseMonkey: No hang.
All extensions disabled except GreaseMonkey: No hang.

I thought it might have been caused by GreaseMonkey, but GreaseMonkey by itself does not cause the problem. Perhaps GreaseMonkey with another extension, or some other esoteric combination of extensions?

If you have any other suggestions, I would be willing to help narrow it down more.
(In reply to comment #2)
> No, it does not happen when restoring a session with all extensions disabled.

So this doesn't look like a bug we can fix. -> WORKSFORME

> All extensions enabled: Hangs.
> All extensions enabled except GreaseMonkey: No hang.
> All extensions disabled except GreaseMonkey: No hang.

Logic dictates that there is an interaction between Greasemonkey (or at least one of the user scripts it runs) and a different extension.

If you want this issue fixed in a different way than by you just disabling Greasemonkey, you won't get around trying to determine the minimal set of extensions (and user scripts) required for reproducing the issue and then notifying the author(s) of the "culprits". Good luck!
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → WORKSFORME
Sounds good to me! Thank you.
You need to log in before you can comment on or make changes to this bug.