m4a plugin breaks library scanning

Bug #676247 reported by William Good
6
This bug affects 1 person
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/jason/Music/Britney Spears/_..Baby One More Time/10 E-Mail My
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::initializeDecoder failed "/home/jason/Music/Britney Spears/_..Baby One More Time/10 E-Mail My Heart.m4a" with status: -4
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.

Revision history for this message
William Good (bkgood) wrote :

Fixed in 1.8 r2670, trunk not affected since it uses TagLib in SSM4A::parseHeader.

Changed in mixxx:
status: Confirmed → Invalid
status: Invalid → Fix Committed
Revision history for this message
William Good (bkgood) wrote :

Only partially related to this, the m4a plugin now runs cleanly in valgrind (or does as far as I've seen).

William Good (bkgood)
Changed in mixxx:
status: Fix Committed → Invalid
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/5660

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.