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 770134 - (apnegrao) RhythmDB-CRITICAL **: rhythmdb_entry_unref: assertion 'entry != NULL' failed
(apnegrao)
RhythmDB-CRITICAL **: rhythmdb_entry_unref: assertion 'entry != NULL' failed
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: playback
HEAD
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-08-19 09:21 UTC by apnegrao
Modified: 2016-08-19 12:28 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fixes RhythmDB-CRITICAL **: rhythmdb_entry_unref: assertion 'entry != NULL' failed (799 bytes, patch)
2016-08-19 09:21 UTC, apnegrao
none Details | Review

Description apnegrao 2016-08-19 09:21:29 UTC
Created attachment 333616 [details] [review]
Fixes RhythmDB-CRITICAL **: rhythmdb_entry_unref: assertion 'entry != NULL' failed

Steps to reproduce:
1 - Select some property.
2 - Play the last song in that property.
3 - Double click on the property same before the song finishes. Selecting a different property will not cause the problem.

Nothing relevant seems to happen (no crash or anything like that) except the error message being issued.

The error comes from 'rb_shell_player_property_row_activated_cb': because RB is playing the last song in the play order, the call 'rb_play_order_get_next (porder)' (line 1744) returns NULL, which will cause the assertion inside function 'rhythmdb_entry_unref' (called in line 1755) to fail.

To get rid of the error, we just need to move the unref into the if that starts in line 1745. There's a patch for it in attachment.
Comment 1 gnome.vrb 2016-08-19 09:49:28 UTC
(In reply to apnegrao from comment #0)

> Steps to reproduce:
> 1 - Select some property.
> 2 - Play the last song in that property.
> 3 - Double click on the property same before the song finishes. Selecting a
> different property will not cause the problem.

It is not clear what you are trying to say. Can you explain a bit ?
Comment 2 apnegrao 2016-08-19 10:40:33 UTC
(In reply to vrishab from comment #1)
> (In reply to apnegrao from comment #0)
> 
> > Steps to reproduce:
> > 1 - Select some property.
> > 2 - Play the last song in that property.
> > 3 - Double click on the property same before the song finishes. Selecting a
> > different property will not cause the problem.
> 
> It is not clear what you are trying to say. Can you explain a bit ?

Sure! Let's see if this makes it more clear:
1 - Open rhythmbox through the command line.
2 - Select some album in the library browser (i.e., click on the name of the album).
3 - Start playing the last song of that album.
4 - While the song is playing, double click on the same album that is playing (double click on the name of the album).

This will cause RB to throw "RhythmDB-CRITICAL **: rhythmdb_entry_unref: assertion 'entry != NULL' failed" to the command line. Nothing else happens, though (no crash nor weird behaviour).

In general, this happens every time you play the last song of some selection (be it an album, artist or search result) and double click on that same selection in the library. The reason is the one i explained in my initial bug report.
Comment 3 gnome.vrb 2016-08-19 10:46:58 UTC
Step 2.5: Toggle Repeat and Shuffle Off.

Reproducible in Rhythmbox 3.4
Comment 4 Jonathan Matthew 2016-08-19 12:28:06 UTC
fixed in commit b58cf63, thanks for reporting