Invalid BPM causes DEBUG_ASSERT in SynControl::setLocalBpm
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
New
|
High
|
Unassigned |
Bug Description
Encountered with version 2.4-alpha-
When loading a track using the browse view (i.e. a track not in the library yet), mixxx closed due to a `DEBUG_ASSERT` in `SyncControl:
debug [Main] SqlTransaction - Started new SQL database transaction on "MIXXX-1"
DEBUG ASSERT: "isValid()" in function double mixxx::Bpm::value() const at /home/jan/
Aborted (core dumped)
Here's the backtrace:
>>> bt
#0 0x00007feaea6b0d22 in raise () at /usr/lib/libc.so.6
#1 0x00007feaea69a862 in abort () at /usr/lib/libc.so.6
#2 0x00007feaeace6910 in () at /usr/lib/
#3 0x0000558314958a7d in mixxx::(anonymous namespace)
#4 0x00007feaead1b9a0 in () at /usr/lib/
#5 0x00007feaead1baba in () at /usr/lib/
#6 0x00007feaeace654a in QMessageLogger:
#7 0x00005583149435a0 in mixxx_debug_
#8 0x0000558314993b44 in mixxx_debug_
#9 mixxx::Bpm::value() const (this=<synthetic pointer>) at /home/jan/
#10 mixxx::
#11 SyncControl:
#12 0x0000558314df1d1f in EngineBuffer:
#13 0x0000558314e0102b in EngineMaster:
#14 0x0000558314e01517 in EngineMaster:
#15 0x0000558314af53fb in SoundManager:
#16 0x0000558314fb3784 in SoundDevicePort
#17 0x00007feaef5896c4 in () at /usr/lib/
#18 0x00007feaef58b7c0 in () at /usr/lib/
#19 0x00007feaef59342b in () at /usr/lib/
#20 0x00007feaea84b259 in start_thread () at /usr/lib/
#21 0x00007feaea7725e3 in clone () at /usr/lib/libc.so.6
Looks like the new `localBpm` is assumed to be valid, but it isn't, which leads to the assertion when multiplying it with the rate ratio.
Steps to Reproduce:
1. Load a track onto deck A and start playback
2. Enable Sync Lock on both decks
3. Use the browse view to load any track where the BPM column is empty onto deck B
4. Debug assertion is triggered.