Crash in AnalyzerEbur128
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Build: master (WriteAudioTags) using version 1.0.2 of libebur128 that comes with Fedora 23
The following crash happened only once. It's not reproducible and probably caused by a race condition:
Debug [CachingReaderW
Debug [AnalyzerQueue 1]: AnalysisDAO fetched 2 analyses, 1384987 bytes for track 172160 in 32 ms
Debug [AnalyzerQueue 1]: Reading waveform from byte array: allSignalSize 148886 visualSampleRate 441 audioVisualRatio 100
Debug [AnalyzerQueue 1]: Reading waveform from byte array: allSignalSize 3840 visualSampleRate 11.3742 audioVisualRatio 3877.2
Debug [AnalyzerQueue 1]: AnalyzerWavefor
Debug [AnalyzerQueue 1]: Keys version/sub-version unchanged since previous analysis. Not analyzing.
Debug [AnalyzerQueue 1]: Interrupting analysis to give preference to a loaded track.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff91703700 (LWP 5226)]
0x00007ffff7681c47 in ebur128_destroy () from /usr/lib64/
(gdb) bt
#0 0x00007ffff7681c47 in ebur128_destroy () at /usr/lib64/
#1 0x00000000004b3bdd in AnalyzerEbur128
#2 0x00000000004bfde5 in AnalyzerQueue:
at src/analyzer/
#3 0x00007ffff431838c in QThreadPrivate:
at /usr/lib64/
#4 0x00007ffff1d1e60a in start_thread () at /usr/lib64/
#5 0x00007fffeeeb7a4d in clone () at /usr/lib64/
Changed in mixxx: | |
status: | In Progress → Fix Committed |
Changed in mixxx: | |
milestone: | none → 2.1.0 |
Changed in mixxx: | |
status: | Fix Committed → Fix Released |
The initialization code in AnalyzerEbur128 is not really safe even in the single-threaded case due to some redundancies. I will fix this.