Bug 292648 - Dynamic Playlist ignores lastplay sometimes
Summary: Dynamic Playlist ignores lastplay sometimes
Alias: None
Product: amarok
Classification: Applications
Component: Playlists/Dynamic Playlists (show other bugs)
Version: 2.6-git
Platform: RedHat Enterprise Linux Linux
: NOR minor (vote)
Target Milestone: ---
Assignee: Amarok Developers
Depends on: 286642
  Show dependency treegraph
Reported: 2012-01-28 02:13 UTC by Eric Mesa
Modified: 2013-02-07 15:25 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 2.8


Note You need to log in before you can comment on or make changes to this bug.
Description Eric Mesa 2012-01-28 02:13:18 UTC
Version:           2.5.0 (using KDE 4.7.4) 
OS:                Linux

Have a playlist set up that has 
match all: 
{Not label: Christmas
and lastplay>14days}
Match any:
rating: >4
or score>50

MOST of the songs are >14 days.  Some are not.  Now, related to the bug I list in additional information, I think it might have to do with "the internal buffers are kept quite long to prevent frequent costly searches over the whole database".  The reason I think this is the issue is that I tend to see this happen most often when I have Amarok open all weekend.  Because I tend to notice songs are repeating in <14 days because I just heard the song recently

Reproducible: Always

Steps to Reproduce:
1. make playlist like the one I haev
2. listen for a long time
3. songs come up that are not lastplay:>14 days

Actual Results:  
songs come up that are not lastplay:>14 days

Expected Results:  
songs should not come up that are not lastplay:>14 days

This sounds similar, but is not quite the same as this bug: https://bugs.kde.org/show_bug.cgi?id=286642
Comment 1 Eric Mesa 2012-05-03 17:23:27 UTC
If I can get confirmation of whether or not this is similar to the bug linked above and the problem is "the internal buffers are kept quite long to prevent frequent costly searches over the whole database" I would be OK with this bug being closed.
Comment 2 Mathias Dietrich 2012-06-12 10:43:34 UTC
I can confirm this issue in Amarok 2.5.90.
Comment 3 Myriam Schweingruber 2012-06-15 07:01:43 UTC
Most likely the same cause indeed. Marking the dependency.
Comment 4 Mayank Madan 2012-12-01 07:52:03 UTC
Can reproduce this bug in v2.6.0-421-gf66a306
Comment 5 Ralf Engels 2012-12-18 18:47:14 UTC
Could you please start amarok with the "--debug" parameter, press repopulate and send me the relevant output.
The dynamic playlist will print out some debug information that might help me to narrow the problem down.
Comment 6 Ralf Engels 2013-02-07 15:25:55 UTC
Git commit 093177d4d8f86098b75d4a2ff28e23d4d0ceba6d by Ralf Engels.
Committed on 06/02/2013 at 18:38.
Pushed by rengels into branch 'master'.

Update Dynamic playlist. Get rid of energy optimizing code

The dynamic playlist always used to optimize the generated tracks
by different ways.
However the new biases all have hard conditions. The user also
used to see it like this and was confused if a "pretty good" result
was generated.

The new algorithm will generate an empty list if the conditions
cannot be fullfilled
Related: bug 286642, bug 304374, bug 301716

M  +4    -0    ChangeLog
M  +10   -37   src/dynamic/Bias.cpp
M  +17   -31   src/dynamic/Bias.h
M  +46   -411  src/dynamic/BiasSolver.cpp
M  +21   -69   src/dynamic/BiasSolver.h
M  +6    -7    src/dynamic/BiasedPlaylist.cpp
M  +2    -1    src/dynamic/BiasedPlaylist.h
M  +7    -2    src/dynamic/TrackSet.cpp
M  +9    -7    src/dynamic/biases/AlbumPlayBias.cpp
M  +2    -2    src/dynamic/biases/AlbumPlayBias.h
M  +14   -15   src/dynamic/biases/EchoNestBias.cpp
M  +2    -3    src/dynamic/biases/EchoNestBias.h
M  +7    -11   src/dynamic/biases/IfElseBias.cpp
M  +3    -4    src/dynamic/biases/IfElseBias.h
M  +51   -39   src/dynamic/biases/PartBias.cpp
M  +3    -5    src/dynamic/biases/PartBias.h
M  +5    -4    src/dynamic/biases/QuizPlayBias.cpp
M  +2    -2    src/dynamic/biases/QuizPlayBias.h
M  +4    -5    src/dynamic/biases/TagMatchBias.cpp
M  +2    -2    src/dynamic/biases/TagMatchBias.h
M  +6    -6    src/services/lastfm/biases/LastFmBias.cpp
M  +2    -3    src/services/lastfm/biases/LastFmBias.h