Pidgin segfaults Metacity using unity-2d in 12.04 due to liboverlay-scrollbar

Bug #1087555 reported by floid
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pidgin (Ubuntu)
New
Undecided
Unassigned

Bug Description

Using pidgin 1:2.10.3-0ubuntu1 , overlay-scrollbar 0.2.16+r357-0ubuntu1 , Ubuntu 12.04 x86 32-bit...

I was reliably blowing up Metacity, if not Xorg itself, trying to launch Pidgin; see mess of a pidgin -d log below that hinted the problem might have something to do with scrollbars - and lo: setting LIBOVERLAY_SCROLLBAR=0 results in a working Pidgin.

Presumably this should be easy to reproduce. I would've been happy to just have had a startup script thrown in as a patch so as to not run into it. Under certain circumstances I may've managed to get it to take out more than just Metacity, like the entire X.org session, but I lost track of what exactly might reproduce that other than "trying repeatedly, because how the heck did a boring app like Pidgin manage to break?" It appears that was probably just an OOM kill for a crowded session with long uptime being stressed by whatever ridiculous thing X.org is being asked to do until it realizes it can't.

floid@miscreant:~$ pidgin -d
(22:44:06) prefs: Reading /home/floid/.purple/prefs.xml
(22:44:06) prefs: Finished reading /home/floid/.purple/prefs.xml
(22:44:06) prefs: purple_prefs_get_path: Unknown pref /pidgin/browsers/command
(22:44:06) dbus: okkk
(22:44:06) plugins: probing /usr/lib/pidgin/vvconfig.so
(22:44:06) plugins: probing /usr/lib/pidgin/markerline.so
(22:44:06) plugins: probing /usr/lib/pidgin/timestamp_format.so
(22:44:06) plugins: probing /usr/lib/pidgin/themeedit.so
(22:44:06) plugins: probing /usr/lib/pidgin/history.so
(22:44:06) plugins: probing /usr/lib/pidgin/convcolors.so
(22:44:06) plugins: probing /usr/lib/pidgin/extplacement.so
(22:44:06) plugins: probing /usr/lib/pidgin/gestures.so
(22:44:06) plugins: probing /usr/lib/pidgin/musicmessaging.so
(22:44:06) plugins: probing /usr/lib/pidgin/xmppdisco.so
(22:44:06) plugins: probing /usr/lib/pidgin/cap.so
(22:44:06) plugins: probing /usr/lib/pidgin/spellchk.so
(22:44:06) plugins: probing /usr/lib/pidgin/xmppconsole.so
(22:44:06) plugins: probing /usr/lib/pidgin/ticker.so
(22:44:06) plugins: probing /usr/lib/pidgin/notify.so
(22:44:06) plugins: probing /usr/lib/pidgin/gtkbuddynote.so
(22:44:06) plugins: probing /usr/lib/pidgin/timestamp.so
(22:44:06) plugins: probing /usr/lib/pidgin/pidginrc.so
(22:44:06) plugins: probing /usr/lib/pidgin/sendbutton.so
(22:44:06) plugins: probing /usr/lib/pidgin/iconaway.so
(22:44:06) plugins: probing /usr/lib/purple-2/libjabber.so
(22:44:06) plugins: /usr/lib/purple-2/libjabber.so is not usable because the 'purple_init_plugin' symbol could not be found. Does the plugin call the PURPLE_INIT_PLUGIN() macro?
(22:44:06) plugins: probing /usr/lib/purple-2/libnovell.so
(22:44:06) plugins: probing /usr/lib/purple-2/autoaccept.so
(22:44:06) plugins: probing /usr/lib/purple-2/libyahoojp.so
(22:44:06) plugins: probing /usr/lib/purple-2/libbonjour.so
(22:44:06) plugins: probing /usr/lib/purple-2/ssl-nss.so
(22:44:06) plugins: probing /usr/lib/purple-2/libzephyr.so
(22:44:06) plugins: probing /usr/lib/purple-2/libxmpp.so
(22:44:06) plugins: probing /usr/lib/purple-2/joinpart.so
(22:44:06) plugins: probing /usr/lib/purple-2/libirc.so
(22:44:06) plugins: probing /usr/lib/purple-2/libmxit.so
(22:44:06) prpl-loubserp-mxit: Loading MXit libPurple plugin...
(22:44:06) plugins: probing /usr/lib/purple-2/idle.so
(22:44:06) plugins: probing /usr/lib/purple-2/libgg.so
(22:44:06) plugins: probing /usr/lib/purple-2/perl.so
(22:44:06) plugins: probing /usr/lib/purple-2/buddynote.so
(22:44:06) plugins: probing /usr/lib/purple-2/libicq.so
(22:44:06) plugins: probing /usr/lib/purple-2/libsimple.so
(22:44:06) plugins: probing /usr/lib/purple-2/ssl.so
(22:44:06) plugins: probing /usr/lib/purple-2/pidgin-libnotify.so
(22:44:06) plugins: probing /usr/lib/purple-2/libymsg.so
(22:44:06) plugins: /usr/lib/purple-2/libymsg.so is not usable because the 'purple_init_plugin' symbol could not be found. Does the plugin call the PURPLE_INIT_PLUGIN() macro?
(22:44:06) plugins: probing /usr/lib/purple-2/tcl.so
(22:44:06) plugins: /usr/lib/purple-2/tcl.so is not loadable: libtk8.5.so.0: cannot open shared object file: No such file or directory
(22:44:06) plugins: probing /usr/lib/purple-2/log_reader.so
(22:44:06) plugins: probing /usr/lib/purple-2/libmyspace.so
(22:44:06) plugins: probing /usr/lib/purple-2/psychic.so
(22:44:06) plugins: probing /usr/lib/purple-2/liboscar.so
(22:44:06) plugins: /usr/lib/purple-2/liboscar.so is not usable because the 'purple_init_plugin' symbol could not be found. Does the plugin call the PURPLE_INIT_PLUGIN() macro?
(22:44:06) plugins: probing /usr/lib/purple-2/newline.so
(22:44:06) plugins: probing /usr/lib/purple-2/dbus-example.so
(22:44:06) plugins: probing /usr/lib/purple-2/libyahoo.so
(22:44:06) plugins: probing /usr/lib/purple-2/statenotify.so
(22:44:06) plugins: probing /usr/lib/purple-2/libsametime.so
(22:44:06) plugins: /usr/lib/purple-2/libsametime.so has a prefs_info, but is a prpl. This is no longer supported.
(22:44:06) plugins: probing /usr/lib/purple-2/offlinemsg.so
(22:44:06) plugins: probing /usr/lib/purple-2/libmsn.so
(22:44:06) plugins: probing /usr/lib/purple-2/libaim.so
(22:44:06) util: Reading file xmpp-caps.xml from directory /home/floid/.purple
(22:44:06) util: File /home/floid/.purple/xmpp-caps.xml does not exist (this is
not necessarily an error)
(22:44:06) jabber: creating hash tables for data objects
(22:44:06) prefs: /purple/status/scores/offline changed, scheduling save.
(22:44:06) prefs: /purple/status/scores/available changed, scheduling save.
(22:44:06) prefs: /purple/status/scores/invisible changed, scheduling save.
(22:44:06) prefs: /purple/status/scores/away changed, scheduling save.
(22:44:06) prefs: /purple/status/scores/extended_away changed, scheduling save.
(22:44:06) prefs: /purple/status/scores/idle changed, scheduling save.
(22:44:06) prefs: /purple/status/scores/offline_msg changed, scheduling save.
(22:44:06) util: Reading file accounts.xml from directory /home/floid/.purple
(22:44:06) util: File /home/floid/.purple/accounts.xml does not exist (this is not necessarily an error)
(22:44:06) util: Reading file status.xml from directory /home/floid/.purple
(22:44:06) certificate: CertificateVerifier x509, singleuse requested but not found.
(22:44:06) certificate: CertificateVerifier singleuse registered
(22:44:06) certificate: CertificatePool x509, ca requested but not found.
(22:44:06) certificate: CertificateScheme x509 requested but not found.
(22:44:06) certificate/x509/ca: Lazy init failed because an X.509 Scheme is not yet registered. Maybe it will be better later.
(22:44:06) certificate/x509/ca: Init failed, probably because a dependency is not yet registered. It has been deferred to later.
(22:44:06) certificate: CertificatePool ca registered
(22:44:06) certificate: CertificatePool x509, tls_peers requested but not found.
(22:44:06) certificate: CertificatePool tls_peers registered
(22:44:06) certificate: CertificateVerifier x509, tls_cached requested but not found.
(22:44:06) certificate: CertificateVerifier tls_cached registered
(22:44:06) prefs: /purple/logging/format changed, scheduling save.
(22:44:06) prefs: /purple/logging/format changed, scheduling save.
(22:44:06) prefs: /purple/proxy/type changed, scheduling save.
(22:44:06) prefs: /purple/proxy/host changed, scheduling save.
(22:44:06) prefs: /purple/proxy/port changed, scheduling save.
(22:44:06) prefs: /purple/proxy/username changed, scheduling save.
(22:44:06) prefs: /purple/proxy/password changed, scheduling save.
(22:44:06) certificate: CertificateScheme x509 requested but not found.
(22:44:06) certificate: CertificateScheme x509 registered
(22:44:06) util: Reading file smileys.xml from directory /home/floid/.purple
(22:44:06) util: File /home/floid/.purple/smileys.xml does not exist (this is not necessarily an error)
(22:44:06) stun: using server
(22:44:07) sound: Initializing sound output drivers.
(22:44:07) prefs: /pidgin/conversations/placement changed, scheduling save.
(22:44:07) prefs: purple_prefs_get_bool: Unknown pref /pidgin/docklet/x11/embedded
(22:44:08) gtkmedia: Registering media element types
(22:44:08) util: Reading file blist.xml from directory /home/floid/.purple
(22:44:08) util: File /home/floid/.purple/blist.xml does not exist (this is not necessarily an error)
(22:44:08) plugins: Loading saved plugin /usr/lib/purple-2/pidgin-libnotify.so
(22:44:08) plugins: Loading saved plugin /usr/lib/purple-2/ssl-nss.so
(22:44:08) plugins: Loading saved plugin /usr/lib/purple-2/ssl.so
(22:44:08) pounce: Error reading pounces: Failed to open file '/home/floid/.purple/pounces.xml': No such file or directory
(22:44:08) Session Management: ICE initialized.
(22:44:08) Session Management: Connecting with no previous ID
(22:44:08) Session Management: Handling new ICE connection...
(22:44:08) done.
(22:44:08) Session Management: Connected to manager (gnome-session) with client ID 10c3d4b442a92b6124135485184879850500000021370059
(22:44:08) Session Management: Using pidgin as command
(22:44:09) Gtk: _ubuntu_gtk_overlay_scrollbar_new: assertion `os_scrollbar_new' failed
(22:44:09) Gtk: IA__gtk_widget_set_composite_name: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_set_parent: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) GLib-GObject: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(22:44:09) Gtk: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) GLib-GObject: invalid (NULL) pointer instance
(22:44:09) GLib-GObject: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(22:44:09) Gtk: gtk_scrolled_window_adjustment_changed: assertion `adjustment != NULL' failed
(22:44:09) Gtk: _ubuntu_gtk_overlay_scrollbar_new: assertion `os_scrollbar_new' failed
(22:44:09) Gtk: IA__gtk_widget_set_composite_name: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_set_parent: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) GLib-GObject: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(22:44:09) Gtk: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) GLib-GObject: invalid (NULL) pointer instance
(22:44:09) GLib-GObject: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(22:44:09) Gtk: gtk_scrolled_window_adjustment_changed: assertion `adjustment != NULL' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) Gtk: _ubuntu_gtk_overlay_scrollbar_new: assertion `os_scrollbar_new' failed
(22:44:09) Gtk: IA__gtk_widget_set_composite_name: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_set_parent: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) GLib-GObject: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(22:44:09) Gtk: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) GLib-GObject: invalid (NULL) pointer instance
(22:44:09) GLib-GObject: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(22:44:09) Gtk: gtk_scrolled_window_adjustment_changed: assertion `adjustment != NULL' failed
(22:44:09) Gtk: _ubuntu_gtk_overlay_scrollbar_new: assertion `os_scrollbar_new' failed
(22:44:09) Gtk: IA__gtk_widget_set_composite_name: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_set_parent: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) GLib-GObject: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(22:44:09) Gtk: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) GLib-GObject: invalid (NULL) pointer instance
(22:44:09) GLib-GObject: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(22:44:09) Gtk: gtk_scrolled_window_adjustment_changed: assertion `adjustment != NULL' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) Gtk: _ubuntu_gtk_overlay_scrollbar_new: assertion `os_scrollbar_new' failed
(22:44:09) Gtk: IA__gtk_widget_set_composite_name: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_set_parent: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) GLib-GObject: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(22:44:09) Gtk: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) GLib-GObject: invalid (NULL) pointer instance
(22:44:09) GLib-GObject: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(22:44:09) Gtk: gtk_scrolled_window_adjustment_changed: assertion `adjustment != NULL' failed
(22:44:09) Gtk: _ubuntu_gtk_overlay_scrollbar_new: assertion `os_scrollbar_new' failed
(22:44:09) Gtk: IA__gtk_widget_set_composite_name: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_set_parent: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) GLib-GObject: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(22:44:09) Gtk: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) GLib-GObject: invalid (NULL) pointer instance
(22:44:09) GLib-GObject: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(22:44:09) Gtk: gtk_scrolled_window_adjustment_changed: assertion `adjustment != NULL' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gdk: Native Windows wider or taller than 65535 pixels are not supported
(22:44:09) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: _ubuntu_gtk_overlay_scrollbar_new: assertion `os_scrollbar_new' failed
(22:44:09) Gtk: IA__gtk_widget_set_composite_name: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_set_parent: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) GLib-GObject: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(22:44:09) Gtk: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) GLib-GObject: invalid (NULL) pointer instance
(22:44:09) GLib-GObject: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(22:44:09) Gtk: gtk_scrolled_window_adjustment_changed: assertion `adjustment != NULL' failed
(22:44:09) Gtk: _ubuntu_gtk_overlay_scrollbar_new: assertion `os_scrollbar_new' failed
(22:44:09) Gtk: IA__gtk_widget_set_composite_name: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_set_parent: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) GLib-GObject: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(22:44:09) Gtk: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) GLib-GObject: invalid (NULL) pointer instance
(22:44:09) GLib-GObject: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(22:44:09) Gtk: gtk_scrolled_window_adjustment_changed: assertion `adjustment != NULL' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) Gtk: IA__gtk_range_get_adjustment: assertion `GTK_IS_RANGE (range)' failed
(22:44:09) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gdk: Native Windows wider or taller than 65535 pixels are not supported
(22:44:09) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:09) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:10) Session Management: Received first save_yourself
(22:44:10) Session Management: Received save_complete
(22:44:10) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:10) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:10) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:10) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:10) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:10) Gtk: IA__gtk_widget_size_request: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:10) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
(22:44:10) Gtk: IA__gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
The program 'Pidgin' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAlloc (insufficient resources for operation)'.
  (Details: serial 532 error_code 11 request_code 53 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
floid@miscreant:~$ LIBOVERLAY_SCROLLBAR=0 pidgin

{Metacity restarted from console after segfaulting sometime concurrent with the BadAlloc; Pidgin now running happily.}

Revision history for this message
floid (jkanowitz) wrote :

After somehow forgetting about this, I now note the place to stick the 'patch' override is /usr/share/applications/pidgin.desktop, making the Exec line:

Exec=LIBOVERLAY_SCROLLBAR=0 pidgin

Sadly the whole Unity/Dash morass made it a bit difficult to track that down (and this even for someone well aware of .desktop files, just not sure where the applicable one was sitting).

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.