Reader deadlock on quick track loading

Bug #594486 reported by RJ Skerry-Ryan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Medium
RJ Skerry-Ryan

Bug Description

Albert saw that while playing a track in deck 2 and quickly loading tracks to deck 1 he was able to get a deadlock which froze the GUI and caused an endless torrent of cache miss messages to hit the terminal.

http://paste2.org/p/878172
http://paste2.org/p/878177

It looks like the GUI is blocked on the EngineBuffer pause lock. Something else must be holding it. This is consistent with the rapid loading of tracks because the pause lock is locked the first time a track load request is received, and unlocked when the reader signals that it has loaded the track. If a second load request was sent before the reader could finish loading the first track, the GUI thread would block waiting for the reader to finish loading the first track. The reader emits a signal when it done loading a track. The reader operates in a different thread than does the engine so the signal is delivered via the Qt event loop. In the case that the pause lock is blocking the main thread, this signal will not be delivered, so the pause lock will never be unlocked.

RJ Skerry-Ryan (rryan)
Changed in mixxx:
milestone: none → 1.8.0
status: New → Confirmed
importance: Undecided → Medium
RJ Skerry-Ryan (rryan)
Changed in mixxx:
assignee: nobody → RJ Ryan (rryan)
status: Confirmed → 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/5420

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.