Skip to content

Fixed: Empty file crash during analysis#1407

Merged
daschuer merged 3 commits intomixxxdj:masterfrom
uklotzde:empty_file_analyzer_crash
Dec 11, 2017
Merged

Fixed: Empty file crash during analysis#1407
daschuer merged 3 commits intomixxxdj:masterfrom
uklotzde:empty_file_analyzer_crash

Conversation

@uklotzde
Copy link
Copy Markdown
Contributor

https://bugs.launchpad.net/mixxx/+bug/1737537

Obviously wrong. I've added new tests for opening all kinds of empty files. Thereby I noticed that the stereo proxy was actually not used during the SoundSource tests. No new bugs discovered.

@Be-ing
Copy link
Copy Markdown
Contributor

Be-ing commented Dec 11, 2017

LGTM, thank you! Please merge ASAP.

@Be-ing
Copy link
Copy Markdown
Contributor

Be-ing commented Dec 11, 2017

I don't know if this is caused by changes in this branch or other recent changes, but bulk analysis is skipping over a lot of unanalyzed tracks. Is #728 merged with this branch?

@daschuer
Copy link
Copy Markdown
Member

MacOs build fails:

src/mixxx.cpp:128:23: error: member 'create' found in multiple base classes of different types
        StatsManager::create();
        ~~~~~~~~~~~~~~^

@uklotzde
Copy link
Copy Markdown
Contributor Author

#728 is already included.

Just started a bulk analysis, because I was afraid it might be broken. No issues so far, both already analyzed and new tracks are analyzed and updated one after the other. Tracks that already have been analyzed are skipped when stopping and restarting the analysis.

@daschuer
Copy link
Copy Markdown
Member

The build error seems to be unrelated. So we can merge this. Thank you.

@daschuer
Copy link
Copy Markdown
Member

LGTM

@daschuer daschuer merged commit a7d551e into mixxxdj:master Dec 11, 2017
@uklotzde
Copy link
Copy Markdown
Contributor Author

macOS build has already been upgraded to Qt 5.10. This is getting disconnected more and more from our regular Qt 4 builds.

@Be-ing
Copy link
Copy Markdown
Contributor

Be-ing commented Dec 12, 2017

Hmm, I'm not sure what is going on with batch analysis. If I select some files and analyze them, it works, but if I select my whole library it will not analyze. It seems that some files are somehow causing the whole analysis operation to be skipped.

