Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 68651 - rhythmbox >=0.87 crashes with iPod mounted
Summary: rhythmbox >=0.87 crashes with iPod mounted
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: Gentoo Sound Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-10-23 11:37 UTC by y0zza
Modified: 2004-11-03 08:19 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
strace rhythmbox (rhythmboxstrace.tar.gz,150.04 KB, application/x-gzip)
2004-10-26 04:55 UTC, y0zza
Details

Note You need to log in before you can comment on or make changes to this bug.
Description y0zza 2004-10-23 11:37:05 UTC
Versions later than 0.8.5 crash with iPod mounted with error:
"RhythmDB-ERROR **: file rhythmdb.c: line 1381 (rhythmdb_entry_set): should not be reached
aborting..."

Crash does not occur if iPod is not mounted. Version 0.8.5 did not crash like this.

Reproducible: Always
Steps to Reproduce:
1. emerge =rhythmbox-0.8.8 with "pda" USE flag
2. mount ipod
3. start rhythmbox
(steps 2 and 3 can be reversed, same error occurs)
Actual Results:  
Rhythmbox crashes out with error: 
RhythmDB-ERROR **: file rhythmdb.c: line 1381 (rhythmdb_entry_set): should not
be reached

Expected Results:  
Able to browse and play music with Rhythmbox.

Portage 2.0.51-r2 (default-x86-2004.2, gcc-3.3.4, glibc-2.3.4.20040808-r1,
2.6.8-nitro5 i686)
=================================================================
System uname: 2.6.8-nitro5 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz
Gentoo Base System version 1.5.3
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.15.92.0.2-r1
Headers:  sys-kernel/linux26-headers-2.6.8.1-r1
Libtools: sys-devel/libtool-1.5.2-r5
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-O3 -mcpu=pentium4 -march=pentium4 -pipe -ftracer -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown
/usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config
/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -mcpu=pentium4 -march=pentium4 -pipe -ftracer -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs candy ccache distlocks maketest sandbox"
GENTOO_MIRRORS="http://ftp.easynet.nl/mirror/gentoo/
http://mir.zyrianes.net/gentoo/ ftp://mir.zyrianes.net/gentoo/
ftp://ftp.easynet.nl/mirror/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/local/trunk /usr/local/bmg-main"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="S3TC X aac acpi aim alsa apm audiofile avi berkdb bitmap-fonts bluetooth
bonobo bzlib cddb cdparanoia cdr cjk codecs crypt cups curl divx4linux dvd dvdr
dvdread eds encode esd evo exif f77 faac faad fam fbcon ffmpeg flac foomaticdb
freetype ftp gdbm gif gimp gimpprint glade gnome gnomedb gphoto2 gpm gprof gs
gstreamer gtk gtk2 gtkhtml hal icq ieee1394 image imagemagick imlib irmc java
jit jp2 jpeg ldap libg++ libsamplerate libwww live lm_sensors lzw lzw-tiff mad
matroska mikmod mime mmap mmx mng monkey mono motif mozilla moznocompose
moznoirc moznomail mozsvg mp3 mpeg mpeg4 mplayer msn music ncurses network nls
nptl oggvorbis openal opengl oscar pam pdf pdflib perl pic png ppds print pwdb
python quicktime readline rtc ruby samba sdl slang sndfile speex spell sse sse2
ssl stencil-buffer svg svga tcltk tcpd tetex tiff transcode truetype unicode usb
v4l v4l2 wmf wxwindows x86 xinerama xml2 xmms xosd xpm xprint xv xvid xvmc yahoo
zlib"

Using a 3G 30GB iPod on USB2 connection.
Comment 1 foser (RETIRED) gentoo-dev 2004-10-25 07:02:41 UTC
might be a gstreamer problem ... recompile gstreamer & all plugins with safe CFLAGS.

If you downgrade to 0.8.5 it works again ?
Comment 2 Zaheer Abbas Merali (RETIRED) gentoo-dev 2004-10-25 07:39:46 UTC
I doubt a gstreamer error, its hits a g_assert_not_reached in rhythmbox's database module. 
Comment 3 Alastair Tse (RETIRED) gentoo-dev 2004-10-26 02:07:23 UTC
you have a backtrace available?
Comment 4 y0zza 2004-10-26 04:55:46 UTC
Created attachment 42614 [details]
strace rhythmbox

Yes, downgrading to 0.8.5 or earlier works fine. Same issue occured prior to
the gstreamer 0.8.7 update.

Crash also occurs using safe CFLAGS="-O2 -pipe -fomit-frame-pointer" and/or gcc
3.4.2, for gstreamer and rhythmbox.

Looks like someone else on Fedora Core 2 reported what looks like the same bug
to Rhythmbox bugzilla too:
http://bugzilla.gnome.org/show_bug.cgi?id=154946

backtrace:
$ gdb rhythmbox
GNU gdb 6.2.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...(no debugging symbols
found)...Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) r
Starting program: /usr/bin/rhythmbox 
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
(no debugging symbols found)...(no debugging symbols found)...(no debugging
symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...[Thread debugging using libthread_db enabled]
[New Thread 1090712320 (LWP 6113)]
[New Thread 1101577136 (LWP 6116)]
[New Thread 1111493552 (LWP 6117)]
[New Thread 1119886256 (LWP 6118)]
[New Thread 1128278960 (LWP 6119)]
[New Thread 1136958384 (LWP 6120)]

Program received signal SIG33, Real-time event 33.
[Switching to Thread 1128278960 (LWP 6119)]
0xffffe410 in ?? ()
(gdb) bt
#0  0xffffe410 in ?? ()
#1  0x43402978 in ?? ()
#2  0x00000001 in ?? ()
#3  0x00000000 in ?? ()
#4  0x40d5cbcc in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/tls/libpthread.so.0
#5  0x40d50545 in ?? () from /usr/lib/libgthread-2.0.so.0
#6  0x0830a2d0 in ?? ()
#7  0x08301838 in ?? ()
#8  0x43402978 in ?? ()
#9  0x40d5046f in ?? () from /usr/lib/libgthread-2.0.so.0
#10 0x0830a2d0 in ?? ()
#11 0x00000000 in ?? ()
#12 0x00000000 in ?? ()
#13 0x00000000 in ?? ()
#14 0x00000000 in ?? ()
#15 0x00000000 in ?? ()
#16 0x417e3421 in ?? ()
#17 0x21a8d240 in ?? ()
#18 0x40d504e8 in ?? () from /usr/lib/libgthread-2.0.so.0
#19 0x40deb1bc in ?? () from /usr/lib/libglib-2.0.so.0
#20 0x08301820 in ?? ()
#21 0x40d75b01 in g_async_queue_push () from /usr/lib/libglib-2.0.so.0
#22 0x0830a2d0 in ?? ()
#23 0x08301838 in ?? ()
#24 0x43402a10 in ?? ()
#25 0x00000000 in ?? ()
#26 0x40d5bbd4 in pthread_mutex_lock () from /lib/tls/libpthread.so.0
#27 0x00089de8 in ?? ()
#28 0x00000000 in ?? ()
#29 0x080cf128 in ?? ()
#30 0x41b00560 in ?? ()
#31 0x40deba20 in glib_mem_profiler_table () from /usr/lib/libglib-2.0.so.0
#32 0x43402a68 in ?? ()
---Type <return> to continue, or q <return> to quit---
#33 0x080a3adf in rhythmdb_add_song ()
#34 0x00000000 in ?? ()

also attached the strace, which ends like this (in case you don't want to open
the 7MB text file):
.writev(13, [{"GIOP\1\2\1\0\221\0\0\0", 12},
{"0\342\377\277\3\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\250*, \341"..., 145}], 2) =
157
poll([{fd=6, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI, revents=POLLIN},
{fd=14, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=17,
events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=18,
events=POLLIN|POLLPRI}], 7, -1) = 1
read(13, "GIOP\1\2\1\0013\0\0\0", 12)	= 12
read(13, "0\342\377\277\0\0\0\0\1\0\0\0\1\0\0\0\f\0\0\0\1\1\1\1\1"..., 51) = 51

access("/mnt/ipod/ipod_control/Music/F03/2898.mp3", F_OK) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
writev(13, [{"GIOP\1\2\1\0\221\0\0\0", 12},
{"0\342\377\277\3\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\250*, \341"..., 145}], 2) =
157
poll([{fd=6, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI, revents=POLLIN},
{fd=14, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=17,
events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=18,
events=POLLIN|POLLPRI}], 7, -1) = 1
read(13, "GIOP\1\2\1\0013\0\0\0", 12)	= 12
read(13, "0\342\377\277\0\0\0\0\1\0\0\0\1\0\0\0\f\0\0\0\1\1\1\1\1"..., 51) = 51

access("/mnt/ipod/ipod_control/Music/F16/2899.mp3", F_OK) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
_llseek(21, 1441792, [1441792], SEEK_SET) = 0
writev(13, [{"GIOP\1\2\1\0\221\0\0\0", 12},
{"0\342\377\277\3\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\250*, \341"..., 145}], 2) =
157
poll([{fd=6, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI, revents=POLLIN},
{fd=14, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=17,
events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=18,
events=POLLIN|POLLPRI}], 7, -1) = 1
read(13, "GIOP\1\2\1\0013\0\0\0", 12)	= 12
read(13, "0\342\377\277\0\0\0\0\1\0\0\0\1\0\0\0\f\0\0\0\1\1\1\1\1"..., 51) = 51

access("/mnt/ipod/ipod_control/Music/F16/2900.mp3", F_OK) = 0
write(2, "\nRhythmDB-ERROR **: file rhythmd"..., 103) = 103
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
tgkill(6152, 6152, SIGABRT)		= 0
--- SIGABRT (Aborted) @ 0 (0) ---
write(3, "\33\30\2\0\0\0\0\0", 8)	= 8
write(3, " \30\2\0\0\0\0\0", 8) 	= 8
write(3, "+\30\1\0", 4) 		= 4
read(3, "w\2\31\36\353`\203P\0\20\0\0\20\0\0\0\0\0\0\20\20\20\20"..., 32) = 32
read(3, "\34\325\31\36\36\0\340\4?\1\0\0\2a\203P\0\0\340\4\4\0\0"..., 32) = 32
read(3, "w\2\31\36Ia\203P\0\20\0\0\20\0\0\0\0\0\0\20\20\20\20\20"..., 32) = 32
read(3, "\1\2\34\36\0\0\0\0\333|z\3\0\0\0\0\1\0\0\0\v\0\0\0000\264"..., 32) =
32
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x4102f348) = 6163
waitpid(6163, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 6163
--- SIGCHLD (Child exited) @ 0 (0) ---
sigreturn()				= ? (mask now [ABRT])
exit_group(1)				= ?
Comment 5 y0zza 2004-10-31 11:45:19 UTC
Appears to be resolved upstream.

http://bugzilla.gnome.org/show_bug.cgi?id=154946
Comment 6 foser (RETIRED) gentoo-dev 2004-11-03 06:43:34 UTC
added the upstream ipod fix to rhythmbox-0.8.8-r1 , please test
Comment 7 y0zza 2004-11-03 08:19:21 UTC
Working fine now in 0.8.8-r1. Many thanks.