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 353119 - Make rhythmdb enforce URI-uniqueness
Make rhythmdb enforce URI-uniqueness
Status: RESOLVED OBSOLETE
Product: rhythmbox
Classification: Other
Component: general
HEAD
Other other
: High major
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-08-27 17:45 UTC by ilkka.rauta
Modified: 2018-05-24 11:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
patch (1.09 KB, patch)
2007-02-06 11:36 UTC, James "Doc" Livingston
committed Details | Review

Description ilkka.rauta 2006-08-27 17:44:49 UTC
From: Ilkka Rauta <ilkka.rauta@gmail.com>
To: submit@bugs.gnome.org
X-Mailer: bug-buddy 2.14.0
Subject: Rhythmbox crashes when removing radio stations

Distribution: Ubuntu 6.06 (dapper)
Package: rhythmbox
Severity: Normal
Version: GNOME2.14.3 0.9.3.1
Gnome-Distributor: Ubuntu
Synopsis: Rhythmbox crashes when removing radio stations
Bugzilla-Product: rhythmbox
Bugzilla-Component: general
Bugzilla-Version: 0.9.3.1
BugBuddy-GnomeVersion: 2.0 (2.14.1)
Description:
Description of the crash:
I had two items in the internet radio station listing, that are pointing
to same playlist address. Removing one works, but when the other item is
removed, application crashes. When the program is started again, neither
of the items were removed from the list.

Steps to reproduce the crash:
1. Insert two items in the radio station listing, that have the same
playlist address.
2. Remove one of them.
3. Then, remove the other too.

Expected Results:
Crash.

How often does this happen?
This seems to happen consistently no matter what the radio station is,
though my testing is quite limited.

Additional information:
The duplicate entries can be removed, if Rhythmbox is closed and
started again after removing the first radio list item.



Debugging Information:

Backtrace was generated from '/usr/bin/rhythmbox'

(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1226078528 (LWP 12009)]
[New Thread -1249403984 (LWP 12012)]
[New Thread -1241011280 (LWP 12011)]
(no debugging symbols found)
0xffffe410 in __kernel_vsyscall ()

Thread 1 (Thread -1226078528 (LWP 12009))

  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 __kernel_vsyscall
  • #5 raise
    from /lib/tls/i686/cmov/libc.so.6
  • #6 abort
    from /lib/tls/i686/cmov/libc.so.6
  • #7 g_logv
    from /usr/lib/libglib-2.0.so.0
  • #8 g_log
    from /usr/lib/libglib-2.0.so.0
  • #9 g_assert_warning
    from /usr/lib/libglib-2.0.so.0
  • #10 rhythmdb_tree_new
  • #11 rhythmdb_entry_delete
  • #12 rb_iradio_source_add_station
  • #13 rb_source_delete
  • #14 rb_shell_clipboard_new
  • #15 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #18 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #19 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #20 _gtk_action_emit_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #21 gtk_action_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #22 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #23 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #24 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #25 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #26 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #27 gtk_widget_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #28 gtk_menu_shell_activate_item
    from /usr/lib/libgtk-x11-2.0.so.0
  • #29 gtk_menu_shell_activate_item
    from /usr/lib/libgtk-x11-2.0.so.0
  • #30 gtk_menu_reorder_child
    from /usr/lib/libgtk-x11-2.0.so.0
  • #31 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #32 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #33 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #34 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #35 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #36 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #37 gtk_widget_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #38 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #39 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #40 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #41 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #42 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #43 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #44 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #45 main
  • #0 __kernel_vsyscall




------- Bug created by bug-buddy at 2006-08-27 17:45 -------


Bugreport had an attachment. This cannot be imported to Bugzilla.
Contact bugmaster@gnome.org if you are willing to write a patch for this.

Comment 1 Alex Lancaster 2006-08-28 08:04:44 UTC
Thanks for the bug report. Unfortunately, that stack trace is not very useful in determining the cause of the crash. Can you get us one with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so.
Comment 2 Jonathan Matthew 2006-08-28 09:17:47 UTC
That's not actually necessary.  The problem here is that we let the user modify the location of one entry to match that of another, when locations are supposedly unique.  Deleting the first entry removes the location->entry mapping.  Deleting the second triggers an assertion on that same operation.
Comment 3 ilkka.rauta 2006-08-28 18:13:10 UTC
I leave the stack trace out, as it seems it is not needed, but the error message from gdb looks like this (just for confirmation):

RhythmDB-ERROR **: file rhythmdb-tree.c: line 1246 (rhythmdb_tree_entry_delete): assertion failed: (g_hash_table_lookup (db->priv->entries, entry->location) != NULL)
aborting...

I also have to add, that I added the duplicates simply by clicking the playlist link in the radio station's web page (http://somafm.com/ with Firefox) when Rhytmbox is not running. The same items are added to the station list every time. This might be a place for another bug report - I am not sure if this is in any way related to this bug - but the radio station does not start playing when Rhythmbox starts, it is just added to the station list.
Comment 4 Jonathan Matthew 2006-08-28 22:06:54 UTC
I can't reproduce that.  Repeatedly adding the same stream doesn't create any duplicate entries in the iradio source for me.  Which particular playlist link are you using?

Bug 343654 is about how we handle radio streams added through locally downloaded playlist files.
Comment 5 ilkka.rauta 2006-08-31 18:12:48 UTC
The playlist is http://somafm.com/groovesalad.pls (Groove Salad, 128k mp3). The radio channel list items are not added multiple times, if Rhythmbox is running when the when the link is clicked.
Comment 6 James "Doc" Livingston 2007-02-06 11:36:17 UTC
Created attachment 82002 [details] [review]
patch

This should fix the problem, by complaining if the user tried to change the URI to be the same as that of an existing station.
Comment 7 Jonathan Matthew 2007-02-06 12:18:49 UTC
Looks OK to me.  I'd also like to have a way to make property changes fail at the rhythmdb level if they violate a constraint like this, but reporting sensible errors would be hard.
Comment 8 James "Doc" Livingston 2007-02-13 13:48:50 UTC
I've committed the patch to cvs. Retitling bug to reflect issue from last comment
Comment 9 GNOME Infrastructure Team 2018-05-24 11:47:59 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/rhythmbox/issues/231.