Clean up mutexes/locks in MIDI subsystem

Bug #683119 reported by Sean M. Pappalardo
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
High
Sean M. Pappalardo

Bug Description

When we originally implemented MIDI scripting, we were getting segfaults when lots of MIDI data/script functions were running. We now know that this was due to the wrong threads calling the script functions (specifically the MidiDevice thread was directly calling MidiScriptEngine functions.) At the time, we added a bunch of mutexes to the MidiScriptEngine. Once the real problem was discovered, I fixed it back in the features_HSS1394 branch by using signals/slots, but the mutexes remain and I believe are the source for any random MIDI-related deadlocks.

This bug is to remind me to remove all of those, since all MidiScriptEngine functions should only be called by the MidiScriptEngine thread. (I might add ASSERTs to ensure this.)

Tags: midi deadlock
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

This might be responsible for bug #342952, so re-check that after this is fixed.

Changed in mixxx:
importance: Medium → High
status: Triaged → Confirmed
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Is this going to happen for 1.10.0 or should we clear the milestone?

Changed in mixxx:
milestone: 1.10.0 → none
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Fixed in controllerAbstraction, as the MIDI subsystem has been completely revamped.

Changed in mixxx:
status: Confirmed → In Progress
milestone: none → 1.11.0
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: In Progress → Fix Committed
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Fix Committed → Fix Released
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/5685

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.