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.
might be a gstreamer problem ... recompile gstreamer & all plugins with safe CFLAGS. If you downgrade to 0.8.5 it works again ?
I doubt a gstreamer error, its hits a g_assert_not_reached in rhythmbox's database module.
you have a backtrace available?
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) = ?
Appears to be resolved upstream. http://bugzilla.gnome.org/show_bug.cgi?id=154946
added the upstream ipod fix to rhythmbox-0.8.8-r1 , please test
Working fine now in 0.8.8-r1. Many thanks.