GNOME Bugzilla – Bug 359083
Crash when editing artist field of mp3
Last modified: 2007-12-19 04:47:34 UTC
After upgrading to version 0.9.6 I experience crashes when updating tags. I seem to have this problem one several different files, but the one attached to the report is the one most likely to cause to crash when I try to edit the artist field. I'm not sure it's only related to this file, as I tried removing ~/.gnome2/rhythmbox/ and starting fresh with only this file in the database. This did not seem to cause any crashes. This is the error message I get: RhythmDB-ERROR **: file rhythmdb-property-model.c: line 618 (rhythmdb_property_model_delete_prop): assertion failed: ((ptr = g_hash_table_lookup (model->priv->reverse_map, propstr))) aborting...
Created attachment 73888 [details] Song most likely to cause crash
Created attachment 73889 [details] gdb backtrace
Thanks for the bug report; The stack trace appears to be unique. From the assertion message, this looks like a possible duplicate of bug 337064/bug 331149...
I can reproduce this (with any file) as follows: - create an automatic playlist that matches the song - type something in the search box that also matches the song - edit the song properties so that it will no longer match the auto playlist query
*** Bug 359551 has been marked as a duplicate of this bug. ***
*** Bug 359649 has been marked as a duplicate of this bug. ***
*** Bug 359859 has been marked as a duplicate of this bug. ***
*** Bug 359929 has been marked as a duplicate of this bug. ***
Created attachment 74099 [details] [review] patch If the property change excludes the entry from the parent query model, the child model will see the parent's row-deleted signal before it gets the entry-changed signal, so any attached property models will only see the deletion. Since the entry has already been changed at this point, they will try to remove it using the new property value rather than the old one, which at best screws up the reference counts and at worst causes this assertion failure. For chained query models, this change propagates the entry-prop-changed signal from the parent model, rather than emitting it in response to the entry-changed signal from the db. This ensures that any property models attached to the child model see the property change before the deletion, so they can update correctly.
Looks sane to me. When you asked about splitting up the rhythmdb tests the other day, was it because you were writing one for this? If so, having it in cvs as a regression test might be a good idea.
Yes, I was writing some property model tests to help track this down. They also trip over at least one other bug (something to do with hidden entries in static playlists), but I've got a fix for that. I think there's a bug open somewhere I can attach a patch to..
*** Bug 360285 has been marked as a duplicate of this bug. ***
*** Bug 360289 has been marked as a duplicate of this bug. ***
*** Bug 359607 has been marked as a duplicate of this bug. ***
I've committed the patch. I'll handle the other things (test cases, related bug fixes) in other bugs.
*** Bug 359491 has been marked as a duplicate of this bug. ***
*** Bug 360433 has been marked as a duplicate of this bug. ***
*** Bug 360625 has been marked as a duplicate of this bug. ***
*** Bug 360622 has been marked as a duplicate of this bug. ***
*** Bug 360963 has been marked as a duplicate of this bug. ***
*** Bug 360960 has been marked as a duplicate of this bug. ***
*** Bug 361146 has been marked as a duplicate of this bug. ***
*** Bug 361347 has been marked as a duplicate of this bug. ***
Created attachment 74523 [details] [review] additional patch Don't emit visible->hidden changes from chained query models, so property models don't see the change twice and break.
I've already committed this.
*** Bug 361755 has been marked as a duplicate of this bug. ***
*** Bug 362729 has been marked as a duplicate of this bug. ***
*** Bug 363426 has been marked as a duplicate of this bug. ***
*** Bug 363652 has been marked as a duplicate of this bug. ***
*** Bug 363906 has been marked as a duplicate of this bug. ***
*** Bug 363938 has been marked as a duplicate of this bug. ***
*** Bug 364136 has been marked as a duplicate of this bug. ***
*** Bug 366483 has been marked as a duplicate of this bug. ***
*** Bug 367057 has been marked as a duplicate of this bug. ***
*** Bug 367797 has been marked as a duplicate of this bug. ***
*** Bug 368053 has been marked as a duplicate of this bug. ***
*** Bug 368631 has been marked as a duplicate of this bug. ***
*** Bug 360109 has been marked as a duplicate of this bug. ***
*** Bug 360214 has been marked as a duplicate of this bug. ***
*** Bug 368431 has been marked as a duplicate of this bug. ***
*** Bug 368879 has been marked as a duplicate of this bug. ***
*** Bug 370332 has been marked as a duplicate of this bug. ***
*** Bug 370810 has been marked as a duplicate of this bug. ***
*** Bug 370814 has been marked as a duplicate of this bug. ***
*** Bug 370815 has been marked as a duplicate of this bug. ***
*** Bug 371101 has been marked as a duplicate of this bug. ***
*** Bug 371369 has been marked as a duplicate of this bug. ***
*** Bug 371593 has been marked as a duplicate of this bug. ***
*** Bug 371658 has been marked as a duplicate of this bug. ***
*** Bug 372048 has been marked as a duplicate of this bug. ***
*** Bug 364624 has been marked as a duplicate of this bug. ***
*** Bug 372054 has been marked as a duplicate of this bug. ***
*** Bug 372097 has been marked as a duplicate of this bug. ***
*** Bug 373042 has been marked as a duplicate of this bug. ***
*** Bug 373342 has been marked as a duplicate of this bug. ***
*** Bug 373944 has been marked as a duplicate of this bug. ***
*** Bug 374945 has been marked as a duplicate of this bug. ***
*** Bug 375318 has been marked as a duplicate of this bug. ***
*** Bug 378843 has been marked as a duplicate of this bug. ***
*** Bug 378844 has been marked as a duplicate of this bug. ***
*** Bug 381088 has been marked as a duplicate of this bug. ***
*** Bug 381234 has been marked as a duplicate of this bug. ***
*** Bug 381941 has been marked as a duplicate of this bug. ***
*** Bug 383997 has been marked as a duplicate of this bug. ***
*** Bug 386597 has been marked as a duplicate of this bug. ***
*** Bug 388411 has been marked as a duplicate of this bug. ***
*** Bug 391904 has been marked as a duplicate of this bug. ***
*** Bug 398748 has been marked as a duplicate of this bug. ***
*** Bug 402322 has been marked as a duplicate of this bug. ***
*** Bug 396355 has been marked as a duplicate of this bug. ***
*** Bug 408785 has been marked as a duplicate of this bug. ***
*** Bug 416904 has been marked as a duplicate of this bug. ***
*** Bug 418686 has been marked as a duplicate of this bug. ***
*** Bug 435022 has been marked as a duplicate of this bug. ***
*** Bug 441420 has been marked as a duplicate of this bug. ***
*** Bug 465673 has been marked as a duplicate of this bug. ***
*** Bug 473029 has been marked as a duplicate of this bug. ***
no rejected duplicates for the last 40 days. removing from auto-rejecter list, 192 rejected reports so far.