Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix stopped Auto DJ. #4698

Merged
merged 21 commits into from
May 10, 2022
Merged

Fix stopped Auto DJ. #4698

merged 21 commits into from
May 10, 2022

Conversation

daschuer
Copy link
Member

@daschuer daschuer commented Mar 14, 2022

This fixes unintended Auto DJ stops due to transitions during track loading and deck orientation.
It fixes https://bugs.launchpad.net/mixxx/+bug/1893197 and https://bugs.launchpad.net/mixxx/+bug/1961970

This is on top of #4693 which should be merged first.

@daschuer daschuer force-pushed the lp1893197 branch 2 times, most recently from 70b8edd to 83abbb4 Compare March 14, 2022 16:54
@daschuer
Copy link
Member Author

John Abraham has confirmed the fix here: https://bugs.launchpad.net/mixxx/+bug/1961970

@daschuer
Copy link
Member Author

After #4693 was merged, I have rebased this on upstream/2.3 and it is ready for merge as well.

Comment on lines 1611 to 1619
DeckAttributes* AutoDJProcessor::getLeftDeck() {
// find first left deck
foreach (DeckAttributes* pDeck, m_decks) {
if (pDeck->isLeft()) {
return pDeck;
}
}
return nullptr;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and #include <algorithm> and then vice-versa for the right equivalent.

Suggested change
DeckAttributes* AutoDJProcessor::getLeftDeck() {
// find first left deck
foreach (DeckAttributes* pDeck, m_decks) {
if (pDeck->isLeft()) {
return pDeck;
}
}
return nullptr;
}
DeckAttributes* const AutoDJProcessor::getLeftDeck() {
const auto candidate = std::find_if(m_decks.cbegin(), m_decks.cend(), [](const auto pDeck){
return pDeck->isLeft()
});
return candidate == m_decks.cend() ? nullptr : candidate;
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also these methods are used a lot. Linear searching vs constant-time indexing is not ideal but manageable I guess as long the number of decks is low.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have decided to use a normal range based loop. This way we get around the temporary "candidate" variable.

Comment on lines 550 to 552
foreach (DeckAttributes* pDeck, m_decks) {
pDeck->disconnect(this);
}
Copy link
Member

@Swiftb0y Swiftb0y Mar 21, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Qt, foreach macro has been deprecated since C++11 https://doc.qt.io/qt-6/foreach-keyword.html

Suggested change
foreach (DeckAttributes* pDeck, m_decks) {
pDeck->disconnect(this);
}
for (DeckAttributes* pDeck : m_decks) {
pDeck->disconnect(this);
}

Comment on lines 1454 to 1457
//if constexpr (sDebug) {
qDebug() << this << "playerTrackLoaded()" << pDeck->group << "but not a toDeck";
qDebug() << this << "playerTrackLoaded()" << fromDeck->group << "but not a toDeck";
//}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delete commented code?

Comment on lines 1581 to 1583
if (!pLeftDeck || !pRightDeck) {
return;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its inconsistent whether this case is possible (and expected under some circumstances) or an error case where a VERIFY_OR_DEBUG_ASSERT would be more appropriate.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot assert it, because we have controls that allow to reassign the deck to a xfader side.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this code is only passed when the Auto DJ is enabled and this should only be possible when we have a left and a right deck. That why I have used an assertion here in the first place. Thinking about that, we may have the case if a user changes the deck alignment during the AutoDJ run. This is not tested.

I think I need to check that and remove the assertion as well.

@daschuer
Copy link
Member Author

Conflict resolved. Ready to merge? @Swiftb0y

@Swiftb0y Swiftb0y dismissed their stale review April 23, 2022 15:09

I'm not qualified / familiar enough with the Auto DJ code to confortably say that the new changes work as intended

@daschuer
Copy link
Member Author

Ok, so we need a manual test. @Swiftb0y: Can you at leady confirm that your findings are fixed?

@daschuer
Copy link
Member Author

Fortunately we have already the confirmation that this works https://bugs.launchpad.net/mixxx/+bug/1961970/comments/10
Is this sufficient for a merge?

@Swiftb0y
Copy link
Member

While doing some basic testing and comparing with the state of 2.3, I found two regressions:
The first one can be reproduced like this:

  1. Load at least 2 tracks into AutoDJ
  2. Enable AutoDJ
  3. Change the orientation of the toDeck to something non-default
  4. "Trigger transistion to next track" button will be greyed out, however, autoDJ will still fade when the end of track is reached.

The toDeck won't be started though, so the track will just fade out.
I'm not sure if thats the intended behavior. The AutoDJ stays on in that state and might or might not behave as intended. I was able to get it to start up again sometimes, but sometimes it also just stayed broken, requiring to be disabled and reenabled again.

I was also also to reliably hit a debug assert: DEBUG ASSERT: "toDeck" in function void AutoDJProcessor::crossfaderChanged(double) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp:595

This can be reproduced by enabling autoDJ putting both decks into the "ignore crossfader orientation" and then manually moving the crossfader.
backtrace (only the very bottom one seems relevant):

Thread 87 (Thread 0x7ffe277f6640 (LWP 56963) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 86 (Thread 0x7ffe27ff7640 (LWP 56962) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 85 (Thread 0x7ffe287f8640 (LWP 56961) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 84 (Thread 0x7ffe28ff9640 (LWP 56960) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 83 (Thread 0x7ffe297fa640 (LWP 56930) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 82 (Thread 0x7ffe29ffb640 (LWP 56929) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 81 (Thread 0x7ffe2a7fc640 (LWP 56927) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 80 (Thread 0x7ffe2affd640 (LWP 56926) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 79 (Thread 0x7ffe2b7fe640 (LWP 56925) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 78 (Thread 0x7ffe2bfff640 (LWP 56924) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 77 (Thread 0x7ffe48ff9640 (LWP 56921) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 76 (Thread 0x7ffe497fa640 (LWP 56920) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 75 (Thread 0x7ffe49ffb640 (LWP 56919) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 74 (Thread 0x7ffe4a7fc640 (LWP 56918) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 73 (Thread 0x7ffe4affd640 (LWP 56917) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 72 (Thread 0x7ffe4b7fe640 (LWP 56916) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 71 (Thread 0x7ffe4bfff640 (LWP 56915) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 70 (Thread 0x7ffe68ff9640 (LWP 56914) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 69 (Thread 0x7ffe697fa640 (LWP 56912) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0xf583728) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 21
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 68 (Thread 0x7ffe69ffb640 (LWP 56911) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0xeb5b578) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 20
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 67 (Thread 0x7ffe6a7fc640 (LWP 56910) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0xe1334d8) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 19
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 66 (Thread 0x7ffe6affd640 (LWP 56909) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0xd70b4b8) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 18
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 65 (Thread 0x7ffe6b7fe640 (LWP 56908) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0xcce3288) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 17
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 64 (Thread 0x7ffe6bfff640 (LWP 56907) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0xc2bb798) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 16
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 63 (Thread 0x7ffe88ff9640 (LWP 56906) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0xb893e38) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 15
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 62 (Thread 0x7ffe897fa640 (LWP 56905) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0xae6c558) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 14
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 61 (Thread 0x7ffe89ffb640 (LWP 56904) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0xa444f38) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 13
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 60 (Thread 0x7ffe8a7fc640 (LWP 56903) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x9a1dcf8) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 12
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 59 (Thread 0x7ffe8affd640 (LWP 56902) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x8ff6c68) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 11
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 58 (Thread 0x7ffe8b7fe640 (LWP 56901) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x85d85b8) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 10
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 57 (Thread 0x7ffe8bfff640 (LWP 56900) "Thread (pooled)"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387c1b4 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff6094f9a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00007ffff6092794 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 56 (Thread 0x7ffea880f640 (LWP 56899) "Thread (pooled)"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387c1b4 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff6094f9a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00007ffff6092794 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 55 (Thread 0x7ffea9010640 (LWP 56898) "Thread (pooled)"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387c1b4 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff6094f9a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00007ffff6092794 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 54 (Thread 0x7ffea9811640 (LWP 56897) "Thread (pooled)"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387c1b4 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff6094f9a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00007ffff6092794 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 53 (Thread 0x7ffeaa012640 (LWP 56896) "Thread (pooled)"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387c1b4 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff6094f9a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00007ffff6092794 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 52 (Thread 0x7ffeaa813640 (LWP 56895) "Thread (pooled)"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387c1b4 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff6094f9a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00007ffff6092794 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 51 (Thread 0x7ffeab014640 (LWP 56894) "Thread (pooled)"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387c1b4 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff6094f9a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00007ffff6092794 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 50 (Thread 0x7ffecce38640 (LWP 56893) "Thread (pooled)"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387c1b4 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff6094f9a in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00007ffff6092794 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 49 (Thread 0x7ffeabfff640 (LWP 56892) "libusb_event"):
#0  0x00007ffff38f479f in poll () at /lib64/libc.so.6
#1  0x00007ffff3d4b8d2 in linux_udev_event_thread_main () at /lib64/libusb-1.0.so.0
#2  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#3  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 48 (Thread 0x7ffecd7fa640 (LWP 56891) "VSync"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000005c29aa in VSyncThread::run() (this=0x4b9b640) at /home/swiftb0y/Sourcerepositories/mixxx/src/waveform/vsyncthread.cpp:75
        remainingForSwap = 30991
        lastSwapTime = 21453
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 47 (Thread 0x7ffecdffb640 (LWP 56890) "mixxx:gdrv0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 46 (Thread 0x7ffece7fc640 (LWP 56889) "Controller"):
#0  0x00007ffff38f479f in poll () at /lib64/libc.so.6
#1  0x00007ffff5d1c29c in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#2  0x00007ffff5cc48a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3  0x00007ffff629dbb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#4  0x00007ffff624b1e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#5  0x00007ffff608e2ca in QThread::exec() () at /lib64/libQt5Core.so.5
#6  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#8  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 45 (Thread 0x7ffeceffd640 (LWP 56888) "AnalyzerThread"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff3bc56a0 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /lib64/libstdc++.so.6
#3  0x0000000000bb91d3 in WorkerThread::awaitWorkItemsFetched() (this=0x4ad2400) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/workerthread.cpp:158
        fetchWorkResult = WorkerThread::TryFetchWorkItemsResult::Idle
        locked = {_M_device = 0x4ad2430, _M_owns = true}
#4  0x0000000000bc382d in AnalyzerThread::doRun() (this=0x4ad2400) at /home/swiftb0y/Sourcerepositories/mixxx/src/analyzer/analyzerthread.cpp:128
        pAnalysisDao = std::unique_ptr<AnalysisDao> = {get() = 0x0}
        dbConnectionPooler = {m_pDbConnectionPool = std::shared_ptr<mixxx::DbConnectionPool> (use count 13, weak count 0) = {get() = 0x19210c0}}
        enforceBpmDetection = false
        __PRETTY_FUNCTION__ = "virtual void AnalyzerThread::doRun()"
        openParams = {m_signalInfo = {m_channelCount = {static kValueDefault = 0 '\000', static kValueMin = 1 '\001', m_value = 2 '\002'}, m_sampleRate = {static kValueDefault = 0, static kValueMin = 8000, static kValueMax = 192000, m_value = 0}}}
#5  0x0000000000bb8d03 in WorkerThread::run() (this=0x4ad2400) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/workerthread.cpp:72
        threadNumber = 4
        threadName = "AnalyzerThread 3 #4"
#6  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#8  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 44 (Thread 0x7ffecf7fe640 (LWP 56887) "AnalyzerThread"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff3bc56a0 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /lib64/libstdc++.so.6
#3  0x0000000000bb91d3 in WorkerThread::awaitWorkItemsFetched() (this=0x4ad1e80) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/workerthread.cpp:158
        fetchWorkResult = WorkerThread::TryFetchWorkItemsResult::Idle
        locked = {_M_device = 0x4ad1eb0, _M_owns = true}
#4  0x0000000000bc382d in AnalyzerThread::doRun() (this=0x4ad1e80) at /home/swiftb0y/Sourcerepositories/mixxx/src/analyzer/analyzerthread.cpp:128
        pAnalysisDao = std::unique_ptr<AnalysisDao> = {get() = 0x0}
        dbConnectionPooler = {m_pDbConnectionPool = std::shared_ptr<mixxx::DbConnectionPool> (use count 13, weak count 0) = {get() = 0x19210c0}}
        enforceBpmDetection = false
        __PRETTY_FUNCTION__ = "virtual void AnalyzerThread::doRun()"
        openParams = {m_signalInfo = {m_channelCount = {static kValueDefault = 0 '\000', static kValueMin = 1 '\001', m_value = 2 '\002'}, m_sampleRate = {static kValueDefault = 0, static kValueMin = 8000, static kValueMax = 192000, m_value = 0}}}
#5  0x0000000000bb8d03 in WorkerThread::run() (this=0x4ad1e80) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/workerthread.cpp:72
        threadNumber = 3
        threadName = "AnalyzerThread 2 #3"
#6  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#8  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 43 (Thread 0x7ffecffff640 (LWP 56886) "AnalyzerThread"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff3bc56a0 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /lib64/libstdc++.so.6
#3  0x0000000000bb91d3 in WorkerThread::awaitWorkItemsFetched() (this=0x4ad1b40) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/workerthread.cpp:158
        fetchWorkResult = WorkerThread::TryFetchWorkItemsResult::Idle
        locked = {_M_device = 0x4ad1b70, _M_owns = true}
#4  0x0000000000bc382d in AnalyzerThread::doRun() (this=0x4ad1b40) at /home/swiftb0y/Sourcerepositories/mixxx/src/analyzer/analyzerthread.cpp:128
        pAnalysisDao = std::unique_ptr<AnalysisDao> = {get() = 0x0}
        dbConnectionPooler = {m_pDbConnectionPool = std::shared_ptr<mixxx::DbConnectionPool> (use count 13, weak count 0) = {get() = 0x19210c0}}
        enforceBpmDetection = false
        __PRETTY_FUNCTION__ = "virtual void AnalyzerThread::doRun()"
        openParams = {m_signalInfo = {m_channelCount = {static kValueDefault = 0 '\000', static kValueMin = 1 '\001', m_value = 2 '\002'}, m_sampleRate = {static kValueDefault = 0, static kValueMin = 8000, static kValueMax = 192000, m_value = 0}}}
#5  0x0000000000bb8d03 in WorkerThread::run() (this=0x4ad1b40) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/workerthread.cpp:72
        threadNumber = 2
        threadName = "AnalyzerThread 1 #2"
#6  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#8  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 42 (Thread 0x7ffedccc1640 (LWP 56885) "AnalyzerThread"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff3bc56a0 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /lib64/libstdc++.so.6
#3  0x0000000000bb91d3 in WorkerThread::awaitWorkItemsFetched() (this=0x4ad17c0) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/workerthread.cpp:158
        fetchWorkResult = WorkerThread::TryFetchWorkItemsResult::Idle
        locked = {_M_device = 0x4ad17f0, _M_owns = true}
#4  0x0000000000bc382d in AnalyzerThread::doRun() (this=0x4ad17c0) at /home/swiftb0y/Sourcerepositories/mixxx/src/analyzer/analyzerthread.cpp:128
        pAnalysisDao = std::unique_ptr<AnalysisDao> = {get() = 0x0}
        dbConnectionPooler = {m_pDbConnectionPool = std::shared_ptr<mixxx::DbConnectionPool> (use count 13, weak count 0) = {get() = 0x19210c0}}
        enforceBpmDetection = false
        __PRETTY_FUNCTION__ = "virtual void AnalyzerThread::doRun()"
        openParams = {m_signalInfo = {m_channelCount = {static kValueDefault = 0 '\000', static kValueMin = 1 '\001', m_value = 2 '\002'}, m_sampleRate = {static kValueDefault = 0, static kValueMin = 8000, static kValueMax = 192000, m_value = 0}}}
#5  0x0000000000bb8d03 in WorkerThread::run() (this=0x4ad17c0) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/workerthread.cpp:72
        threadNumber = 1
        threadName = "AnalyzerThread 0 #1"
#6  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#8  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 41 (Thread 0x7ffedd4c2640 (LWP 56884) "BrowseThread"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff609503b in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x0000000000ad7a89 in BrowseThread::run() (this=0x4a02e30) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/browse/browsethread.cpp:82
        trace = {_vptr.Trace = 0x11b18e0 <vtable for Trace+16>, m_tag = "BrowseThread", m_writeToStdout = false, m_time = true, m_timer = {t1 = 10377, t2 = 323886}}
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 40 (Thread 0x7ffeddcc3640 (LWP 56883) "LibraryScanner "):
#0  0x00007ffff38f479f in poll () at /lib64/libc.so.6
#1  0x00007ffff5d1c29c in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#2  0x00007ffff5cc48a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3  0x00007ffff629dbb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#4  0x00007ffff624b1e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#5  0x00007ffff608e2ca in QThread::exec() () at /lib64/libQt5Core.so.5
#6  0x0000000000b83a5a in LibraryScanner::run() (this=0x7fffd8008910) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/scanner/libraryscanner.cpp:158
        trace = {_vptr.Trace = 0x11b18e0 <vtable for Trace+16>, m_tag = "LibraryScanner", m_writeToStdout = false, m_time = true, m_timer = {t1 = 10375, t2 = 815151647}}
        dbConnectionPooler = {m_pDbConnectionPool = std::shared_ptr<mixxx::DbConnectionPool> (use count 13, weak count 0) = {get() = 0x19210c0}}
        dbConnection = {d = 0x7ffed400bad0}
#7  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#8  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#9  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 39 (Thread 0x7ffedf260640 (LWP 56882) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x47850e8) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 9
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 38 (Thread 0x7ffedffff640 (LWP 56881) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x46069f8) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 8
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 37 (Thread 0x7ffef144d640 (LWP 56880) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x44895c8) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 7
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 36 (Thread 0x7ffef24fd640 (LWP 56879) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x430c948) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 6
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 35 (Thread 0x7ffef35ad640 (LWP 56878) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x418fda8) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 5
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 34 (Thread 0x7fff00a0c640 (LWP 56872) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x3ef8038) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 4
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 33 (Thread 0x7fff01e36640 (LWP 56871) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x14ba868) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x7ffff387c840 <start_thread>}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 3
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 32 (Thread 0x7fff03260640 (LWP 56870) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x150ff58) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x3120b30}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 2
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 31 (Thread 0x7fff03fff640 (LWP 56869) "CachingReaderWo"):
#0  0x00007ffff38f9ecd in syscall () at /lib64/libc.so.6
#1  0x00007ffff60913ee in QSemaphore::acquire(int) () at /lib64/libQt5Core.so.5
#2  0x00000000009f10eb in CachingReaderWorker::run() (this=0x14fc758) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:119
        request = {chunk = 0x37255e0}
        lastId = {<QAtomicInteger<int>> = {<QBasicAtomicInteger<int>> = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 21}, static is_always_lock_free = true}}, <No data fields>}, <No data fields>}
        id = 1
#3  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 30 (Thread 0x7fff11977640 (LWP 56868) "VinylControlPro"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff609503b in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00000000006aa7a1 in VinylControlProcessor::run() (this=0x3439ef0) at /home/swiftb0y/Sourcerepositories/mixxx/src/vinylcontrol/vinylcontrolprocessor.cpp:136
        id = 1
        __PRETTY_FUNCTION__ = "virtual void VinylControlProcessor::run()"
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 29 (Thread 0x7fff12487640 (LWP 56867) "mixxx"):
#0  0x00007ffff3900c3e in epoll_wait () at /lib64/libc.so.6
#1  0x00007ffff7fb5b98 in impl_pollfd_wait () at /usr/lib64/spa-0.2/support/libspa-support.so
#2  0x00007ffff7fa92e4 in loop_iterate () at /usr/lib64/spa-0.2/support/libspa-support.so
#3  0x00007fffeebf7b67 in do_loop () at /lib64/libpipewire-0.3.so.0
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 28 (Thread 0x7fff12c88640 (LWP 56866) "pw-Mixxx"):
#0  0x00007ffff3900c3e in epoll_wait () at /lib64/libc.so.6
#1  0x00007ffff7fb5b98 in impl_pollfd_wait () at /usr/lib64/spa-0.2/support/libspa-support.so
#2  0x00007ffff7fa92e4 in loop_iterate () at /usr/lib64/spa-0.2/support/libspa-support.so
#3  0x00007fffeec426da in do_loop () at /lib64/libpipewire-0.3.so.0
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 18 (Thread 0x7fff13fff640 (LWP 56845) "EngineSideChain"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff609503b in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00000000007a280d in EngineSideChain::run() (this=0x18ae200) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/sidechain/enginesidechain.cpp:109
        samples_read = 0
        id = 1
        tag = "EngineSideChain"
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 17 (Thread 0x7fff30ff9640 (LWP 56844) "EngineWorkerSch"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff609503b in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00000000007946b2 in EngineWorkerScheduler::run() (this=0x1797480) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/engineworkerscheduler.cpp:56
        lock = {val = 24736953}
        tag = "EngineWorkerScheduler"
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 16 (Thread 0x7fff317fa640 (LWP 56841) "mixxx:sh5"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 15 (Thread 0x7fff31ffb640 (LWP 56840) "mixxx:sh4"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 14 (Thread 0x7fff327fc640 (LWP 56839) "mixxx:sh3"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 13 (Thread 0x7fff32ffd640 (LWP 56838) "mixxx:sh2"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 12 (Thread 0x7fff337fe640 (LWP 56837) "mixxx:sh1"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 11 (Thread 0x7fff33fff640 (LWP 56836) "mixxx:sh0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 10 (Thread 0x7fffd4988640 (LWP 56835) "mixxx:disk$0"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007fff3e64f22b in util_queue_thread_func () at /usr/lib64/dri/iris_dri.so
#3  0x00007fff3e64ee7b in impl_thrd_routine () at /usr/lib64/dri/iris_dri.so
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 9 (Thread 0x7fffd55ed640 (LWP 56827) "mixxx"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff782cb8c in QTWTF::TCMalloc_PageHeap::scavengerThread() () at /lib64/libQt5Script.so.5
#3  0x00007ffff782cbbf in  () at /lib64/libQt5Script.so.5
#4  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#5  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 8 (Thread 0x7fffd5f19640 (LWP 56826) "StatsManager"):
#0  0x00007ffff387973a in __futex_abstimed_wait_common () at /lib64/libc.so.6
#1  0x00007ffff387beb0 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#2  0x00007ffff609503b in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#3  0x00000000005b172c in StatsManager::run() (this=0x1262ac0) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/statsmanager.cpp:245
        __PRETTY_FUNCTION__ = "virtual void StatsManager::run()"
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 6 (Thread 0x7fffd67ee640 (LWP 56824) "gdbus"):
#0  0x00007ffff38f479f in poll () at /lib64/libc.so.6
#1  0x00007ffff5d1c29c in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#2  0x00007ffff5cc67c3 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#3  0x00007ffff2a6cc5a in gdbus_shared_thread_func.lto_priv () at /lib64/libgio-2.0.so.0
#4  0x00007ffff5cf17c2 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 5 (Thread 0x7fffd6fef640 (LWP 56823) "dconf worker"):
#0  0x00007ffff38f479f in poll () at /lib64/libc.so.6
#1  0x00007ffff5d1c29c in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#2  0x00007ffff5cc48a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3  0x00007fffdc00d3ed in dconf_gdbus_worker_thread () at /usr/lib64/gio/modules/libdconfsettings.so
#4  0x00007ffff5cf17c2 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 4 (Thread 0x7fffd77f0640 (LWP 56822) "gmain"):
#0  0x00007ffff38f479f in poll () at /lib64/libc.so.6
#1  0x00007ffff5d1c29c in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#2  0x00007ffff5cc48a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3  0x00007ffff5cc48f1 in glib_worker_main () at /lib64/libglib-2.0.so.0
#4  0x00007ffff5cf17c2 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 3 (Thread 0x7fffd7fff640 (LWP 56820) "QDBusConnection"):
#0  0x00007ffff38f479f in poll () at /lib64/libc.so.6
#1  0x00007ffff5d1c29c in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#2  0x00007ffff5cc48a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3  0x00007ffff629dbb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#4  0x00007ffff624b1e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#5  0x00007ffff608e2ca in QThread::exec() () at /lib64/libQt5Core.so.5
#6  0x00007ffff654eb6b in QDBusConnectionManager::run() () at /lib64/libQt5DBus.so.5
#7  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#8  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#9  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 2 (Thread 0x7fffdd5ec640 (LWP 56819) "QXcbEventQueue"):
#0  0x00007ffff38f479f in poll () at /lib64/libc.so.6
#1  0x00007ffff3554f42 in _xcb_conn_wait.part.0 () at /lib64/libxcb.so.1
#2  0x00007ffff35568fc in xcb_wait_for_event () at /lib64/libxcb.so.1
#3  0x00007fffdd74c0d7 in QXcbEventQueue::run() () at /lib64/libQt5XcbQpa.so.5
#4  0x00007ffff608f4c6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ffff387cb1a in start_thread () at /lib64/libc.so.6
#6  0x00007ffff3901660 in clone3 () at /lib64/libc.so.6

Thread 1 (Thread 0x7fffeadb84c0 (LWP 56793) "mixxx"):
#0  0x00007ffff387e88c in __pthread_kill_implementation () at /lib64/libc.so.6
#1  0x00007ffff38316a6 in raise () at /lib64/libc.so.6
#2  0x00007ffff381b7d3 in abort () at /lib64/libc.so.6
#3  0x00007ffff605744b in qt_message_output(QtMsgType, QMessageLogContext const&, QString const&) [clone .cold] () at /lib64/libQt5Core.so.5
#4  0x00000000005a9ada in mixxx::(anonymous namespace)::MessageHandler(QtMsgType, QMessageLogContext const&, QString const&) (type=QtCriticalMsg, input="DEBUG ASSERT: \"toDeck\" in function void AutoDJProcessor::crossfaderChanged(double) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp:595") at /home/swiftb0y/Sourcerepositories/mixxx/src/util/logging.cpp:180
        baSize = 186
        tag = 0xcf5c68 "Critical ["
        shouldPrint = true
        shouldFlush = true
        isDebugAssert = true
        isControllerDebug = false
        threadName = "Main" = {[0] = 77 'M', [1] = 97 'a', [2] = 105 'i', [3] = 110 'n'}
        input8Bit = "DEBUG ASSERT: \"toDeck\" in function void AutoDJProcessor::crossfaderChanged(double) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp:595" = {[0] = 68 'D', [1] = 69 'E', [2] = 66 'B', [3] = 85 'U', [4] = 71 'G', [5] = 32 ' ', [6] = 65 'A', [7] = 83 'S', [8] = 83 'S', [9] = 69 'E', [10] = 82 'R', [11] = 84 'T', [12] = 58 ':', [13] = 32 ' ', [14] = 34 '"', [15] = 116 't', [16] = 111 'o', [17] = 68 'D', [18] = 101 'e', [19] = 99 'c', [20] = 107 'k', [21] = 34 '"', [22] = 32 ' ', [23] = 105 'i', [24] = 110 'n', [25] = 32 ' ', [26] = 102 'f', [27] = 117 'u', [28] = 110 'n', [29] = 99 'c', [30] = 116 't', [31] = 105 'i', [32] = 111 'o', [33] = 110 'n', [34] = 32 ' ', [35] = 118 'v', [36] = 111 'o', [37] = 105 'i', [38] = 100 'd', [39] = 32 ' ', [40] = 65 'A', [41] = 117 'u', [42] = 116 't', [43] = 111 'o', [44] = 68 'D', [45] = 74 'J', [46] = 80 'P', [47] = 114 'r', [48] = 111 'o', [49] = 99 'c', [50] = 101 'e', [51] = 115 's', [52] = 115 's', [53] = 111 'o', [54] = 114 'r', [55] = 58 ':', [56] = 58 ':', [57] = 99 'c', [58] = 114 'r', [59] = 111 'o', [60] = 115 's', [61] = 115 's', [62] = 102 'f', [63] = 97 'a', [64] = 100 'd', [65] = 101 'e', [66] = 114 'r', [67] = 67 'C', [68] = 104 'h', [69] = 97 'a', [70] = 110 'n', [71] = 103 'g', [72] = 101 'e', [73] = 100 'd', [74] = 40 '(', [75] = 100 'd', [76] = 111 'o', [77] = 117 'u', [78] = 98 'b', [79] = 108 'l', [80] = 101 'e', [81] = 41 ')', [82] = 32 ' ', [83] = 97 'a', [84] = 116 't', [85] = 32 ' ', [86] = 47 '/', [87] = 104 'h', [88] = 111 'o', [89] = 109 'm', [90] = 101 'e', [91] = 47 '/', [92] = 115 's', [93] = 119 'w', [94] = 105 'i', [95] = 102 'f', [96] = 116 't', [97] = 98 'b', [98] = 48 '0', [99] = 121 'y', [100] = 47 '/', [101] = 83 'S', [102] = 111 'o', [103] = 117 'u', [104] = 114 'r', [105] = 99 'c', [106] = 101 'e', [107] = 114 'r', [108] = 101 'e', [109] = 112 'p', [110] = 111 'o', [111] = 115 's', [112] = 105 'i', [113] = 116 't', [114] = 111 'o', [115] = 114 'r', [116] = 105 'i', [117] = 101 'e', [118] = 115 's', [119] = 47 '/', [120] = 109 'm', [121] = 105 'i', [122] = 120 'x', [123] = 120 'x', [124] = 120 'x', [125] = 47 '/', [126] = 115 's', [127] = 114 'r', [128] = 99 'c', [129] = 47 '/', [130] = 108 'l', [131] = 105 'i', [132] = 98 'b', [133] = 114 'r', [134] = 97 'a', [135] = 114 'r', [136] = 121 'y', [137] = 47 '/', [138] = 97 'a', [139] = 117 'u', [140] = 116 't', [141] = 111 'o', [142] = 100 'd', [143] = 106 'j', [144] = 47 '/', [145] = 97 'a', [146] = 117 'u', [147] = 116 't', [148] = 111 'o', [149] = 100 'd', [150] = 106 'j', [151] = 112 'p', [152] = 114 'r', [153] = 111 'o', [154] = 99 'c', [155] = 101 'e', [156] = 115 's', [157] = 115 's', [158] = 111 'o', [159] = 114 'r', [160] = 46 '.', [161] = 99 'c', [162] = 112 'p', [163] = 112 'p', [164] = 58 ':', [165] = 53 '5', [166] = 57 '9', [167] = 53 '5'}
        ba = "Critical [Main]: DEBUG ASSERT: \"toDeck\" in function void AutoDJProcessor::crossfaderChanged(double) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp:595\n" = {[0] = 67 'C', [1] = 114 'r', [2] = 105 'i', [3] = 116 't', [4] = 105 'i', [5] = 99 'c', [6] = 97 'a', [7] = 108 'l', [8] = 32 ' ', [9] = 91 '[', [10] = 77 'M', [11] = 97 'a', [12] = 105 'i', [13] = 110 'n', [14] = 93 ']', [15] = 58 ':', [16] = 32 ' ', [17] = 68 'D', [18] = 69 'E', [19] = 66 'B', [20] = 85 'U', [21] = 71 'G', [22] = 32 ' ', [23] = 65 'A', [24] = 83 'S', [25] = 83 'S', [26] = 69 'E', [27] = 82 'R', [28] = 84 'T', [29] = 58 ':', [30] = 32 ' ', [31] = 34 '"', [32] = 116 't', [33] = 111 'o', [34] = 68 'D', [35] = 101 'e', [36] = 99 'c', [37] = 107 'k', [38] = 34 '"', [39] = 32 ' ', [40] = 105 'i', [41] = 110 'n', [42] = 32 ' ', [43] = 102 'f', [44] = 117 'u', [45] = 110 'n', [46] = 99 'c', [47] = 116 't', [48] = 105 'i', [49] = 111 'o', [50] = 110 'n', [51] = 32 ' ', [52] = 118 'v', [53] = 111 'o', [54] = 105 'i', [55] = 100 'd', [56] = 32 ' ', [57] = 65 'A', [58] = 117 'u', [59] = 116 't', [60] = 111 'o', [61] = 68 'D', [62] = 74 'J', [63] = 80 'P', [64] = 114 'r', [65] = 111 'o', [66] = 99 'c', [67] = 101 'e', [68] = 115 's', [69] = 115 's', [70] = 111 'o', [71] = 114 'r', [72] = 58 ':', [73] = 58 ':', [74] = 99 'c', [75] = 114 'r', [76] = 111 'o', [77] = 115 's', [78] = 115 's', [79] = 102 'f', [80] = 97 'a', [81] = 100 'd', [82] = 101 'e', [83] = 114 'r', [84] = 67 'C', [85] = 104 'h', [86] = 97 'a', [87] = 110 'n', [88] = 103 'g', [89] = 101 'e', [90] = 100 'd', [91] = 40 '(', [92] = 100 'd', [93] = 111 'o', [94] = 117 'u', [95] = 98 'b', [96] = 108 'l', [97] = 101 'e', [98] = 41 ')', [99] = 32 ' ', [100] = 97 'a', [101] = 116 't', [102] = 32 ' ', [103] = 47 '/', [104] = 104 'h', [105] = 111 'o', [106] = 109 'm', [107] = 101 'e', [108] = 47 '/', [109] = 115 's', [110] = 119 'w', [111] = 105 'i', [112] = 102 'f', [113] = 116 't', [114] = 98 'b', [115] = 48 '0', [116] = 121 'y', [117] = 47 '/', [118] = 83 'S', [119] = 111 'o', [120] = 117 'u', [121] = 114 'r', [122] = 99 'c', [123] = 101 'e', [124] = 114 'r', [125] = 101 'e', [126] = 112 'p', [127] = 111 'o', [128] = 115 's', [129] = 105 'i', [130] = 116 't', [131] = 111 'o', [132] = 114 'r', [133] = 105 'i', [134] = 101 'e', [135] = 115 's', [136] = 47 '/', [137] = 109 'm', [138] = 105 'i', [139] = 120 'x', [140] = 120 'x', [141] = 120 'x', [142] = 47 '/', [143] = 115 's', [144] = 114 'r', [145] = 99 'c', [146] = 47 '/', [147] = 108 'l', [148] = 105 'i', [149] = 98 'b', [150] = 114 'r', [151] = 97 'a', [152] = 114 'r', [153] = 121 'y', [154] = 47 '/', [155] = 97 'a', [156] = 117 'u', [157] = 116 't', [158] = 111 'o', [159] = 100 'd', [160] = 106 'j', [161] = 47 '/', [162] = 97 'a', [163] = 117 'u', [164] = 116 't', [165] = 111 'o', [166] = 100 'd', [167] = 106 'j', [168] = 112 'p', [169] = 114 'r', [170] = 111 'o', [171] = 99 'c', [172] = 101 'e', [173] = 115 's', [174] = 115 's', [175] = 111 'o', [176] = 114 'r', [177] = 46 '.', [178] = 99 'c', [179] = 112 'p', [180] = 112 'p', [181] = 58 ':', [182] = 53 '5', [183] = 57 '9', [184] = 53 '5', [185] = 10 '\n'}
        __PRETTY_FUNCTION__ = "void mixxx::{anonymous}::MessageHandler(QtMsgType, const QMessageLogContext&, const QString&)"
#5  0x00007ffff6086d38 in qt_message_print(QtMsgType, QMessageLogContext const&, QString const&) () at /lib64/libQt5Core.so.5
#6  0x00007ffff6086e59 in qt_message(QtMsgType, QMessageLogContext const&, char const*, __va_list_tag*) () at /lib64/libQt5Core.so.5
#7  0x00007ffff605704a in QMessageLogger::critical(char const*, ...) const () at /lib64/libQt5Core.so.5
#8  0x0000000000498661 in mixxx_debug_assert(char const*, char const*, int, char const*) (assertion=0xe9d109 "toDeck", file=0xe9cf18 "/home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp", line=595, function=0xe9d0d0 "void AutoDJProcessor::crossfaderChanged(double)") at /home/swiftb0y/Sourcerepositories/mixxx/src/util/assert.h:11
        __PRETTY_FUNCTION__ = "void mixxx_debug_assert(const char*, const char*, int, const char*)"
#9  0x0000000000498696 in mixxx_maybe_debug_assert_return_true(char const*, char const*, int, char const*) (assertion=0xe9d109 "toDeck", file=0xe9cf18 "/home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp", line=595, function=0xe9d0d0 "void AutoDJProcessor::crossfaderChanged(double)") at /home/swiftb0y/Sourcerepositories/mixxx/src/util/assert.h:16
#10 0x0000000000a8ac5b in AutoDJProcessor::crossfaderChanged(double) (this=0x49a8210, value=-0.95675675675675675) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp:595
        fromDeck = 0x49ce820
        toDeck = 0x0
        crossfaderPosition = 6.9533382827146954e-310
        __PRETTY_FUNCTION__ = "void AutoDJProcessor::crossfaderChanged(double)"
#11 0x0000000000a91642 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<double>, void, void (AutoDJProcessor::*)(double)>::call(void (AutoDJProcessor::*)(double), AutoDJProcessor*, void**) (f=(void (AutoDJProcessor::*)(AutoDJProcessor * const, double)) 0xa8ab9e <AutoDJProcessor::crossfaderChanged(double)>, o=0x49a8210, arg=0x7fffffffc220) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#12 0x0000000000a90ff2 in QtPrivate::FunctionPointer<void (AutoDJProcessor::*)(double)>::call<QtPrivate::List<double>, void>(void (AutoDJProcessor::*)(double), AutoDJProcessor*, void**) (f=(void (AutoDJProcessor::*)(AutoDJProcessor * const, double)) 0xa8ab9e <AutoDJProcessor::crossfaderChanged(double)>, o=0x49a8210, arg=0x7fffffffc220) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#13 0x0000000000a90733 in QtPrivate::QSlotObject<void (AutoDJProcessor::*)(double), QtPrivate::List<double>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x49d59c0, r=0x49a8210, a=0x7fffffffc220, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#14 0x00007ffff62803e9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#15 0x00000000006c9f54 in ControlProxy::valueChanged(double) (this=0x49d1b80, _t1=-0.95675675675675675) at /home/swiftb0y/Sourcerepositories/mixxx/cbuild/mixxx-lib_autogen/include/moc_controlproxy.cpp:168
        _a = {0x0, 0x7fffffffc210}
#16 0x0000000000508d32 in ControlProxy::slotValueChangedAuto(double, QObject*) (this=0x49d1b80, v=-0.95675675675675675, pSetter=0x11c673f0) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/controlproxy.h:192
#17 0x000000000050c6f0 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<double, QObject*>, void, void (ControlProxy::*)(double, QObject*)>::call(void (ControlProxy::*)(double, QObject*), ControlProxy*, void**) (f=(void (ControlProxy::*)(ControlProxy * const, double, QObject *)) 0x508cfe <ControlProxy::slotValueChangedAuto(double, QObject*)>, o=0x49d1b80, arg=0x7fffffffc430) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#18 0x000000000050c341 in QtPrivate::FunctionPointer<void (ControlProxy::*)(double, QObject*)>::call<QtPrivate::List<double, QObject*>, void>(void (ControlProxy::*)(double, QObject*), ControlProxy*, void**) (f=(void (ControlProxy::*)(ControlProxy * const, double, QObject *)) 0x508cfe <ControlProxy::slotValueChangedAuto(double, QObject*)>, o=0x49d1b80, arg=0x7fffffffc430) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#19 0x000000000050be35 in QtPrivate::QSlotObject<void (ControlProxy::*)(double, QObject*), QtPrivate::List<double, QObject*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x11c616e0, r=0x49d1b80, a=0x7fffffffc430, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#20 0x00007ffff62803e9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#21 0x00000000006c2528 in ControlDoublePrivate::valueChanged(double, QObject*) (this=0x19107f0, _t1=-0.95675675675675675, _t2=0x11c673f0) at /home/swiftb0y/Sourcerepositories/mixxx/cbuild/mixxx-lib_autogen/include/moc_control.cpp:145
        _a = {0x0, 0x7fffffffc420, 0x7fffffffc418}
#22 0x00000000006c3a65 in ControlDoublePrivate::setInner(double, QObject*) (this=0x19107f0, value=-0.95675675675675675, pSender=0x11c673f0) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/control.cpp:223
#23 0x00000000006c3962 in ControlDoublePrivate::set(double, QObject*) (this=0x19107f0, value=-0.95675675675675675, pSender=0x11c673f0) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/control.cpp:210
        pBehavior = {value = 0x1916c00, d = 0x1916c30}
#24 0x00000000006c3bd5 in ControlDoublePrivate::setParameter(double, QObject*) (this=0x19107f0, dParam=0.021621621621621623, pSender=0x11c673f0) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/control.cpp:242
        pBehavior = {value = 0x1916c00, d = 0x1916c30}
#25 0x00000000005d3b4b in ControlProxy::setParameter(double) (this=0x11c673f0, v=0.021621621621621623) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/controlproxy.h:159
#26 0x00000000005d2e38 in ControlWidgetConnection::setControlParameter(double) (this=0x11c67100, parameter=0.021621621621621623) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/controlwidgetconnection.cpp:48
#27 0x00000000005d3248 in ControlParameterWidgetConnection::setControlParameter(double) (this=0x11c67100, v=0.021621621621621623) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/controlwidgetconnection.cpp:105
#28 0x00000000005d4f6d in WBaseWidget::setControlParameter(double) (this=0x11c667c0, v=0.021621621621621623) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/wbasewidget.cpp:96
        pControlConnection = 0x11c67100
        __for_range = QList<ControlParameterWidgetConnection *> (size = 1) = {[0] = 0x11c67100}
        __for_begin = {i = 0x11c676d0}
        __for_end = {i = 0x11c676d8}
#29 0x0000000000628af0 in SliderEventHandler<WSliderComposed>::mouseMoveEvent(WSliderComposed*, QMouseEvent*) (this=0x11c668b0, pWidget=0x11c66790, e=0x7fffffffcc20) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/slidereventhandler.h:64
        newParameter = 0.021621621621621623
#30 0x0000000000627452 in WSliderComposed::mouseMoveEvent(QMouseEvent*) (this=0x11c66790, e=0x7fffffffcc20) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/wslidercomposed.cpp:189
#31 0x00007ffff6fd0e7e in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#32 0x000000000064faa5 in WWidget::event(QEvent*) (this=0x11c66790, e=0x7fffffffcc20) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/wwidget.cpp:95
        __PRETTY_FUNCTION__ = "virtual bool WWidget::event(QEvent*)"
#33 0x00007ffff6f8e443 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#34 0x00007ffff6f96074 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#35 0x00000000004b51d6 in MixxxApplication::notify(QObject*, QEvent*) (this=0x7fffffffd4d0, target=0x11c66790, event=0x7fffffffcc20) at /home/swiftb0y/Sourcerepositories/mixxx/src/mixxxapplication.cpp:135
        __PRETTY_FUNCTION__ = "virtual bool MixxxApplication::notify(QObject*, QEvent*)"
#36 0x00007ffff624c7d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#37 0x00007ffff6f94b57 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib64/libQt5Widgets.so.5
#38 0x00007ffff6fea450 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /lib64/libQt5Widgets.so.5
#39 0x00007ffff6fed6e5 in QWidgetWindow::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#40 0x00007ffff6f8e443 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#41 0x00000000004b51d6 in MixxxApplication::notify(QObject*, QEvent*) (this=0x7fffffffd4d0, target=0x118e67e0, event=0x7fffffffcf10) at /home/swiftb0y/Sourcerepositories/mixxx/src/mixxxapplication.cpp:135
        __PRETTY_FUNCTION__ = "virtual bool MixxxApplication::notify(QObject*, QEvent*)"
#42 0x00007ffff624c7d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#43 0x00007ffff6734b98 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib64/libQt5Gui.so.5
#44 0x00007ffff6714c9c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Gui.so.5
#45 0x00007fffdd74d11e in xcbSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5XcbQpa.so.5
#46 0x00007ffff5cc70af in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#47 0x00007ffff5d1c308 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#48 0x00007ffff5cc48a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#49 0x00007ffff629dbb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#50 0x00007ffff624b1e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#51 0x00007ffff6253724 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#52 0x00000000004956ed in (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) (app=0x7fffffffd4d0, args=...) at /home/swiftb0y/Sourcerepositories/mixxx/src/main.cpp:35
        mainWindow = {<QMainWindow> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff74c0420 <QMainWindow::staticMetaObject>}, stringdata = 0xcbb100 <qt_meta_stringdata_MixxxMainWindow>, data = 0xcbb580 <qt_meta_data_MixxxMainWindow>, static_metacall = 0x49a36e <MixxxMainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_pWidgetParent = 0xff02a40, m_pLaunchImage = 0x0, m_pSettingsManager = std::unique_ptr<SettingsManager> = {get() = 0x15791e0}, m_pEffectsManager = 0x191b170, m_pEngine = 0x19b5050, m_pSkinLoader = 0x17b8400, m_pSoundManager = 0x1ddfba0, m_pPlayerManager = 0x3435080, m_pRecordingManager = 0x232fa70, m_pBroadcastManager = 0x34621f0, m_pControllerManager = 0x4ae8750, m_pGuiTick = 0x148e3f0, m_pVisualsManager = 0x3460350, m_pVCManager = 0x3460380, m_pKeyboard = 0x15f10e0, m_pDbConnectionPool = std::shared_ptr<mixxx::DbConnectionPool> (use count 13, weak count 0) = {get() = 0x19210c0}, m_pTrackCollectionManager = 0x4912a70, m_pLibrary = 0x48feb00, m_pMenuBar = {m_ptr = 0x173e5a0}, m_pDeveloperToolsDlg = 0x0, m_pPrefDlg = 0x499b560, m_pKbdConfig = 0x1637c40, m_pKbdConfigEmpty = 0x1637cd0, m_toolTipsCfg = mixxx::TooltipsPreference::TOOLTIPS_ON, m_runtime_timer = {m_key = "MixxxMainWindow::runtime", m_compute = 111, m_running = true, m_time = {t1 = 10373, t2 = 460805282}}, m_cmdLineArgs = @0x11d61e0, m_pTouchShift = 0x17bd8c0, m_inhibitScreensaver = mixxx::ScreenSaverPreference::PREVENT_OFF, m_skinCreatedControls = QSet<ControlObject *> (size = 48) = {[0] = 0xfefc880, [1] = 0xfefd330, [2] = 0xff004c0, [3] = 0xfeff4a0, [4] = 0x142f59b0, [5] = 0xff014c0, [6] = 0x10e8e860, [7] = 0xfefda20, [8] = 0xfefade0, [9] = 0xfefb330, [10] = 0xff01fb0, [11] = 0xfefcdf0, [12] = 0x11998f70, [13] = 0xfef7700, [14] = 0xff00a20, [15] = 0xfefb880, [16] = 0xfef9dd0, [17] = 0xff00f80, [18] = 0xfef9110, [19] = 0xfefdf10, [20] = 0xfefff60, [21] = 0xfeffa00, [22] = 0xfefe9e0, [23] = 0xfefa890, [24] = 0xfefe480, [25] = 0x10f5d710, [26] = 0xfefbdf0, [27] = 0xfef8460, [28] = 0x1501bb90, [29] = 0x108ff720, [30] = 0x84b3120, [31] = 0xfef7de0, [32] = 0x10e92fb0, [33] = 0xfefef40, [34] = 0xff02500, [35] = 0x11986cb0, [36] = 0xfef9770, [37] = 0xfef8ab0, [38] = 0xfefa320, [39] = 0x14307670, [40] = 0x142f7800, [41] = 0x10f5de10, [42] = 0xfefc330, [43] = 0x15019a60, [44] = 0x1003c660, [45] = 0xff01a40, [46] = 0x142f5f70, [47] = 0x143030d0}, static kMicrophoneCount = 4, static kAuxiliaryCount = 4}
        __PRETTY_FUNCTION__ = "int {anonymous}::runMixxx(MixxxApplication*, const CmdlineArgs&)"
#53 0x000000000049591c in main(int, char**) (argc=7, argv=0x7fffffffd6b8) at /home/swiftb0y/Sourcerepositories/mixxx/src/main.cpp:110
        console = {<No data fields>}
        args = @0x11d61e0: {m_musicFiles = QList<QString> (size = 3) = {[0] = "/home/swiftb0y/Documents/mixxx_dev_settings_folder", [1] = "-platform", [2] = "xcb"}, m_startInFullscreen = false, m_midiDebug = true, m_developer = true, m_safeMode = false, m_debugAssertBreak = false, m_settingsPathSet = true, m_logLevel = mixxx::LogLevel::Debug, m_logFlushLevel = mixxx::LogLevel::Critical, m_locale = "", m_settingsPath = "/home/swiftb0y/Documents/mixxx_dev_settings_folder/", m_resourcePath = "res/", m_timelinePath = ""}
        app = {<QApplication> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff74b54c0 <QApplication::staticMetaObject>}, stringdata = 0xcbe780 <qt_meta_stringdata_MixxxApplication>, data = 0xcbe7c0 <qt_meta_data_MixxxApplication>, static_metacall = 0x4b4d56 <MixxxApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_rightPressedButtons = 0, m_pTouchShift = 0x0}
        exitCode = 0
        __PRETTY_FUNCTION__ = "int main(int, char**)"

@daschuer
Copy link
Member Author

Thank you for your additional manual tests.
I have fixed the "fade Now" issue by disabling the Auto DJ. I think that can be expected when messing with the deck orientation. The same goes for the crossfader debug assertion. I have removed it because you have demonstrated that it is not impossible and instead disabled the Auto DJ in that case.

@Swiftb0y
Copy link
Member

Swiftb0y commented Apr 24, 2022

Thank you, AutoDJ is still quite brittle unfortunately. I could produce two test cases where it got stuck in an obviously buggy state.

  1. Load 2 decks, default orientation, enable autodj, seek toDeck to somewhere close to the end (where remaining track duration < autodj transition duration). Manually force a transition via the button. Result: AutoDJ will transition into the end of the other track and get stuck there. You can revive it again by seeking somewhere in the track and pressing play again or loading another track.
  2. DEBUG ASSERT: "toDeckDuration > 0" in function void AutoDJProcessor::calculateTransition(DeckAttributes*, DeckAttributes*, bool) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp:1189: Activate autoDJ, stop the currently playing track manually, press eject on now stopped deck. hit debug assert. bt:
Thread 1 (Thread 0x7fffeadb84c0 (LWP 102985) "mixxx"):
#0  0x00007ffff387e88c in __pthread_kill_implementation () at /lib64/libc.so.6
#1  0x00007ffff38316a6 in raise () at /lib64/libc.so.6
#2  0x00007ffff381b7d3 in abort () at /lib64/libc.so.6
#3  0x00007ffff605744b in qt_message_output(QtMsgType, QMessageLogContext const&, QString const&) [clone .cold] () at /lib64/libQt5Core.so.5
#4  0x00000000005a9ada in mixxx::(anonymous namespace)::MessageHandler(QtMsgType, QMessageLogContext const&, QString const&) (type=QtCriticalMsg, input="DEBUG ASSERT: \"toDeckDuration > 0\" in function void AutoDJProcessor::calculateTransition(DeckAttributes*, DeckAttributes*, bool) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjpro"...) at /home/swiftb0y/Sourcerepositories/mixxx/src/util/logging.cpp:180
        baSize = 233
        tag = 0xcf5c68 "Critical ["
        shouldPrint = true
        shouldFlush = true
        isDebugAssert = true
        isControllerDebug = false
        threadName = "Main" = {[0] = 77 'M', [1] = 97 'a', [2] = 105 'i', [3] = 110 'n'}
        input8Bit = "DEBUG ASSERT: \"toDeckDuration > 0\" in function void AutoDJProcessor::calculateTransition(DeckAttributes*, DeckAttributes*, bool) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjpro"... = {[0] = 68 'D', [1] = 69 'E', [2] = 66 'B', [3] = 85 'U', [4] = 71 'G', [5] = 32 ' ', [6] = 65 'A', [7] = 83 'S', [8] = 83 'S', [9] = 69 'E', [10] = 82 'R', [11] = 84 'T', [12] = 58 ':', [13] = 32 ' ', [14] = 34 '"', [15] = 116 't', [16] = 111 'o', [17] = 68 'D', [18] = 101 'e', [19] = 99 'c', [20] = 107 'k', [21] = 68 'D', [22] = 117 'u', [23] = 114 'r', [24] = 97 'a', [25] = 116 't', [26] = 105 'i', [27] = 111 'o', [28] = 110 'n', [29] = 32 ' ', [30] = 62 '>', [31] = 32 ' ', [32] = 48 '0', [33] = 34 '"', [34] = 32 ' ', [35] = 105 'i', [36] = 110 'n', [37] = 32 ' ', [38] = 102 'f', [39] = 117 'u', [40] = 110 'n', [41] = 99 'c', [42] = 116 't', [43] = 105 'i', [44] = 111 'o', [45] = 110 'n', [46] = 32 ' ', [47] = 118 'v', [48] = 111 'o', [49] = 105 'i', [50] = 100 'd', [51] = 32 ' ', [52] = 65 'A', [53] = 117 'u', [54] = 116 't', [55] = 111 'o', [56] = 68 'D', [57] = 74 'J', [58] = 80 'P', [59] = 114 'r', [60] = 111 'o', [61] = 99 'c', [62] = 101 'e', [63] = 115 's', [64] = 115 's', [65] = 111 'o', [66] = 114 'r', [67] = 58 ':', [68] = 58 ':', [69] = 99 'c', [70] = 97 'a', [71] = 108 'l', [72] = 99 'c', [73] = 117 'u', [74] = 108 'l', [75] = 97 'a', [76] = 116 't', [77] = 101 'e', [78] = 84 'T', [79] = 114 'r', [80] = 97 'a', [81] = 110 'n', [82] = 115 's', [83] = 105 'i', [84] = 116 't', [85] = 105 'i', [86] = 111 'o', [87] = 110 'n', [88] = 40 '(', [89] = 68 'D', [90] = 101 'e', [91] = 99 'c', [92] = 107 'k', [93] = 65 'A', [94] = 116 't', [95] = 116 't', [96] = 114 'r', [97] = 105 'i', [98] = 98 'b', [99] = 117 'u', [100] = 116 't', [101] = 101 'e', [102] = 115 's', [103] = 42 '*', [104] = 44 ',', [105] = 32 ' ', [106] = 68 'D', [107] = 101 'e', [108] = 99 'c', [109] = 107 'k', [110] = 65 'A', [111] = 116 't', [112] = 116 't', [113] = 114 'r', [114] = 105 'i', [115] = 98 'b', [116] = 117 'u', [117] = 116 't', [118] = 101 'e', [119] = 115 's', [120] = 42 '*', [121] = 44 ',', [122] = 32 ' ', [123] = 98 'b', [124] = 111 'o', [125] = 111 'o', [126] = 108 'l', [127] = 41 ')', [128] = 32 ' ', [129] = 97 'a', [130] = 116 't', [131] = 32 ' ', [132] = 47 '/', [133] = 104 'h', [134] = 111 'o', [135] = 109 'm', [136] = 101 'e', [137] = 47 '/', [138] = 115 's', [139] = 119 'w', [140] = 105 'i', [141] = 102 'f', [142] = 116 't', [143] = 98 'b', [144] = 48 '0', [145] = 121 'y', [146] = 47 '/', [147] = 83 'S', [148] = 111 'o', [149] = 117 'u', [150] = 114 'r', [151] = 99 'c', [152] = 101 'e', [153] = 114 'r', [154] = 101 'e', [155] = 112 'p', [156] = 111 'o', [157] = 115 's', [158] = 105 'i', [159] = 116 't', [160] = 111 'o', [161] = 114 'r', [162] = 105 'i', [163] = 101 'e', [164] = 115 's', [165] = 47 '/', [166] = 109 'm', [167] = 105 'i', [168] = 120 'x', [169] = 120 'x', [170] = 120 'x', [171] = 47 '/', [172] = 115 's', [173] = 114 'r', [174] = 99 'c', [175] = 47 '/', [176] = 108 'l', [177] = 105 'i', [178] = 98 'b', [179] = 114 'r', [180] = 97 'a', [181] = 114 'r', [182] = 121 'y', [183] = 47 '/', [184] = 97 'a', [185] = 117 'u', [186] = 116 't', [187] = 111 'o', [188] = 100 'd', [189] = 106 'j', [190] = 47 '/', [191] = 97 'a', [192] = 117 'u', [193] = 116 't', [194] = 111 'o', [195] = 100 'd', [196] = 106 'j', [197] = 112 'p', [198] = 114 'r', [199] = 111 'o'...}
        ba = "Critical [Main]: DEBUG ASSERT: \"toDeckDuration > 0\" in function void AutoDJProcessor::calculateTransition(DeckAttributes*, DeckAttributes*, bool) at /home/swiftb0y/Sourcerepositories/mixxx/src/library"... = {[0] = 67 'C', [1] = 114 'r', [2] = 105 'i', [3] = 116 't', [4] = 105 'i', [5] = 99 'c', [6] = 97 'a', [7] = 108 'l', [8] = 32 ' ', [9] = 91 '[', [10] = 77 'M', [11] = 97 'a', [12] = 105 'i', [13] = 110 'n', [14] = 93 ']', [15] = 58 ':', [16] = 32 ' ', [17] = 68 'D', [18] = 69 'E', [19] = 66 'B', [20] = 85 'U', [21] = 71 'G', [22] = 32 ' ', [23] = 65 'A', [24] = 83 'S', [25] = 83 'S', [26] = 69 'E', [27] = 82 'R', [28] = 84 'T', [29] = 58 ':', [30] = 32 ' ', [31] = 34 '"', [32] = 116 't', [33] = 111 'o', [34] = 68 'D', [35] = 101 'e', [36] = 99 'c', [37] = 107 'k', [38] = 68 'D', [39] = 117 'u', [40] = 114 'r', [41] = 97 'a', [42] = 116 't', [43] = 105 'i', [44] = 111 'o', [45] = 110 'n', [46] = 32 ' ', [47] = 62 '>', [48] = 32 ' ', [49] = 48 '0', [50] = 34 '"', [51] = 32 ' ', [52] = 105 'i', [53] = 110 'n', [54] = 32 ' ', [55] = 102 'f', [56] = 117 'u', [57] = 110 'n', [58] = 99 'c', [59] = 116 't', [60] = 105 'i', [61] = 111 'o', [62] = 110 'n', [63] = 32 ' ', [64] = 118 'v', [65] = 111 'o', [66] = 105 'i', [67] = 100 'd', [68] = 32 ' ', [69] = 65 'A', [70] = 117 'u', [71] = 116 't', [72] = 111 'o', [73] = 68 'D', [74] = 74 'J', [75] = 80 'P', [76] = 114 'r', [77] = 111 'o', [78] = 99 'c', [79] = 101 'e', [80] = 115 's', [81] = 115 's', [82] = 111 'o', [83] = 114 'r', [84] = 58 ':', [85] = 58 ':', [86] = 99 'c', [87] = 97 'a', [88] = 108 'l', [89] = 99 'c', [90] = 117 'u', [91] = 108 'l', [92] = 97 'a', [93] = 116 't', [94] = 101 'e', [95] = 84 'T', [96] = 114 'r', [97] = 97 'a', [98] = 110 'n', [99] = 115 's', [100] = 105 'i', [101] = 116 't', [102] = 105 'i', [103] = 111 'o', [104] = 110 'n', [105] = 40 '(', [106] = 68 'D', [107] = 101 'e', [108] = 99 'c', [109] = 107 'k', [110] = 65 'A', [111] = 116 't', [112] = 116 't', [113] = 114 'r', [114] = 105 'i', [115] = 98 'b', [116] = 117 'u', [117] = 116 't', [118] = 101 'e', [119] = 115 's', [120] = 42 '*', [121] = 44 ',', [122] = 32 ' ', [123] = 68 'D', [124] = 101 'e', [125] = 99 'c', [126] = 107 'k', [127] = 65 'A', [128] = 116 't', [129] = 116 't', [130] = 114 'r', [131] = 105 'i', [132] = 98 'b', [133] = 117 'u', [134] = 116 't', [135] = 101 'e', [136] = 115 's', [137] = 42 '*', [138] = 44 ',', [139] = 32 ' ', [140] = 98 'b', [141] = 111 'o', [142] = 111 'o', [143] = 108 'l', [144] = 41 ')', [145] = 32 ' ', [146] = 97 'a', [147] = 116 't', [148] = 32 ' ', [149] = 47 '/', [150] = 104 'h', [151] = 111 'o', [152] = 109 'm', [153] = 101 'e', [154] = 47 '/', [155] = 115 's', [156] = 119 'w', [157] = 105 'i', [158] = 102 'f', [159] = 116 't', [160] = 98 'b', [161] = 48 '0', [162] = 121 'y', [163] = 47 '/', [164] = 83 'S', [165] = 111 'o', [166] = 117 'u', [167] = 114 'r', [168] = 99 'c', [169] = 101 'e', [170] = 114 'r', [171] = 101 'e', [172] = 112 'p', [173] = 111 'o', [174] = 115 's', [175] = 105 'i', [176] = 116 't', [177] = 111 'o', [178] = 114 'r', [179] = 105 'i', [180] = 101 'e', [181] = 115 's', [182] = 47 '/', [183] = 109 'm', [184] = 105 'i', [185] = 120 'x', [186] = 120 'x', [187] = 120 'x', [188] = 47 '/', [189] = 115 's', [190] = 114 'r', [191] = 99 'c', [192] = 47 '/', [193] = 108 'l', [194] = 105 'i', [195] = 98 'b', [196] = 114 'r', [197] = 97 'a', [198] = 114 'r', [199] = 121 'y'...}
        __PRETTY_FUNCTION__ = "void mixxx::{anonymous}::MessageHandler(QtMsgType, const QMessageLogContext&, const QString&)"
#5  0x00007ffff6086d38 in qt_message_print(QtMsgType, QMessageLogContext const&, QString const&) () at /lib64/libQt5Core.so.5
#6  0x00007ffff6086e59 in qt_message(QtMsgType, QMessageLogContext const&, char const*, __va_list_tag*) () at /lib64/libQt5Core.so.5
#7  0x00007ffff605704a in QMessageLogger::critical(char const*, ...) const () at /lib64/libQt5Core.so.5
#8  0x0000000000498661 in mixxx_debug_assert(char const*, char const*, int, char const*) (assertion=0xe9d2a9 "toDeckDuration > 0", file=0xe9cf20 "/home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp", line=1189, function=0xe9d218 "void AutoDJProcessor::calculateTransition(DeckAttributes*, DeckAttributes*, bool)") at /home/swiftb0y/Sourcerepositories/mixxx/src/util/assert.h:11
        __PRETTY_FUNCTION__ = "void mixxx_debug_assert(const char*, const char*, int, const char*)"
#9  0x0000000000498696 in mixxx_maybe_debug_assert_return_true(char const*, char const*, int, char const*) (assertion=0xe9d2a9 "toDeckDuration > 0", file=0xe9cf20 "/home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp", line=1189, function=0xe9d218 "void AutoDJProcessor::calculateTransition(DeckAttributes*, DeckAttributes*, bool)") at /home/swiftb0y/Sourcerepositories/mixxx/src/util/assert.h:16
#10 0x0000000000a8cae7 in AutoDJProcessor::calculateTransition(DeckAttributes*, DeckAttributes*, bool) (this=0x499ae90, pFromDeck=0x490e0f0, pToDeck=0x490cef0, seekToStartPoint=false) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp:1189
        __PRETTY_FUNCTION__ = "void AutoDJProcessor::calculateTransition(DeckAttributes*, DeckAttributes*, bool)"
        fromDeckEndPosition = 228.49306122448979
        toDeckEndPosition = 0
        fromDeckDuration = 228.49306122448979
        toDeckDuration = 0
        outroEnd = 3.7847222917865181e-316
        outroStart = 3.7844946263369144e-316
        fromDeckPosition = 6.9533558069053704e-310
        outroLength = 2.9939548107694527e-316
        toDeckPositionSeconds = 6.9533558069053704e-310
        introStart = 5.4688333845738833e-317
        introLength = 6.9533558069085324e-310
        introEndSample = 2.4395459632077397e-317
#11 0x0000000000a8b16e in AutoDJProcessor::playerPositionChanged(DeckAttributes*, double) (this=0x499ae90, pAttributes=0x490cef0, thisPlayPosition=0) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp:757
        thisDeck = 0x490cef0
        otherDeck = 0x490e0f0
        thisDeckPlaying = false
        otherDeckPlaying = false
        __PRETTY_FUNCTION__ = "void AutoDJProcessor::playerPositionChanged(DeckAttributes*, double)"
#12 0x0000000000a917b2 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<DeckAttributes*, double>, void, void (AutoDJProcessor::*)(DeckAttributes*, double)>::call(void (AutoDJProcessor::*)(DeckAttributes*, double), AutoDJProcessor*, void**) (f=(void (AutoDJProcessor::*)(AutoDJProcessor * const, DeckAttributes *, double)) 0xa8ade6 <AutoDJProcessor::playerPositionChanged(DeckAttributes*, double)>, o=0x499ae90, arg=0x7fffffffb920) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#13 0x0000000000a91232 in QtPrivate::FunctionPointer<void (AutoDJProcessor::*)(DeckAttributes*, double)>::call<QtPrivate::List<DeckAttributes*, double>, void>(void (AutoDJProcessor::*)(DeckAttributes*, double), AutoDJProcessor*, void**) (f=(void (AutoDJProcessor::*)(AutoDJProcessor * const, DeckAttributes *, double)) 0xa8ade6 <AutoDJProcessor::playerPositionChanged(DeckAttributes*, double)>, o=0x499ae90, arg=0x7fffffffb920) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#14 0x0000000000a90a19 in QtPrivate::QSlotObject<void (AutoDJProcessor::*)(DeckAttributes*, double), QtPrivate::List<DeckAttributes*, double>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x49d04a0, r=0x499ae90, a=0x7fffffffb920, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#15 0x00007ffff62803e9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#16 0x0000000000a86064 in DeckAttributes::playPositionChanged(DeckAttributes*, double) (this=0x490cef0, _t1=0x490cef0, _t2=0) at /home/swiftb0y/Sourcerepositories/mixxx/cbuild/mixxx-lib_autogen/include/moc_autodjprocessor.cpp:402
        _a = {0x0, 0x7fffffffb910, 0x7fffffffb908}
#17 0x0000000000a87d2f in DeckAttributes::slotPlayPosChanged(double) (this=0x490cef0, v=0) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/autodj/autodjprocessor.cpp:71
#18 0x0000000000a91b82 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<double>, void, void (DeckAttributes::*)(double)>::call(void (DeckAttributes::*)(double), DeckAttributes*, void**) (f=(void (DeckAttributes::*)(DeckAttributes * const, double)) 0xa87d02 <DeckAttributes::slotPlayPosChanged(double)>, o=0x490cef0, arg=0x7fffffffbb20) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#19 0x0000000000a915f3 in QtPrivate::FunctionPointer<void (DeckAttributes::*)(double)>::call<QtPrivate::List<double>, void>(void (DeckAttributes::*)(double), DeckAttributes*, void**) (f=(void (DeckAttributes::*)(DeckAttributes * const, double)) 0xa87d02 <DeckAttributes::slotPlayPosChanged(double)>, o=0x490cef0, arg=0x7fffffffbb20) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#20 0x0000000000a90f8f in QtPrivate::QSlotObject<void (DeckAttributes::*)(double), QtPrivate::List<double>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x49ccfb0, r=0x490cef0, a=0x7fffffffbb20, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#21 0x00007ffff62803e9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#22 0x00000000006c9f54 in ControlProxy::valueChanged(double) (this=0x490cf60, _t1=0) at /home/swiftb0y/Sourcerepositories/mixxx/cbuild/mixxx-lib_autogen/include/moc_controlproxy.cpp:168
        _a = {0x0, 0x7fffffffbb10}
#23 0x0000000000508d32 in ControlProxy::slotValueChangedAuto(double, QObject*) (this=0x490cf60, v=0, pSetter=0x37259a0) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/controlproxy.h:192
#24 0x000000000050c6f0 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<double, QObject*>, void, void (ControlProxy::*)(double, QObject*)>::call(void (ControlProxy::*)(double, QObject*), ControlProxy*, void**) (f=(void (ControlProxy::*)(ControlProxy * const, double, QObject *)) 0x508cfe <ControlProxy::slotValueChangedAuto(double, QObject*)>, o=0x490cf60, arg=0x7fffffffbd30) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#25 0x000000000050c341 in QtPrivate::FunctionPointer<void (ControlProxy::*)(double, QObject*)>::call<QtPrivate::List<double, QObject*>, void>(void (ControlProxy::*)(double, QObject*), ControlProxy*, void**) (f=(void (ControlProxy::*)(ControlProxy * const, double, QObject *)) 0x508cfe <ControlProxy::slotValueChangedAuto(double, QObject*)>, o=0x490cf60, arg=0x7fffffffbd30) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#26 0x000000000050be35 in QtPrivate::QSlotObject<void (ControlProxy::*)(double, QObject*), QtPrivate::List<double, QObject*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x49cc910, r=0x490cf60, a=0x7fffffffbd30, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#27 0x00007ffff62803e9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#28 0x00000000006c2528 in ControlDoublePrivate::valueChanged(double, QObject*) (this=0x3725a70, _t1=0, _t2=0x37259a0) at /home/swiftb0y/Sourcerepositories/mixxx/cbuild/mixxx-lib_autogen/include/moc_control.cpp:145
        _a = {0x0, 0x7fffffffbd20, 0x7fffffffbd18}
#29 0x00000000006c3a65 in ControlDoublePrivate::setInner(double, QObject*) (this=0x3725a70, value=0, pSender=0x37259a0) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/control.cpp:223
#30 0x00000000006c3962 in ControlDoublePrivate::set(double, QObject*) (this=0x3725a70, value=0, pSender=0x37259a0) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/control.cpp:210
        pBehavior = {value = 0x3729fa0, d = 0x3729fd0}
#31 0x0000000000538109 in ControlObject::set(double) (this=0x37259a0, value=0) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/controlobject.h:83
#32 0x0000000000783cd3 in EngineBuffer::ejectTrack() (this=0x371b330) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/enginebuffer.cpp:567
        pTrack = std::shared_ptr<Track> (use count 27, weak count 1) = {get() = 0x1a846d50}
#33 0x0000000000786062 in EngineBuffer::slotEjectTrack(double) (this=0x371b330, v=1) at /home/swiftb0y/Sourcerepositories/mixxx/src/engine/enginebuffer.cpp:1352
#34 0x0000000000788b84 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<double>, void, void (EngineBuffer::*)(double)>::call(void (EngineBuffer::*)(double), EngineBuffer*, void**) (f=(void (EngineBuffer::*)(EngineBuffer * const, double)) 0x78600a <EngineBuffer::slotEjectTrack(double)>, o=0x371b330, arg=0x7fffffffc080) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#35 0x00000000007887f2 in QtPrivate::FunctionPointer<void (EngineBuffer::*)(double)>::call<QtPrivate::List<double>, void>(void (EngineBuffer::*)(double), EngineBuffer*, void**) (f=(void (EngineBuffer::*)(EngineBuffer * const, double)) 0x78600a <EngineBuffer::slotEjectTrack(double)>, o=0x371b330, arg=0x7fffffffc080) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#36 0x0000000000788425 in QtPrivate::QSlotObject<void (EngineBuffer::*)(double), QtPrivate::List<double>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x372c230, r=0x371b330, a=0x7fffffffc080, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#37 0x00007ffff62803e9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#38 0x00000000006c8a1e in ControlObject::valueChanged(double) (this=0x372bdb0, _t1=1) at /home/swiftb0y/Sourcerepositories/mixxx/cbuild/mixxx-lib_autogen/include/moc_controlobject.cpp:148
        _a = {0x0, 0x7fffffffc070}
#39 0x00000000006c8d78 in ControlObject::privateValueChanged(double, QObject*) (this=0x372bdb0, dValue=1, pSender=0x11123d90) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/controlobject.cpp:55
#40 0x00000000006c99fc in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<double, QObject*>, void, void (ControlObject::*)(double, QObject*)>::call(void (ControlObject::*)(double, QObject*), ControlObject*, void**) (f=(void (ControlObject::*)(ControlObject * const, double, QObject *)) 0x6c8d44 <ControlObject::privateValueChanged(double, QObject*)>, o=0x372bdb0, arg=0x7fffffffc290) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#41 0x00000000006c991f in QtPrivate::FunctionPointer<void (ControlObject::*)(double, QObject*)>::call<QtPrivate::List<double, QObject*>, void>(void (ControlObject::*)(double, QObject*), ControlObject*, void**) (f=(void (ControlObject::*)(ControlObject * const, double, QObject *)) 0x6c8d44 <ControlObject::privateValueChanged(double, QObject*)>, o=0x372bdb0, arg=0x7fffffffc290) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#42 0x00000000006c97e9 in QtPrivate::QSlotObject<void (ControlObject::*)(double, QObject*), QtPrivate::List<double, QObject*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x372c070, r=0x372bdb0, a=0x7fffffffc290, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#43 0x00007ffff62803e9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#44 0x00000000006c2528 in ControlDoublePrivate::valueChanged(double, QObject*) (this=0x372be50, _t1=1, _t2=0x11123d90) at /home/swiftb0y/Sourcerepositories/mixxx/cbuild/mixxx-lib_autogen/include/moc_control.cpp:145
        _a = {0x0, 0x7fffffffc280, 0x7fffffffc278}
#45 0x00000000006c3a65 in ControlDoublePrivate::setInner(double, QObject*) (this=0x372be50, value=1, pSender=0x11123d90) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/control.cpp:223
#46 0x00000000006c3962 in ControlDoublePrivate::set(double, QObject*) (this=0x372be50, value=1, pSender=0x11123d90) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/control.cpp:210
        pBehavior = {value = 0x372bd00, d = 0x372c210}
#47 0x00000000006c3bd5 in ControlDoublePrivate::setParameter(double, QObject*) (this=0x372be50, dParam=1, pSender=0x11123d90) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/control.cpp:242
        pBehavior = {value = 0x372bd00, d = 0x372c210}
#48 0x00000000005d3b4b in ControlProxy::setParameter(double) (this=0x11123d90, v=1) at /home/swiftb0y/Sourcerepositories/mixxx/src/control/controlproxy.h:159
#49 0x00000000005d2e38 in ControlWidgetConnection::setControlParameter(double) (this=0x11123c30, parameter=1) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/controlwidgetconnection.cpp:48
#50 0x00000000005d328e in ControlParameterWidgetConnection::setControlParameterDown(double) (this=0x11123c30, v=1) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/controlwidgetconnection.cpp:111
#51 0x00000000005d515c in WBaseWidget::setControlParameterLeftDown(double) (this=0x10f6e6a0, v=1) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/wbasewidget.cpp:115
        pControlConnection = 0x11123c30
        __for_range = QList<ControlParameterWidgetConnection *> (size = 1) = {[0] = 0x11123c30}
        __for_begin = {i = 0x111240d0}
        __for_end = {i = 0x111240d8}
#52 0x000000000061d5a9 in WPushButton::mousePressEvent(QMouseEvent*) (this=0x10f6e670, e=0x7fffffffcb50) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/wpushbutton.cpp:409
        emitValue = 1
        leftClick = true
        rightClick = false
#53 0x00007ffff6fd0e7e in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#54 0x000000000064faa5 in WWidget::event(QEvent*) (this=0x10f6e670, e=0x7fffffffcb50) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/wwidget.cpp:95
        __PRETTY_FUNCTION__ = "virtual bool WWidget::event(QEvent*)"
#55 0x000000000061d7c2 in WPushButton::event(QEvent*) (this=0x10f6e670, e=0x7fffffffcb50) at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/wpushbutton.cpp:442
#56 0x00007ffff6f8e443 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#57 0x00007ffff6f96074 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#58 0x00000000004b51d6 in MixxxApplication::notify(QObject*, QEvent*) (this=0x7fffffffd400, target=0x10f6e670, event=0x7fffffffcb50) at /home/swiftb0y/Sourcerepositories/mixxx/src/mixxxapplication.cpp:135
        __PRETTY_FUNCTION__ = "virtual bool MixxxApplication::notify(QObject*, QEvent*)"
#59 0x00007ffff624c7d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#60 0x00007ffff6f94b57 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib64/libQt5Widgets.so.5
#61 0x00007ffff6fea450 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /lib64/libQt5Widgets.so.5
#62 0x00007ffff6fed6e5 in QWidgetWindow::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#63 0x00007ffff6f8e443 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#64 0x00000000004b51d6 in MixxxApplication::notify(QObject*, QEvent*) (this=0x7fffffffd400, target=0x13dfece0, event=0x7fffffffce40) at /home/swiftb0y/Sourcerepositories/mixxx/src/mixxxapplication.cpp:135
        __PRETTY_FUNCTION__ = "virtual bool MixxxApplication::notify(QObject*, QEvent*)"
#65 0x00007ffff624c7d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#66 0x00007ffff6734b98 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib64/libQt5Gui.so.5
#67 0x00007ffff6714c9c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Gui.so.5
#68 0x00007fffdd74d11e in xcbSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5XcbQpa.so.5
#69 0x00007ffff5cc70af in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#70 0x00007ffff5d1c308 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#71 0x00007ffff5cc48a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#72 0x00007ffff629dbb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#73 0x00007ffff624b1e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#74 0x00007ffff6253724 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#75 0x00000000004956ed in (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) (app=0x7fffffffd400, args=...) at /home/swiftb0y/Sourcerepositories/mixxx/src/main.cpp:35
        mainWindow = {<QMainWindow> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff74c0420 <QMainWindow::staticMetaObject>}, stringdata = 0xcbb100 <qt_meta_stringdata_MixxxMainWindow>, data = 0xcbb580 <qt_meta_data_MixxxMainWindow>, static_metacall = 0x49a36e <MixxxMainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_pWidgetParent = 0xff00670, m_pLaunchImage = 0x0, m_pSettingsManager = std::unique_ptr<SettingsManager> = {get() = 0x1582d70}, m_pEffectsManager = 0x190da60, m_pEngine = 0x19b29d0, m_pSkinLoader = 0x187a4b0, m_pSoundManager = 0x1ddfbc0, m_pPlayerManager = 0x3430e30, m_pRecordingManager = 0x232eee0, m_pBroadcastManager = 0x342b990, m_pControllerManager = 0x4aa8490, m_pGuiTick = 0x33b5050, m_pVisualsManager = 0x344a140, m_pVCManager = 0x3427be0, m_pKeyboard = 0x15ec5d0, m_pDbConnectionPool = std::shared_ptr<mixxx::DbConnectionPool> (use count 13, weak count 0) = {get() = 0x17bc7e0}, m_pTrackCollectionManager = 0x490fdf0, m_pLibrary = 0x4943730, m_pMenuBar = {m_ptr = 0x164dfa0}, m_pDeveloperToolsDlg = 0x0, m_pPrefDlg = 0x49999f0, m_pKbdConfig = 0x1570a40, m_pKbdConfigEmpty = 0x1570270, m_toolTipsCfg = mixxx::TooltipsPreference::TOOLTIPS_ON, m_runtime_timer = {m_key = "MixxxMainWindow::runtime", m_compute = 111, m_running = true, m_time = {t1 = 31248, t2 = 878329686}}, m_cmdLineArgs = @0x11d61e0, m_pTouchShift = 0x1902000, m_inhibitScreensaver = mixxx::ScreenSaverPreference::PREVENT_OFF, m_skinCreatedControls = QSet<ControlObject *> (size = 48) = {[0] = 0xfef94b0, [1] = 0xfef5a10, [2] = 0xfefcb70, [3] = 0xfef84c0, [4] = 0xfef8f60, [5] = 0xfefc610, [6] = 0xff00130, [7] = 0x142f3740, [8] = 0x1500c5b0, [9] = 0x10e85330, [10] = 0xfef66e0, [11] = 0x1197ad10, [12] = 0xfefd0d0, [13] = 0xfef9f60, [14] = 0xfef7f50, [15] = 0xfefe0f0, [16] = 0x10e89b40, [17] = 0x1500a4e0, [18] = 0xfefaa20, [19] = 0x10f54a60, [20] = 0x142e6860, [21] = 0xfef8a10, [22] = 0xfeff670, [23] = 0xfeff0f0, [24] = 0xfefb650, [25] = 0xfef73a0, [26] = 0x139ff5f0, [27] = 0xfef7a00, [28] = 0xfef6d40, [29] = 0x1003a290, [30] = 0x142f7f20, [31] = 0xfefa4b0, [32] = 0xfefc0b0, [33] = 0x108fb710, [34] = 0xfefd630, [35] = 0x10f54360, [36] = 0xfef9a20, [37] = 0x11988620, [38] = 0x84b14c0, [39] = 0xfefbb40, [40] = 0xfeffbe0, [41] = 0xfefe650, [42] = 0xfefaf60, [43] = 0xfefdb90, [44] = 0xfef5330, [45] = 0xfef6090, [46] = 0x142e7f00, [47] = 0xfefebb0}, static kMicrophoneCount = 4, static kAuxiliaryCount = 4}
        __PRETTY_FUNCTION__ = "int {anonymous}::runMixxx(MixxxApplication*, const CmdlineArgs&)"
#76 0x000000000049591c in main(int, char**) (argc=7, argv=0x7fffffffd5e8) at /home/swiftb0y/Sourcerepositories/mixxx/src/main.cpp:110
        console = {<No data fields>}
        args = @0x11d61e0: {m_musicFiles = QList<QString> (size = 3) = {[0] = "/home/swiftb0y/Documents/mixxx_dev_settings_folder", [1] = "-platform", [2] = "xcb"}, m_startInFullscreen = false, m_midiDebug = true, m_developer = true, m_safeMode = false, m_debugAssertBreak = false, m_settingsPathSet = true, m_logLevel = mixxx::LogLevel::Debug, m_logFlushLevel = mixxx::LogLevel::Critical, m_locale = "", m_settingsPath = "/home/swiftb0y/Documents/mixxx_dev_settings_folder/", m_resourcePath = "res/", m_timelinePath = ""}
        app = {<QApplication> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff74b54c0 <QApplication::staticMetaObject>}, stringdata = 0xcbe780 <qt_meta_stringdata_MixxxApplication>, data = 0xcbe7c0 <qt_meta_data_MixxxApplication>, static_metacall = 0x4b4d56 <MixxxApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_rightPressedButtons = 0, m_pTouchShift = 0x0}
        exitCode = 0
        __PRETTY_FUNCTION__ = "int main(int, char**)"

@daschuer
Copy link
Member Author

Thank you, AutoDJ is still quite brittle unfortunately.

Yes, these issues are all related to the feature to change the xfader orientation. We have never fully considered it. Thank you for testing.

@daschuer
Copy link
Member Author

OK, Done. All unrelated issue to the original PR, but I am glad we have found and fixed them. I have also added a test.
@Swiftb0y please try again.

@daschuer
Copy link
Member Author

daschuer commented May 8, 2022

@Swiftb0y is this good to merge now?

Copy link
Member

@Swiftb0y Swiftb0y left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. I'm sorry that I have forgotten about this PR. I did some manual changes and I was not able to break AutoDJ in any catastrophic way. I only had some minor issues with the new code. It would be great if you could take care of them before merging.

@daschuer
Copy link
Member Author

daschuer commented May 9, 2022

Done.

Copy link
Member

@Swiftb0y Swiftb0y left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Swiftb0y
Copy link
Member

Swiftb0y commented May 9, 2022

This is quite a large changeset, should we still merge to 2.3?

@daschuer
Copy link
Member Author

Yes!

@Swiftb0y Swiftb0y merged commit 889108a into mixxxdj:2.3 May 10, 2022
@Swiftb0y Swiftb0y added the changelog This PR should be included in the changelog label May 10, 2022
@daschuer
Copy link
Member Author

Thank you for the detailed review!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog This PR should be included in the changelog code quality library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants