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 145217 - Radio station searches limit the genre on restart
Radio station searches limit the genre on restart
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: Internet Radio
HEAD
Other Linux
: High critical
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
: 143443 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2004-06-30 19:22 UTC by Sebastien Bacher
Modified: 2005-08-04 13:33 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
fix (4.23 KB, patch)
2005-08-04 12:24 UTC, Jonathan Matthew
committed Details | Review

Description Sebastien Bacher 2004-06-30 19:22:57 UTC
This bug has been reported in the Debian BTS: http://bugs.debian.org/257035

"It's hard to describe this bug, so I'll just go over the steps for
reproducing it:

1) Go the radio stations source.

2) Type some text in the search box, to limit the list of radio stations
   down.

3) Quit Rhythmbox.

4) Restart Rhythmbox.

After you restart Rhythmbox, the list of genres in the radio station
browser will only have those genres in the radio stations matched by the
search that was saved when you quit Rhythmbox the previous time.  This is
really obvious if your search only matched one radio station: only that
station's genre will be listed in the genre menu, under "All".  Even if you
clear the search, the list of genres remains limited.  After this happens,
it's effectively impossible to browse radio stations by genre.

I expect the search to never limit the list of genres, as is the case
before you quit Rhythmbox, and when browsing the Library."


------

I can reproduce the bug here and I've a crasher with it too ...

1- go in radio, do a search (to limit the genre)
2- restart rb
3- go in radio again, the seach entry has kept its state/result
4- the genre list only contain radio listed by the result of the research (the
only radio displayed)
5- clear the search field ... the other radios are showed, but the genre list is
not updated
6- try to change the genre of a radio which has a genre not listed in the
current state of the UI
7- crash


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

Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 1088807392 (LWP 13512)]
[New Thread 1143851952 (LWP 13518)]
[Thread debugging using libthread_db enabled]
[New Thread 1088807392 (LWP 13512)]
[New Thread 1143851952 (LWP 13518)]
[Thread debugging using libthread_db enabled]
[New Thread 1088807392 (LWP 13512)]
[New Thread 1143851952 (LWP 13518)]
[New Thread 1125317552 (LWP 13516)]
[New Thread 1116928944 (LWP 13515)]
[New Thread 1108540336 (LWP 13514)]
[New Thread 1100151728 (LWP 13513)]
0x40bab431 in __waitpid_nocancel () from /lib/tls/libpthread.so.0

Thread 1 (Thread 1088807392 (LWP 13512))

  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #1 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #2 <signal handler called>
  • #3 raise
    from /lib/tls/libc.so.6
  • #4 ??
    from /lib/tls/libc.so.6
  • #5 ??
  • #6 abort
    from /lib/tls/libc.so.6
  • #7 ??
  • #8 ??
  • #9 ??
  • #10 ??
  • #11 ??
  • #12 ??
  • #13 ??
  • #14 ??
  • #15 ??
  • #16 ??
  • #17 ??
  • #18 ??
  • #19 ??
  • #20 ??
  • #21 ??
  • #22 ??
  • #23 ??
  • #24 ??
  • #25 ??
  • #26 ??
  • #27 ??
  • #28 ??
  • #29 ??
  • #30 ??
  • #31 ??
  • #32 ??
  • #33 ??
  • #34 ??
  • #35 ??
  • #36 ??
  • #37 ??
  • #38 ??
  • #39 ??
  • #40 ??
  • #41 ??
  • #42 g_free
    from /usr/lib/libglib-2.0.so.0
  • #43 g_log
    from /usr/lib/libglib-2.0.so.0
  • #44 rhythmdb_property_model_delete_prop
    at rhythmdb-property-model.c line 547
  • #45 rhythmdb_property_model_prop_changed_cb
    at rhythmdb-property-model.c line 454
  • #46 rb_marshal_VOID__POINTER_INT_POINTER_POINTER
    at rb-marshal.c line 499
  • #47 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #48 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #49 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #50 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #51 rhythmdb_query_model_poll
    at rhythmdb-query-model.c line 915
  • #52 idle_poll_model
    at rhythmdb-query-model.c line 861
  • #53 g_main_context_wakeup
    from /usr/lib/libglib-2.0.so.0
  • #54 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #55 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #56 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #57 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #58 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #59 main
    at main.c line 185
  • #0 __waitpid_nocancel
    from /lib/tls/libpthread.so.0

Comment 1 Andrew Sobala 2005-01-09 19:19:23 UTC
*** Bug 143443 has been marked as a duplicate of this bug. ***
Comment 2 Jonathan Matthew 2005-08-04 12:24:56 UTC
Created attachment 50225 [details] [review]
fix

This was caused by the iradio source running its setup query before the
database load was complete (so it didn't return any results), then attaching
the genre property model to the query used to perform the search, so that when
the iradio entries were eventually loaded, the property model only saw those
entries that matched the search.  The crashes seen were caused by bug 149799.

This patch introduces a cached 'all' query for the iradio source, and uses only
that query to update the genre property model.
Comment 3 James "Doc" Livingston 2005-08-04 13:33:40 UTC
2005-08-04  James Livingston  <jrl@ids.org.au>

        * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
        (rb_iradio_source_do_query): Patch from Jonathan Matthew
        <jonathan@kaolin.hn.org> that stops the iradio source attempting to
        use a query before the database it fully loaded. (Closes 145217)

        Also removed unused fields from RBIRadioSourcePrivate.