Reader deadlock on quick track loading

Bug #594486 reported by RJ Skerry-Ryan on 2010-06-15
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
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) on 2010-06-15
Changed in mixxx:
milestone: none → 1.8.0
status: New → Confirmed
importance: Undecided → Medium
RJ Skerry-Ryan (rryan) on 2010-06-15
Changed in mixxx:
assignee: nobody → RJ Ryan (rryan)
status: Confirmed → Fix Committed
RJ Skerry-Ryan (rryan) on 2010-10-05
Changed in mixxx:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers