After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 474186 - RhythmBox crashes when parse of playlists.xml fails
RhythmBox crashes when parse of playlists.xml fails
Status: RESOLVED DUPLICATE of bug 350304
Product: rhythmbox
Classification: Other
Component: general
0.10.0
Other All
: High critical
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-09-06 10:54 UTC by Scott Hardin
Modified: 2007-09-09 04:51 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18



Description Scott Hardin 2007-09-06 10:54:35 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 ()

Thread 1 (Thread -1208886736 (LWP 10558))

  • #0 __kernel_vsyscall
  • #1 waitpid
    from /lib/libpthread.so.0
  • #2 ??
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 __kernel_vsyscall
  • #5 raise
    from /lib/libc.so.6
  • #6 abort
    from /lib/libc.so.6
  • #7 g_logv
    from /lib/libglib-2.0.so.0
  • #8 g_log
    from /lib/libglib-2.0.so.0
  • #9 g_assert_warning
    from /lib/libglib-2.0.so.0
  • #10 rhythmdb_query_deserialize
  • #11 rhythmdb_query_deserialize
  • #12 rb_auto_playlist_source_new_from_xml
  • #13 rb_playlist_source_new_from_xml
  • #14 rb_playlist_manager_load_playlists
  • #15 ??
  • #16 ??
    from /lib/libglib-2.0.so.0
  • #17 g_main_context_dispatch
    from /lib/libglib-2.0.so.0
  • #18 ??
    from /lib/libglib-2.0.so.0
  • #19 g_main_loop_run
    from /lib/libglib-2.0.so.0
  • #20 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #21 main
  • #0 __kernel_vsyscall


----------- .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...
--------------------------------------------------
Comment 1 Scott Hardin 2007-09-06 13:12:49 UTC
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>
Comment 2 Scott Hardin 2007-09-06 13:19:13 UTC
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.
Comment 3 Jonathan Matthew 2007-09-09 04:51:21 UTC
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 ***