GNOME Bugzilla – Bug 474186
RhythmBox crashes when parse of playlists.xml fails
Last modified: 2007-09-09 04:51:21 UTC
What were you doing when the application crashed? Started rhythmbox after manually editing playlist.xml to have a "(expr1 OR expr2) AND expr3" automatic playlist Distribution: Fedora release 7 (Moonshine) Gnome Release: 2.18.3 2007-07-02 (Red Hat, Inc) BugBuddy Version: 2.18.0 System: Linux 2.6.21-1.3194.fc7 #1 SMP Wed May 23 22:35:01 EDT 2007 i686 X Vendor: The X.Org Foundation X Vendor Release: 10300000 Selinux: No Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: Clearlooks Memory status: size: 163721216 vsize: 163721216 resident: 79093760 share: 36814848 rss: 79093760 rss_rlim: 4294967295 CPU usage: start_time: 1189075870 rtime: 810 utime: 784 stime: 26 cutime:8 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/rhythmbox' (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1208886736 (LWP 10558)] (no debugging symbols found) 0x0051c402 in __kernel_vsyscall ()
+ Trace 160850
Thread 1 (Thread -1208886736 (LWP 10558))
----------- .xsession-errors (10 sec old) --------------------- File "/usr/lib/rhythmbox/plugins/artdisplay/AmazonCoverArtSearch.py", line 205, in on_search_completed self.on_search_completed_callback (self, self.entry, result, *self.args) File "/usr/lib/rhythmbox/plugins/rb/Coroutine.py", line 53, in callback self._resume () File "/usr/lib/rhythmbox/plugins/rb/Coroutine.py", line 38, in _resume self._continuation.next () File "/usr/lib/rhythmbox/plugins/artdisplay/CoverArtDatabase.py", line 155, in image_search yield self.loader.get_url (str (url), plexer.send ()) File "/usr/lib/rhythmbox/plugins/rb/Loader.py", line 54, in get_url gnomevfs.async.open (url, self.open_cb, data=("", callback, args)) TypeError: Cannot build a gnomevfs.URI sys:1: Warning: g_value_array_free: assertion `value_array != NULL' failed RhythmDB-ERROR **: file rhythmdb-query.c: line 579 (rhythmdb_query_deserialize): should not be reached aborting... --------------------------------------------------
The problem is very minor. If an error is made after manually editing the playlists.xml file, starting rhythmbox afterwards crashes when the file contains errors. Correcting the XML solves the problem, but rhythmbox should probably exit a bit more gracefully in such a case. By the way, it would be nice to create more complex queries directly in the GUI. Here is the section _with error_ in my playlists.xml: <playlist name="Unrated or Top in music/Artists" type="automatic" sort-key="Artist" sort-direction="0"> <conjunction> <equals prop="type">song</equals> <subquery> <conjunction> <conjunction> <greater prop="rating">4.000000</greater> <disjunction/> <equals prop="rating">0.000000</equals> </conjunction> <like prop="location">music/Artist</like> </conjunction> </subquery> </conjunction> </playlist> And here is the corrected XML file with which rhythmbox has no problems: <playlist name="Unrated or Top in music/Artists" type="automatic" sort-key="Artist" sort-direction="0"> <conjunction> <equals prop="type">song</equals> <subquery> <conjunction> <subquery> <conjunction> <greater prop="rating">4.000000</greater> <disjunction/> <equals prop="rating">0.000000</equals> </conjunction> </subquery> <like prop="location">music/Artist</like> </conjunction> </subquery> </conjunction> </playlist>
Please reduce the severity / priority as this will only occur when an advanced user is mucking around in the config file anyway. I would have done it, but I do not have sufficient permissions.
This is more or less covered under bug 350304, which covers handling of playlist and database files that use features introduced in later versions. Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find. *** This bug has been marked as a duplicate of 350304 ***