Open Bug 1078775 Opened 6 years ago Updated 6 years ago

"Save Link As" hangs, when saving file to NFS home directory, then core dumps on shutdown

Categories

(Toolkit :: Downloads API, defect)

31 Branch
x86_64
Linux
defect
Not set
normal

Tracking

()

UNCONFIRMED

People

(Reporter: gschoep, Unassigned)

Details

(Keywords: crash)

Using Firefox ESR 31.1.0, on RHEL 5.11, 64 bit
RPM: firefox-31.1.0-6.el5 (from Redhat RHN)

Just updated our machines to RHEL 5.11, that also has the new Firefox ESR 31.1.0. Found a new problem. When saving a file, by right clicking "Save Link As" if I select my home directory, which is NFS mounted. The download "hangs" Some times it does succeed. But 99 percent of the time it fails. Note, it can be any NFS mount. It works just fine if I save it to local like /tmp.

By "hangs" I mean the following.
1. Firefox browser continues to act as normal.
2. The downloads window shows no progress, and sits at "Unknown time remaining x of x MB" (note the x is the file size, it is the same. Meaning, its sorta looks like it is done.
3. Firefox has crated a 0 byte file in my save location.
4. When closing down firefox, I get the the cancel all downloads, dialog.
5. When I select Cancel downloads, to exit it spits out the following error messages to the terminal I launched firefox in.


WARNING: A phase completion condition is taking too long to complete. Condition: OS.File: flush I/O queued before profile-before-change Phase: profile-before-change State: (none)
WARNING: A phase completion condition is taking too long to complete. Condition: CrashMonitor: Writing notifications to file after receiving profile-before-change Phase: profile-before-change State: (none)
ERROR: At least one completion condition failed to complete within a reasonable amount of time. Causing a crash to ensure that we do not leave the user with an unresponsive process draining resources. Conditions: [{"name":"OS.File: flush I/O queued before profile-before-change","state":{"launched":true,"shutdown":false,"worker":true,"pendingReset":false,"latestSent":["Mon Oct 06 2014 22:00:21 GMT+0000 (GMT)","move",[{"string":"/tmp/lnNRo17J.pdf.part"},{"string":"/home/gschoep/Desktop/QB2OrbitalOpsHandbook.pdf"},null]],"latestReceived":null,"messagesSent":0,"messagesReceived":11,"messagesQueued":20,"DEBUG":false}},{"name":"CrashMonitor: Writing notifications to file after receiving profile-before-change","state":"(none)"}] Phase: profile-before-change
WARNING: No crash reporter available
[5140] ###!!! ABORT: file resource://gre/modules/AsyncShutdown.jsm, line 431
[5140] ###!!! ABORT: file resource://gre/modules/AsyncShutdown.jsm, line 431
Segmentation fault (core dumped)

Looking at the core file, the thread it core'd in has the following stack trace.

Core was generated by `/usr/lib64/firefox/firefox'.
Program terminated with signal 11, Segmentation fault.
#0  0x00000037b180eb6d in raise () from /lib64/libpthread.so.0
(gdb) where
#0  0x00000037b180eb6d in raise () from /lib64/libpthread.so.0
#1  0x00002b792e914c09 in ?? () from /usr/lib64/firefox/libxul.so
#2  <signal handler called>
#3  0x00002b792c6b652d in mozalloc_abort(char const*) () from /usr/lib64/firefox/libmozalloc.so
#4  0x00002b792d1f3ca1 in NS_DebugBreak () from /usr/lib64/firefox/libxul.so
#5  0x00002b792d1f3d98 in ?? () from /usr/lib64/firefox/libxul.so
#6  0x00002b792d242f16 in NS_InvokeByIndex () from /usr/lib64/firefox/libxul.so
#7  0x00002b792ddfd1c7 in ?? () from /usr/lib64/firefox/libxul.so
#8  0x00002b792de021ec in ?? () from /usr/lib64/firefox/libxul.so
#9  0x00002b792f018532 in ?? () from /usr/lib64/firefox/libxul.so
#10 0x00002b792f01287d in ?? () from /usr/lib64/firefox/libxul.so
#11 0x00002b792f017ba3 in ?? () from /usr/lib64/firefox/libxul.so
#12 0x00002b792f0183cd in ?? () from /usr/lib64/firefox/libxul.so
#13 0x00002b792eeef747 in ?? () from /usr/lib64/firefox/libxul.so
#14 0x00002b792f018532 in ?? () from /usr/lib64/firefox/libxul.so
#15 0x00002b792f018e6f in ?? () from /usr/lib64/firefox/libxul.so
#16 0x00002b792ef5e712 in ?? () from /usr/lib64/firefox/libxul.so
#17 0x00002b792efc1039 in js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) ()
   from /usr/lib64/firefox/libxul.so
#18 0x00002b792ef67449 in js::proxy_Call(JSContext*, unsigned int, JS::Value*) () from /usr/lib64/firefox/libxul.so
#19 0x00002b792f018532 in ?? () from /usr/lib64/firefox/libxul.so
#20 0x00002b792f01287d in ?? () from /usr/lib64/firefox/libxul.so
#21 0x00002b792f017ba3 in ?? () from /usr/lib64/firefox/libxul.so
#22 0x00002b792f0183cd in ?? () from /usr/lib64/firefox/libxul.so
#23 0x00002b792eef3716 in ?? () from /usr/lib64/firefox/libxul.so
#24 0x00002b792f018532 in ?? () from /usr/lib64/firefox/libxul.so
#25 0x00002b792f018e6f in ?? () from /usr/lib64/firefox/libxul.so
#26 0x00002b792eec5644 in ?? () from /usr/lib64/firefox/libxul.so
#27 0x00002b792ddf5551 in ?? () from /usr/lib64/firefox/libxul.so
#28 0x00002b792d243cde in ?? () from /usr/lib64/firefox/libxul.so
#29 0x00002b792d24307b in ?? () from /usr/lib64/firefox/libxul.so
#30 0x00002b793ae5b7a0 in ?? ()
#31 0x00007fff62ce8b60 in ?? ()
#32 0x000000000000018a in ?? ()
#33 0x0000000034b76838 in ?? ()
#34 0x0000000000000000 in ?? ()
Keywords: crash
Did it use to work with the previous versions of Firefox?
Component: Downloads Panel → Download Manager
Product: Firefox → Toolkit
Yes it worked before. The previous release we had on all machines was Firefox ESR 24.8.0 ( from rpm firefox-24.8.0-2.el5_10)

Since there were other updates to these systems at the same time, I dropped back to the previous Firefox version(ESR 24.8.0) the problem does go away. So it seems it is something that changed between ESR 24.8.0 and 31.1.0.
I have the same issue using CentOS 5.3 (32 bit) and Firefox ESR 31.2.0 (package firefox-31.2.0-3.el5.centos). The problem appeared right after upgrading Firefox. In my case, a temporary file gets created (with a .part suffix), but never replaces the 0 byte placeholder file. The temporary file contains the whole downloaded data (as shown by md5sum), but the name is incorrect. 

WARNING: A phase completion condition is taking too long to complete. Condition: OS.File: flush I/O queued before profile-before-change Phase: profile-before-change State: (none)
WARNING: A phase completion condition is taking too long to complete. Condition: CrashMonitor: Writing notifications to file after receiving profile-before-change Phase: profile-before-change State: (none)
ERROR: At least one completion condition failed to complete within a reasonable amount of time. Causing a crash to ensure that we do not leave the user with an unresponsive process draining resources. Conditions: [{"name":"OS.File: flush I/O queued before profile-before-change","state":{"launched":true,"shutdown":false,"worker":true,"pendingReset":false,"latestSent":["Wed Nov 12 2014 16:44:10 GMT-0500 (EST)","move",[{"string":"/tmp/U1NACUTy.bin.part"},{"string":"/home/username/Downloads/tclx8.4.1(1).tar.bz2"},null]],"latestReceived":null,"messagesSent":0,"messagesReceived":14,"messagesQueued":22,"DEBUG":false}},{"name":"CrashMonitor: Writing notifications to file after receiving profile-before-change","state":"(none)"}] Phase: profile-before-change
WARNING: No crash reporter available
[31170] ###!!! ABORT: file resource://gre/modules/AsyncShutdown.jsm, line 431
[31170] ###!!! ABORT: file resource://gre/modules/AsyncShutdown.jsm, line 431
Segmentation fault (core dumped)
Same issue on Scientific Linux 5(.5) with the following packages:
firefox-31.2.0-3.el5_11.i386
firefox-31.2.0-3.el5_11.x86_64

It appears that both 32- and 64-bit are affected. In this case, saving to home area Desktop directory. A random handful of downloads are successful, then downloads will stop completing. Closing firefox brings up the previously mentioned Download Cancellation dialog box and the following error message can be seen on the launching console:

$ firefox
JavaScript error: chrome://browser/content/urlbarBindings.xml, line 674: aUrl is undefined
JavaScript warning: chrome://browser/content/browser.js, line 2484: mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create
JavaScript error: chrome://browser/content/urlbarBindings.xml, line 674: aUrl is undefined
LoadPlugin: failed to initialize shared library /usr/lib64/mozilla/plugins/libtotem-narrowspace-plugin.so [/usr/lib64/xulrunner/libxpcom.so: undefined symbol: NS_InitXPCOM2_P]
LoadPlugin: failed to initialize shared library /usr/lib64/mozilla/plugins/libtotem-basic-plugin.so [/usr/lib64/xulrunner/libxpcom.so: undefined symbol: NS_InitXPCOM2_P]
LoadPlugin: failed to initialize shared library /usr/lib64/mozilla/plugins/libtotem-complex-plugin.so [/usr/lib64/xulrunner/libxpcom.so: undefined symbol: NS_InitXPCOM2_P]
LoadPlugin: failed to initialize shared library /usr/lib64/mozilla/plugins/libtotem-mully-plugin.so [/usr/lib64/xulrunner/libxpcom.so: undefined symbol: NS_InitXPCOM2_P]
LoadPlugin: failed to initialize shared library /usr/lib64/mozilla/plugins/libtotem-gmp-plugin.so [/usr/lib64/xulrunner/libxpcom.so: undefined symbol: NS_InitXPCOM2_P]
WARNING: A phase completion condition is taking too long to complete. Condition: OS.File: flush I/O queued before profile-before-change Phase: profile-before-change State: (none)
WARNING: A phase completion condition is taking too long to complete. Condition: CrashMonitor: Writing notifications to file after receiving profile-before-change Phase: profile-before-change State: (none)
ERROR: At least one completion condition failed to complete within a reasonable amount of time. Causing a crash to ensure that we do not leave the user with an unresponsive process draining resources. Conditions: [{"name":"OS.File: flush I/O queued before profile-before-change","state":{"launched":true,"shutdown":false,"worker":true,"pendingReset":false,"latestSent":["Wed Nov 19 2014 10:49:40 GMT-0600 (CST)","move",[{"string":"/var/tmp/UpN6b0jf.pdf.part"},{"string":"/home/andy/Desktop/WH08-HornetsNest.pdf"},null]],"latestReceived":null,"messagesSent":0,"messagesReceived":48,"messagesQueued":59,"DEBUG":false}},{"name":"CrashMonitor: Writing notifications to file after receiving profile-before-change","state":"(none)"}] Phase: profile-before-change
WARNING: No crash reporter available
[17425] ###!!! ABORT: file resource://gre/modules/AsyncShutdown.jsm, line 431
[17425] ###!!! ABORT: file resource://gre/modules/AsyncShutdown.jsm, line 431
Segmentation fault
This is perhaps due to interference with other process.
You need to log in before you can comment on or make changes to this bug.