View Issue Details

IDProjectCategoryView StatusLast Update
0002609MMW v4Properties/Auto-Toolspublic2009-06-06 14:30
Reporterrusty Assigned To 
PriorityurgentSeveritymajorReproducibilitysometimes
Status resolvedResolutionfixed 
Fixed in Version3.1 
Summary0002609: Tags Sometimes Fail to Update ( tag queue)
DescriptionA couple of tag-related problems have been reported at:
http://www.mediamonkey.com/forum/viewtopic.php?t=10911 http://www.mediamonkey.com/forum/viewtopic.php?t=11587
http://www.mediamonkey.com/forum/viewtopic.php?t=11716

The common factor seems to be that tagging occasionally fails when multiple tagging operations occur concurrently. I tested this out numerous times and was only able to trigger the error once, in a manner that might be different from that reported above:

1) Select the contents of an Album in the Locations node
2) Analyze volume for all tracks in the album
3) Auto-tag from Amazon while volume leveling is in progress
-->One of the tracks in the album did not update with the year! I verified in the Album node as well--the Year did not get saved to one of the tracks. I'm not sure if this is the same bug or not because in my case, not even the Database was updated, whereas for most of the reports above, it seems that the DB was updated but the tag wasn't.
Additional Informationhttp://www.mediamonkey.com/forum/viewtopic.php?t=22629
TagsNo tags attached.
Fixed in build1200

Relationships

related to 0002534 closedjiri Rating tracks eventually results in a crash 
related to 0005214 feedbackjiri Unsyncronized Tags node may provide false results 
related to 0008356 new Queing of file operations 

Activities

jiri

2006-08-25 15:14

administrator   ~0007780

Last edited: 2006-12-08 19:05

A simple way to reproduce:
1) Go to a tree node.
2) Select all tracks there and Analyze volume.
3) Go to another node and return to the node from step 1).
4) Change rating of some songs in the node.
5) When leveling is calculated, these songs lose their rating change.

A fix for this is quite problematic, because we will have to make a 'pool' of all TSongListData structures in memory, and when a track info will be about to be read from DB, it will be first checked for existence in the 'pool'. The pool could be a hash table indexed by track ID or track Path, it has to be thread safe, etc.

Although it's a little limiting, pool based on track ID seems to be better, it could be searched only from one place (when reading tracks from DB) and so the whole implementation could be much cleaner a safer.

rusty

2007-10-10 04:47

administrator   ~0011251

Similar repro steps to the above:
http://www.mediamonkey.com/forum/viewtopic.php?p=107217#107217

rusty

2007-12-09 14:29

administrator   ~0012418

Setting to 'urgent'. Since auto-analyze processes tracks in small batches, the likelihood of this occurring is minimal.

rusty

2009-06-05 17:15

administrator   ~0018204

The pool/queue should also account for the file monitor. i.e. if the file monitor detects a change in between tagging operations, the operation to update the DB should be placed at the appropriate spot in the queue to prevent a tagging operation from losing edits made externally to MM.
http://www.mediamonkey.com/forum/viewtopic.php?f=6&t=40171

jiri

2009-06-06 14:30

administrator   ~0018213

The original issue described here was fixed quite some time ago during 3.1 development.

As for the last note, I don't think we can do much about it, as I described in the forum post.