indicator-applet crashed when rhythmbox changes track

Bug #611755 reported by Mauro D'Aloisio
116
This bug affects 19 people
Affects Status Importance Assigned to Milestone
The Sound Menu
Fix Released
Undecided
Conor Curran
indicator-sound (Ubuntu)
Fix Released
High
Conor Curran

Bug Description

Binary package hint: indicator-applet

When I open rhythmbox, indicator-applet chrashes; when a track finisches and a there is a new one, there is a crash of indicator-applet

ProblemType: Crash
DistroRelease: Ubuntu 10.10
Package: indicator-applet-complete (not installed)
ProcVersionSignature: Ubuntu 2.6.35-11.16-generic 2.6.35-rc5
Uname: Linux 2.6.35-11-generic x86_64
Architecture: amd64
CrashCounter: 1
Date: Fri Jul 30 17:45:03 2010
ExecutablePath: /usr/lib/indicator-applet/indicator-applet
InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Alpha amd64 (20100621)
ProcCmdline: /usr/lib/indicator-applet/indicator-applet --oaf-activate-iid=OAFIID:GNOME_IndicatorApplet_Factory --oaf-ior-fd=20
ProcEnviron:
 LANG=it_IT.utf8
 SHELL=/bin/bash
SegvAnalysis:
 Segfault happened at: 0x7f0482a1ce98 <cairo_rectangle+8>: mov 0x4(%rdi),%ecx
 PC (0x7f0482a1ce98) ok
 source "0x4(%rdi)" (0x00000004) not located in a known VMA region (needed readable region)!
 destination "%ecx" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: indicator-applet
StacktraceTop:
 cairo_rectangle () from /usr/lib/libcairo.so.2
 play_button_toggle_play_pause ()
 g_closure_invoke ()
 ?? () from /usr/lib/libgobject-2.0.so.0
 g_signal_emit_valist ()
Title: indicator-applet crashed with SIGSEGV in cairo_rectangle()
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
XsessionErrors:
 (polkit-gnome-authentication-agent-1:1439): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
 (nautilus:1444): GdkPixbuf-CRITICAL **: gdk_pixbuf_format_get_name: assertion `format != NULL' failed
 (rhythmbox:1838): Rhythmbox-WARNING **: Could not open device /dev/radio0
indicator-applet-session.log:
 invalid (NULL) pointer instance
 Using user icon for 'Sessione ospite' from file: (null)
 id_prop_update: assertion `priv->root != NULL' failed
 loading avatar from file /home/mauro/.face
 Updating username label

Revision history for this message
Mauro D'Aloisio (maurodaloisio) wrote :
visibility: private → public
Revision history for this message
Miloš Mandarić (mandzo18) wrote :

I can confirm this bug.

Changed in indicator-applet (Ubuntu):
status: New → Confirmed
Omer Akram (om26er)
affects: indicator-applet (Ubuntu) → indicator-sound (Ubuntu)
Changed in indicator-sound (Ubuntu):
importance: Undecided → High
Revision history for this message
Ricardo Salveti (rsalveti) wrote :

A better stacktrace:

#0 cairo_rectangle (cr=0x0, x=58, y=0, width=50, height=43) at /build/buildd/cairo-1.9.12/src/cairo.c:2088
#1 0x00007fe3c3be7313 in play_button_toggle_play_pause (button=0x870900, update=<value optimized out>) at play-button.c:470
#2 0x00007fe3d6b6f69e in g_closure_invoke (closure=0x9cfa30, return_value=0x0, n_param_values=3, param_values=0x9388f0, invocation_hint=0x7fffabf938a0)
    at /build/buildd/glib2.0-2.25.11/gobject/gclosure.c:766
#3 0x00007fe3d6b86da9 in signal_emit_unlocked_R (node=0x8c1e70, detail=<value optimized out>, instance=<value optimized out>, emission_return=<value optimized out>,
    instance_and_params=<value optimized out>) at /build/buildd/glib2.0-2.25.11/gobject/gsignal.c:3252

Revision history for this message
Ricardo Salveti (rsalveti) wrote :

This bug only happens with the indicator-sound-0.3.9 release, with indicator-sound-0.3.8 it works fine.

The crash is happening in this piece of code, added at the newer version:

 play_button_toggle_play_pause(GtkWidget* button, PlayButtonState update)
 {
        PlayButtonPrivate* priv = PLAY_BUTTON_GET_PRIVATE(button);
+ gboolean changed = priv->current_state != update;
        priv->current_state = update;
        g_debug("PlayButton::toggle play state : %i", priv->current_state);
+
+ if(changed == TRUE){
+ g_debug("Toggle play pause - changed of state detected - redraw button");
+ cairo_t *cr;
+
+ cr = gdk_cairo_create (button->window);
+
+ GList* list = g_hash_table_lookup(priv->command_coordinates,
+ GINT_TO_POINTER(TRANSPORT_PLAY_PAUSE));
+
+ cairo_rectangle(cr,
+ GPOINTER_TO_INT(g_list_nth_data(list, 0)),
+ GPOINTER_TO_INT(g_list_nth_data(list, 1)),
+ GPOINTER_TO_INT(g_list_nth_data(list, 2)),
+ GPOINTER_TO_INT(g_list_nth_data(list, 3)));
+
+ cairo_clip(cr);
+ draw (button, cr);
+ cairo_destroy (cr);
+ }
 }

Revision history for this message
Andrzej Kłapeć (solidslash) wrote :

I can also confirm this.

tags: removed: need-amd64-retrace
Conor Curran (cjcurran)
Changed in indicator-sound (Ubuntu):
assignee: nobody → Conor Curran (cjcurran)
Changed in indicator-sound:
assignee: nobody → Conor Curran (cjcurran)
Revision history for this message
Sebastien Bacher (seb128) wrote :

The issue is fixed in this upload

 indicator-sound (0.3.9-0ubuntu2) maverick; urgency=low
 .
   * Backport upstream commit to fix the indicator crashing when rhythmbox starts
     (lp: #612299)

summary: - [maverick] indicator-applet crashed when rhythmbox changes track
+ indicator-applet crashed when rhythmbox changes track
Changed in indicator-sound (Ubuntu):
status: Confirmed → Fix Released
Conor Curran (cjcurran)
Changed in indicator-sound:
status: New → Fix Released
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.