Closed
Bug 1187406
Opened 11 years ago
Closed 11 years ago
LastPass' Secure Notes File Upload crashes Firefox
Categories
(Core :: Widget: Gtk, defect)
Tracking
()
RESOLVED
FIXED
| Tracking | Status | |
|---|---|---|
| firefox42 | --- | affected |
People
(Reporter: johnp, Unassigned)
References
Details
Using LastPass' Secure Notes File-Upload Firefox crashes without Crash-Reporter on Fedora 22. This happens with the latest development build of LastPass.
I didn't check other file-upload instances, but this bug may also be a more general one, judging from the console output:
> ./firefox -g -d gdb
(firefox:29241): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(firefox:29241): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
console.error:
[CustomizableUI]
Custom widget with id loop-button does not return a valid node
ATTENTION: default value of option force_s3tc_enable overridden by environment.
Can't find symbol 'glXCreateContextAttribsARB'.
console.error:
[CustomizableUI]
Custom widget with id loop-button does not return a valid node
Shumway is registered
(plugin-container:29322): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29322): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29314): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29314): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29313): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29313): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29323): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29319): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29323): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29304): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29304): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29319): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29307): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29307): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29309): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
(plugin-container:29309): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
console.error: self-destructing-cookies:
localstorage:
Component returned failure code: 0x804b000a (NS_ERROR_MALFORMED_URI) [nsIIOService.newURI]
(firefox:29241): Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
[Child 29304] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29304] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29309] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29309] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29307] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29307] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29323] WARNING: pipe error (3): Connection reset by peer: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 459
[Child 29323] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29323] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29322] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29322] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29313] WARNING: pipe error (3): Connection reset by peer: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 459
[Child 29313] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29313] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29314] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29314] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29319] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
[Child 29319] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-cen-l64-ntly-000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 1753
Trace/breakpoint trap (core dumped)
(ERROR)-(Exit Code 133)-(Fatal error signal 5)
Comment 1•11 years ago
|
||
The issue here is that LastPass is trying to link against GTK2, which cannot occur in the same address space as GTK3 symbols.
I don't think we want to support plugins linking against GTK2- they should be fairly rare anyway. Thoughts, Jorge?
Flags: needinfo?(jorge)
| Reporter | ||
Comment 2•11 years ago
|
||
CC'ing drew from LastPass
Comment 3•11 years ago
|
||
I assume this is referring to the e10s build of LastPass, since the production build uses the built-in nsIFilePicker.
I can reproduce on Firefox nightly. Loading libgtk-3.so.0 instead of libglib-2.0.so.0 appears to resolve the issue. However, I can't simply switch, or the current release of Firefox will crash.
Anyone know a good way of detecting which version of GTK the current process is using?
Comment 4•11 years ago
|
||
(In reply to Andrew Zitnay from comment #3)
> I assume this is referring to the e10s build of LastPass, since the
> production build uses the built-in nsIFilePicker.
>
> I can reproduce on Firefox nightly. Loading libgtk-3.so.0 instead of
> libglib-2.0.so.0 appears to resolve the issue. However, I can't simply
> switch, or the current release of Firefox will crash.
>
> Anyone know a good way of detecting which version of GTK the current process
> is using?
You could probably just use gtk_check_version(3, 0, 0) == NULL to determine if the runtime version is compatible with GTK3.
Comment 5•11 years ago
|
||
(In reply to Andrew Comminos [:acomminos] from comment #1)
> I don't think we want to support plugins linking against GTK2- they should
> be fairly rare anyway. Thoughts, Jorge?
They should be very rare, yes, so I think this is a problem that can be solve case by case.
Flags: needinfo?(jorge)
Comment 6•11 years ago
|
||
(In reply to Andrew Comminos [:acomminos] from comment #4)
> (In reply to Andrew Zitnay from comment #3)
> > I assume this is referring to the e10s build of LastPass, since the
> > production build uses the built-in nsIFilePicker.
> >
> > I can reproduce on Firefox nightly. Loading libgtk-3.so.0 instead of
> > libglib-2.0.so.0 appears to resolve the issue. However, I can't simply
> > switch, or the current release of Firefox will crash.
> >
> > Anyone know a good way of detecting which version of GTK the current process
> > is using?
>
> You could probably just use gtk_check_version(3, 0, 0) == NULL to determine
> if the runtime version is compatible with GTK3.
Hmm... I think that presents me with a bit of a catch-22, since I can't call gtk_check_version() until I load libgtk, but I don't know what version of libgtk to load until I call gtk_check_version().
This may or may not be a bad way to resolve this, but it's my understanding that GTK 3 is only in use in Firefox 42 (nightly) right now. Is it guaranteed that Firefox 41 and below will remain on GTK 2, and Firefox 42+ will remain on GTK 3, or could this change? If it's set in stone, I could simply load based on Firefox version.
Comment 7•11 years ago
|
||
Alright, I think I've come up with a solution. I'm now calling dlopen() on libgtk-3.so.0 with RTLD_NOLOAD, so that it only succeeds if GTK 3 is already loaded within Firefox. If it fails, I call dlopen() on libgtk-x11-2.0.so.0 like before.
I've rebuilt with this fix:
https://rodan.lastpass.com/dev/lp_e10s.xpi
You may need to restart Firefox after installing to ensure the new binary component is in use (I need to look at why this is happening).
| Reporter | ||
Comment 8•11 years ago
|
||
Thank you Andrew!
I just verified the fix works as expected.
I'm therefore closing this bug. If there's something else to do (e.g. Developer Release Notes extra foot-note to the GTK3-switch) that has to be tracked, please re-open or add the (rare) addon-compat issue somewhere else.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•