deck stopped playing on 2.1.0 git master

Bug #1565382 reported by Be
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Undecided
Unassigned

Bug Description

As I was playing with current git master 2.1.0, a deck stopped playing. I can't identify anything in particular that triggered this. The waveforms kept moving forward for the deck but there was no sound output from the deck and the level meters showed no signal from the deck. I quit Mixxx and played the track that was loaded at the time again and it played fine. In the log I saw:

Warning [Engine]: DEBUG ASSERT: "pChunk->getState() != CachingReaderChunkForOwner::READ_PENDING" in file src/cachingreader.cpp, line 83
Warning [Engine]: DEBUG ASSERT: "READ_PENDING != m_state" in file src/cachingreaderchunk.cpp, line 146
Warning [Engine]: DEBUG ASSERT: "READ_PENDING == m_state" in file src/cachingreaderchunk.h, line 132
Warning [Engine]: DEBUG ASSERT: "pChunk->getState() != CachingReaderChunkForOwner::READ_PENDING" in file src/cachingreader.cpp, line 83
Warning [Engine]: DEBUG ASSERT: "READ_PENDING != m_state" in file src/cachingreaderchunk.cpp, line 146
Warning [Engine]: DEBUG ASSERT: "READ_PENDING == m_state" in file src/cachingreaderchunk.h, line 132
Warning [Engine]: DEBUG ASSERT: "pChunk->getState() != CachingReaderChunkForOwner::READ_PENDING" in file src/cachingreader.cpp, line 83
Warning [Engine]: DEBUG ASSERT: "READ_PENDING != m_state" in file src/cachingreaderchunk.cpp, line 146
Warning [Engine]: DEBUG ASSERT: "READ_PENDING == m_state" in file src/cachingreaderchunk.h, line 132
Debug [Engine]: ERROR: No LRU chunk to free in allocateChunkExpireLRU.
Debug [Engine]: ERROR: Couldn't allocate spare CachingReaderChunk to make CachingReaderChunkReadRequest.

The last 2 lines kept repeating until I forcibly quit Mixxx (Control + C).

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

I've never seen this before, but will have a look at the code.

Any information about what you did before the error happened? If the file is not corrupt then there must be an edge case in the CachingReader that we might have missed.

Changed in mixxx:
assignee: nobody → Uwe Klotz (uklotzde)
Revision history for this message
Be (be.ing) wrote :

I was working on the Hercules P32 mapping (https://github.com/be-ing/mixxx/tree/hercules_p32_mapping ) when this happened. I suppose it's possible something in the script triggered this, but I doubt it. I don't recall doing anything unusual when this started. However, I did notice some periodic pops that sounded like xruns for 30-60 seconds before this happened and when I looked at Mixxx I saw some unusual spikes in the audio buffer meter that I couldn't explain.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

I think I found the cause: We must not reuse chunks in the state READ_PENDING while they are still accessed by a worker. Those chunks must not be added to the MRU/LRU list while the worker is reading.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :
Changed in mixxx:
status: New → Fix Committed
Changed in mixxx:
milestone: none → 2.1.0
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/8506

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.