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 330301 - Crash on Startup
Crash on Startup
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: general
HEAD
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
: 393127 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-02-07 19:11 UTC by Ryan P Skadberg
Modified: 2007-01-05 15:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
BT of crash (11.78 KB, text/plain)
2006-02-07 19:12 UTC, Ryan P Skadberg
  Details
patch to remove rhythmdb_query_model_base_entry_prop_changed (2.72 KB, patch)
2006-02-08 04:54 UTC, James "Doc" Livingston
committed Details | Review

Description Ryan P Skadberg 2006-02-07 19:11:46 UTC
With CVS as of a little bit ago, getting the attached crash on startup.
Comment 1 Ryan P Skadberg 2006-02-07 19:12:27 UTC
Created attachment 58879 [details]
BT of crash

Here's the actually backtrace
Comment 2 Christian Kirbach 2006-02-07 20:20:41 UTC
some frames similar to bug 145217

Thread 1 (Thread -1208256320 (LWP 13457))

  • #0 IA__g_logv
    at gmessages.c line 502
  • #1 IA__g_log
  • #2 IA__g_assert_warning
  • #3 rhythmdb_property_model_delete_prop
  • #4 rhythmdb_property_model_prop_changed_cb
    at rhythmdb-property-model.c line 506
  • #5 rhythmdb_marshal_VOID__POINTER_INT_POINTER_POINTER
    at rhythmdb-marshal.c line 222
  • #6 IA__g_closure_invoke
    at gclosure.c line 490
  • #7 signal_emit_unlocked_R
    at gsignal.c line 2438
  • #8 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #9 IA__g_signal_emit
    at gsignal.c line 2241
  • #10 rhythmdb_query_model_base_entry_prop_changed
  • #11 rhythmdb_marshal_VOID__POINTER_INT_POINTER_POINTER
    at rhythmdb-marshal.c line 222
  • #12 IA__g_closure_invoke
    at gclosure.c line 490

Comment 3 Jonathan Matthew 2006-02-07 21:28:56 UTC
To save anyone else the effort of digging through the stack trace, this happens when we update audio CD tracks with metadata.

What seems to be happening here is that chained query models emit the entry property changed signal twice for each change, since they get the change directly from the db and also from the base model.  I think the fix is just to kill rhythmdb_query_model_base_entry_prop_changed entirely.

Property models attached to chained query models end up with broken refcounts, since changing from "Unknown" to "random artist x" twice will decrement the "unknown" refcount twice.  Eventually the "unknown" property gets removed from the property model, and next time an entry changes from "unknown" to something else, we get this assertion failure.
Comment 4 Ryan P Skadberg 2006-02-07 21:48:35 UTC
Removing the CD from the drive got this to work ok for me for now.
Comment 5 James "Doc" Livingston 2006-02-08 04:54:46 UTC
Created attachment 58895 [details] [review]
patch to remove rhythmdb_query_model_base_entry_prop_changed

Since the query model will get the change from the db, removing rhythmdb_query_model_base_entry_prop_changed as Jonathan suggests sounds good. The patch does this.
Comment 6 Ryan P Skadberg 2006-02-08 05:15:36 UTC
fixes it for moi.
Comment 7 James "Doc" Livingston 2006-02-08 07:51:33 UTC
Committed to cvs.
Comment 8 Christian Kirbach 2007-01-05 15:30:47 UTC
*** Bug 393127 has been marked as a duplicate of this bug. ***