Caused by comparison of invalid FramePos values:
#4 0x00000000004a3e2e in mixxx_debug_assert(char const*, char const*, int, char const*)
(assertion=assertion@entry=0x10b7be3 "isValid()", file=file@entry=0x10b7c93 "../src/audio/frame.h", line=line@entry=92, function=function@entry=0x10b7470 "mixxx::audio::FramePos::value_t mixxx::audio::FramePos::value() const") at ../src/util/assert.h:9
#5 0x000000000055de0a in mixxx_debug_assert_return_true(char const*, char const*, int, char const*)
(function=0x10b7470 "mixxx::audio::FramePos::value_t mixxx::audio::FramePos::value() const", line=92, file=0x10b7c93 "../src/audio/frame.h", assertion=0x10b7be3 "isValid()")
at ../src/util/assert.h:18
#6 mixxx::audio::FramePos::value() const (this=<synthetic pointer>) at ../src/audio/frame.h:92
#7 mixxx::audio::operator<=(mixxx::audio::FramePos, mixxx::audio::FramePos) (frame2=..., frame1=...) at ../src/audio/frame.h:184
#8 LoopingControl::slotLoopStartPos(double) (this=<optimized out>, positionSamples=<optimized out>) at ../src/engine/controls/loopingcontrol.cpp:968
#9 0x00007ffff378b3a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#10 0x00000000007a5ce0 in ControlObject::valueChanged(double) (this=<optimized out>, _t1=<optimized out>) at mixxx-lib_autogen/include/moc_controlobject.cpp:148
#11 0x00007ffff378b3a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#12 0x000000000079ecb5 in ControlDoublePrivate::valueChanged(double, QObject*) (this=this@entry=0x2db5380, _t1=<optimized out>, _t1@entry=-1, _t2=<optimized out>)
at mixxx-lib_autogen/include/moc_control.cpp:145
#13 0x000000000079ee0e in ControlDoublePrivate::setInner(double, QObject*) (this=0x2db5380, value=-1, pSender=<optimized out>) at ../src/control/control.cpp:280
#14 0x000000000079fab6 in ControlDoublePrivate::set(double, QObject*) (this=0x2db5380, value=<optimized out>, value@entry=-1, pSender=0x2f69d00) at ../src/control/control.cpp:267
#15 0x0000000000df84a8 in ControlProxy::set(double) (v=-1, this=<optimized out>) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:301
#16 BaseTrackPlayerImpl::slotTrackLoaded(std::shared_ptr<Track>, std::shared_ptr<Track>) (this=Python Exception <class 'gdb.error'> value has been optimized out:
Python Exception <class 'gdb.error'> value has been optimized out:
0x16a52a0, pNewTrack=, pOldTrack=) at ../src/mixer/basetrackplayer.cpp:455
#17 0x0000000000dfad2f in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<std::shared_ptr<Track>, std::shared_ptr<Track> >, void, void (BaseTrackPlayerImpl::*)(std::shared_ptr<Track>, std::shared_ptr<Track>)>::call(void (BaseTrackPlayerImpl::*)(std::shared_ptr<Track>, std::shared_ptr<Track>), BaseTrackPlayerImpl*, void**)
(arg=<optimized out>, o=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#18 QtPrivate::FunctionPointer<void (BaseTrackPlayerImpl::*)(std::shared_ptr<Track>, std::shared_ptr<Track>)>::call<QtPrivate::List<std::shared_ptr<Track>, std::shared_ptr<Track> >, void>(void (BaseTrackPlayerImpl::*)(std::shared_ptr<Track>, std::shared_ptr<Track>), BaseTrackPlayerImpl*, void**) (arg=<optimized out>, o=<optimized out>, f=<optimized out>)
at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#19 QtPrivate::QSlotObject<void (BaseTrackPlayerImpl::*)(std::shared_ptr<Track>, std::shared_ptr<Track>), QtPrivate::List<std::shared_ptr<Track>, std::shared_ptr<Track> >, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>)
at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#20 0x00007ffff378b3a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#21 0x0000000000872760 in EngineBuffer::trackLoaded(std::shared_ptr<Track>, std::shared_ptr<Track>) (this=this@entry=0x2d9f280, _t1=std::shared_ptr<Track> (empty) = {...}, _t2=
std::shared_ptr<Track> (use count 10, weak count 1) = {...}) at mixxx-lib_autogen/include/moc_enginebuffer.cpp:262
#22 0x0000000000876382 in EngineBuffer::notifyTrackLoaded(std::shared_ptr<Track>, std::shared_ptr<Track>)
(this=0x2d9f280, pNewTrack=std::shared_ptr<Track> (empty) = {...}, pOldTrack=std::shared_ptr<Track> (use count 10, weak count 1) = {...}) at ../src/engine/enginebuffer.cpp:647
#23 0x0000000000877243 in EngineBuffer::ejectTrack() (this=0x2d9f280) at ../src/engine/enginebuffer.cpp:610
#24 0x00007ffff378b3a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#25 0x00000000007a5ce0 in ControlObject::valueChanged(double) (this=<optimized out>, _t1=<optimized out>) at mixxx-lib_autogen/include/moc_controlobject.cpp:148
#26 0x00007ffff378b3a9 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#27 0x000000000079ecb5 in ControlDoublePrivate::valueChanged(double, QObject*) (this=this@entry=0x2dafc10, _t1=<optimized out>, _t1@entry=1, _t2=<optimized out>)
https:/ /github. com/mixxxdj/ mixxx/pull/ 4266