Pressing "shuffle" button in Rhytmbox causes it to crash

Bug #620430 reported by Anmar Oueja
48
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Rhythmbox
Unknown
Medium
rhythmbox (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

Binary package hint: rhythmbox

steps to repro:

- launch rhythmbox
- press play button
- press shuffle button
- boom!

other steps

- launch rhythmbox
- press shuffle button
- boom!

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: rhythmbox 0.13.0git20100715-0ubuntu8
ProcVersionSignature: Ubuntu 2.6.35-15.21-generic 2.6.35.1
Uname: Linux 2.6.35-15-generic x86_64
Architecture: amd64
Date: Thu Aug 19 09:01:03 2010
InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Alpha amd64 (20100710)
ProcEnviron:
 LANG=en_CA.utf8
 SHELL=/bin/bash
SourcePackage: rhythmbox

Revision history for this message
Anmar Oueja (anmar) wrote :
Revision history for this message
Anmar Oueja (anmar) wrote :

one comment. the button stays persistent between crashes so if i press it and rhythmbox crashes, upon restart, the shuffle button will be in the active state.

Revision history for this message
Pedro Villavicencio (pedro) wrote :

getting the same here, will get a backtrace.

Changed in rhythmbox (Ubuntu):
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Pedro Villavicencio (pedro) wrote :
Revision history for this message
Pedro Villavicencio (pedro) wrote :

could this be due to the latest change on the mpris plugin?

Revision history for this message
Hernando Torque (htorque) wrote :

Yes, omitting that patch fixes the problem.

Revision history for this message
Marien Zwart (marienz) wrote :

This is indeed because of the mpris plugin. Relevant part of the stack is just:

#0 0x00172642 in rb_shell_player_get_playback_state (player=0x822d000, shuffle=0x0, repeat=0xbfffefcc) at rb-shell-player.c:1817
#1 0x038005a3 in get_loop_status (plugin=<value optimized out>) at rb-mpris-plugin.c:570
#2 0x038020bf in play_order_changed_cb (object=0x822d000, pspec=0x81e3760, plugin=0x831f2a0) at rb-mpris-plugin.c:784

Specifically, get_loop_status in rb-mpris-plugin.c does:

rb_shell_player_get_playback_state (plugin->player, NULL, &loop);

(passing NULL for the gboolean* shuffle), and rhythmbox itself then segfaults doing:

 *shuffle = i > 0;

(using that gboolean* assuming it is not NULL).

Either passing a valid pointer to an (unused) gboolean in the mpris plugin or teaching the rhythmbox core to check these gboolean*s for NULL before using them should fix the bug.

Revision history for this message
Marien Zwart (marienz) wrote :

The linked branch lp:~marienz/ubuntu/maverick/rhythmbox/fix-crash-on-random-with-mpris might fix this. My ppa has an amd64 build of that branch (see https://launchpad.net/~marienz/+archive/ppa/+build/1930205 ), but I cannot test it and the i386 one is still pending.

Please do not add my entire ppa, because there is some weird stuff in it. This rhythmbox build might be useful to some though.

(it bulletproofs rb_shell_player_get_playback_state instead of fixing the call, because being able to pass NULL for either shuffle or repeat seems generally convenient).

Revision history for this message
Sebastien Bacher (seb128) wrote :

Thank you for your bug report. The issue is an upstream one and it would be nice if somebody having it could send the bug the to the people writting the software (https://wiki.ubuntu.com/Bugs/Upstream/GNOME)

Revision history for this message
Anmar Oueja (anmar) wrote :

filed a bug in gnome bugzilla here: https://bugzilla.gnome.org/show_bug.cgi?id=627723

Revision history for this message
Jonathan Matthew (jmatthew) wrote :

commit 5d27c9db33dfb6125f97dfc73c4e8d19d09089f3 fixed this. I should have mentioned this was required for the current mpris code to work, sorry.

Revision history for this message
Sebastien Bacher (seb128) wrote :

the version we have will be updated but the indicator needs some changes before

Changed in rhythmbox (Ubuntu):
status: Confirmed → Fix Committed
Changed in rhythmbox:
status: Unknown → Invalid
Changed in rhythmbox (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Anmar Oueja (anmar) wrote :

confirming the fix.

Changed in rhythmbox:
importance: Unknown → Medium
status: Invalid → Unknown
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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