Auto-DJ stops when file is missing but cached
Bug #974640 reported by
Daniel Schürmann
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
Low
|
Daniel Schürmann | ||
1.10 |
Fix Released
|
Low
|
Daniel Schürmann |
Bug Description
TrackInfoObect caches the file exist info.
It may happens that a cached file no longer exists do to a removable media.
In this case, Auto-DJ does not skip the missing track.
The attached patch solves the problem against lp:mixx #3003
Changed in mixxx: | |
milestone: | none → 1.10.1 |
Changed in mixxx: | |
assignee: | nobody → Daniel Schürmann (daschuer) |
importance: | Undecided → Low |
tags: | added: autodj |
Changed in mixxx: | |
status: | New → In Progress |
Changed in mixxx: | |
milestone: | 1.10.1 → 1.11.0 |
Changed in mixxx: | |
status: | In Progress → Fix Committed |
Changed in mixxx: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
My main hesitation with the patch is that it makes a method of TIO hit the disk (And QFileInfo is notoriously slow) so if someone called exists() on a ton of TIO's in a loop or if somebody called exists() in the engine callback we would be doing file I/O without realizing it. I looked at all the callers of TIO::exists() and CachingReader calls it but from the CR thread and not from the engine callback. So I think the patch is fine to add.
Could you use QFile::exists() instead of QFileInfo? I think that QFileInfo looks up much more information from the filesystem that we won't use. Hopefully the implementation of QFile::exists() is cheaper.