Qt assertion failure sending events to TIO from wrong thread
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
Critical
|
RJ Skerry-Ryan |
Bug Description
Reported on the forums, reproducible:
Debug [AnalyserQueue 1]: Beat Calculation complete
Fatal [AnalyserQueue 1]: ASSERT failure in QCoreApplicatio
This is caused when we delete a track's BeatGrid/BeatMap from the analyzer thread.
Oddly, setParent_helper should only be called in ~QObject when the object's parent is non-NULL and both BeatMap and BeatGrid have NULL parents.
#7 0x0000000101476fc7 in QCoreApplicatio
#8 0x0000000101a37398 in QApplication:
#9 0x0000000100672039 in MixxxApplicatio
#10 0x00000001014791d4 in QCoreApplicatio
#11 0x000000010147d4f4 in QCoreApplicatio
#12 0x000000010149a06b in QObjectPrivate:
#13 0x0000000101499cdd in QObject::~QObject (this=0x1bca41d10) at kernel/
#14 0x0000000100745308 in BeatMap::~BeatMap (this=0x1bca41d10) at src/track/
#15 0x00000001007453d5 in BeatMap::~BeatMap (this=0x1bca41d10) at src/track/
#16 0x0000000100745428 in BeatMap::~BeatMap (this=0x1bca41d10) at src/track/
#17 0x000000010073fed6 in BeatFactory:
#18 0x000000010074236a in QtSharedPointer
#19 0x00000001007422e9 in QtSharedPointer
#20 0x00000001004753db in QtSharedPointer
#21 0x000000010009c40a in QtSharedPointer
#22 0x000000010009c3af in QtSharedPointer
#23 0x000000010009c385 in QtSharedPointer
#24 0x000000010009c365 in QSharedPointer<
#25 0x000000010009b025 in QSharedPointer<
#26 0x000000010009ab42 in AnalyserBeats:
Changed in mixxx: | |
importance: | Undecided → Critical |
status: | New → Confirmed |
milestone: | none → 1.12.0 |
Changed in mixxx: | |
assignee: | nobody → RJ Ryan (rryan) |
status: | Confirmed → Fix Committed |
Changed in mixxx: | |
status: | Fix Committed → Fix Released |
The event that is sent to the TIO is a QEvent: :ChildRemoved event. I forgot that we parent the BeatGrid/BeatMap to the TIO here: /github. com/mixxxdj/ mixxx/blob/ master/ src/track/ beatfactory. cpp#L18
https:/