Closed
Bug 1187406
Opened 9 years ago
Closed 9 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•9 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•9 years ago
|
||
CC'ing drew from LastPass
Comment 3•9 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•9 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•9 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•9 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•9 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•9 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: 9 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•