Debug [AnalyzerQueue 1]: AnalyzerQueue - Analyzing "In the Wake of Forever (feat. Kristin Callahan)" "/home/be/music/yes/Aligning Mind
s - 2013 - My Heart Is Love/09 - In the Wake of Forever (feat. Kristin Callahan).flac" 
Debug [AnalyzerQueue 1]: SoundSourceProxy - SoundSourceProvider "Xiph.org libFLAC" created a SoundSource for file "file:///home/be/mus
ic/yes/Aligning Minds - 2013 - My Heart Is Love/09 - In the Wake of Forever (feat. Kristin Callahan).flac" of type "flac" 
Debug [AnalyzerQueue 1]: SoundSourceProxy - Opening file "file:///home/be/music/yes/Aligning Minds - 2013 - My Heart Is Love/09 - In t
he Wake of Forever (feat. Kristin Callahan).flac" with provider "Xiph.org libFLAC" using mode Strict 
Debug [AnalyzerQueue 1]: AnalysisDAO fetched 2 analyses, 3215999 bytes for track 1785 in 34 ms 
Debug [AnalyzerQueue 1]: Reading waveform from byte array: allSignalSize 394416 visualSampleRate 441 audioVisualRatio 100 
Debug [AnalyzerQueue 1]: Reading waveform from byte array: allSignalSize 3842 visualSampleRate 4.29354 audioVisualRatio 10271.2 
Debug [AnalyzerQueue 1]: AnalyzerWaveform - loadStored - Stored waveform loaded 
Debug [AnalyzerQueue 1]: Beat calculation will not start 
Debug [AnalyzerQueue 1]: Keys version/sub-version unchanged since previous analysis. Not analyzing. 
Debug [AnalyzerQueue 1]: Key calculation will not start. 
Debug [AnalyzerQueue 1]: AnalyzerQueue - Skipping track analysis because no analyzer initialized. 
Debug [Thread (pooled)]: SoundSourceProxy - SoundSourceProvider "Xiph.org libFLAC" created a SoundSource for file "file:///home/be/music/yes/A Path Untold - Secret Subtle Light/A Path Untold - Secret Subtle Light - 01 Consciousness Aqueduct.flac" of type "flac" 
Debug [Thread (pooled)]: MetadataSourceTagLib - Importing cover art from file "/home/be/music/yes/A Path Untold - Secret Subtle Light/A Path Untold - Secret Subtle Light - 01 Consciousness Aqueduct.flac" with type 2 
Debug [Thread (pooled)]: TagLib - VorbisComment picture list is empty 
Debug [Thread (pooled)]: TagLib - No cover art found in VorbisComment tag 
Debug [Main]: AnalysisLibraryTableModel(0x4446a100) select() took 31 ms 0 
Debug [Main]: WSearchLineEdit::restoreSearch( "" ) 
Debug [Main]: AnalysisLibraryTableModel(0x4446a100) select() took 72 ms 3783
Debug [Main]: TrackCache: Resolving track by id 1860 
Debug [Main]: TrackCache: Resolving track by canonical location "/home/be/music/yes/Tipper-Dissolve(Out)[Vinyl]FLAC/Tipper-Dissolve(Out)-A2   Dissolve (Out).flac" 
Debug [Main]: TrackCache: Cache miss - inserting new track into cache ["/home/be/music/yes/Tipper-Dissolve(Out)[Vinyl]FLAC/Tipper-Dissolve(Out)-A2   Dissolve (Out).flac" | "/home/be/music/yes/Tipper-Dissolve(Out)[Vinyl]FLAC/Tipper-Dissolve(Out)-A2   Dissolve (Out).flac" | 1860] 
Debug [Main]: BeatFactory::loadBeatsFromByteArray could not parse serialized beats. 
Debug [Main]: SoundSourceProxy - SoundSourceProvider "Xiph.org libFLAC" created a SoundSource for file "file:///home/be/music/yes/Tipper-Dissolve(Out)[Vinyl]FLAC/Tipper-Dissolve(Out)-A2   Dissolve (Out).flac" of type "flac" 
Debug [Main]: SoundSourceProxy - Skip parsing of track metadata and cover art from file "file:///home/be/music/yes/Tipper-Dissolve(Out)[Vinyl]FLAC/Tipper-Dissolve(Out)-A2   Dissolve (Out).flac" 
Debug [Main]: BaseTrackCache(0x4280210) updateIndexWithQuery took 0 ms 
Debug [Main]: WCoverArt::slotCoverFound WCoverArt(0x441f9720, name = "LibraryCoverArt")  "CoverInfo(NONE,GUESSED,,0x0,/home/be/music/yes/Tipper-Dissolve(Out)[Vinyl]FLAC/Tipper-Dissolve(Out)-A2   Dissolve (Out).flac,)" QSize(0, 0) 
Debug [Main]: TrackCache: Resolving track by id 3646 
Debug [Main]: TrackCache: Resolving track by canonical location "/home/be/music/yes/xo-re - A-B - the journey/xo-re - A-B - the journey - 01 A-B.flac" 
Debug [Main]: TrackCache: Cache miss - inserting new track into cache ["/home/be/music/yes/xo-re - A-B - the journey/xo-re - A-B - the journey - 01 A-B.flac" | "/home/be/music/yes/xo-re - A-B - the journey/xo-re - A-B - the journey - 01 A-B.flac" | 3646] 
Debug [Main]: BeatFactory::loadBeatsFromByteArray could not parse serialized beats. 
Debug [Main]: SoundSourceProxy - SoundSourceProvider "Xiph.org libFLAC" created a SoundSource for file "file:///home/be/music/yes/xo-re - A-B - the journey/xo-re - A-B - the journey - 01 A-B.flac" of type "flac" 
Debug [Main]: SoundSourceProxy - Skip parsing of track metadata and cover art from file "file:///home/be/music/yes/xo-re - A-B - the journey/xo-re - A-B - the journey - 01 A-B.flac" 
Debug [Main]: BaseTrackCache(0x4280210) updateIndexWithQuery took 0 ms

This pattern at the end of the log repeats for the rest of the library. Maybe this has something to do with the TrackCache: Cache miss messages?

@uklotzde
Copy link
Copy Markdown
Contributor Author

@Be-ing Indeed. Thanks for the logs and additional information. I will revisit the analyzer framwork ASAP!

@uklotzde
Copy link
Copy Markdown
Contributor Author

@Be-ing Your logs indicate that the AnalyzerQueue thread has been paused (by blocking) after skipping the last track during analysis. Unfortunately there are no dedicated log messages in this situation, only Stats events are generated before/after blocking. The logs from the Main thread seem to be unrelated. I will add some debug log entries to monitor activities in the analysis thread.

I'm not able to stop the batch analysis. All files get analyzed, already analyzed files are skipped. I've tried various settings for re-analysis, deleted the bpm/beatgrid for implicit re-analysis, enabled/disabled export of file tags, inserted a 0-byte file into the batch.

I even tried to throw an exception in doAnalysis(). But this will abort Mixxx instantly and cannot be the cause.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants