m4a plugin breaks library scanning
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Invalid
|
Medium
|
William Good | ||
1.8 |
Fix Released
|
Medium
|
William Good |
Bug Description
(This is the short version because I clicked a link on the report bug page thinking it was AJAX and then lost all the nice things I wrote, thanks LP :) )
After scanning m4a/mp4 files for a while, library scanner starts spewing debug info:
Debug: [LibraryScanner 1]: Couldn't mark track "/home/
Heart.m4a" as verified. QSqlError(14, "Unable to fetch row", "unable to open database file")
Debug: [LibraryScanner 1]: Getting SoundSource plugin object for "m4a"
Debug: [LibraryScanner 1]: Decoder Config 2 44100 0 0
Debug: [LibraryScanner 1]: MP4Read failed
Debug: [LibraryScanner 1]: SSM4A::
Debug: [LibraryScanner 1]: SELECT hash failed: QSqlError(14, "Unable to fetch row", "unable to open database file")
Debug: [LibraryScanner 1]: Creating new dirhash failed: QSqlError(14, "Unable to fetch row", "unable to open database file")
Mixxx is being starved of available file descriptors (probably by some libc policy enforcement) because SSM4A::parseHeader calls MP4Read on a file (opening the file) but never closes it with MP4Close, thus we run out of file descriptors, can't open another mp4 file ("MP4Read failed"), and can't open the sqlite database for writing. In the end, mixxx finishes scanning and you get a subset of your m4a files in the library.
Changed in mixxx: | |
status: | Fix Committed → Invalid |
Fixed in 1.8 r2670, trunk not affected since it uses TagLib in SSM4A::parseHeader.