DEBUG ASSERT when ejecting track

Bug #1942715 reported by Uwe Klotz
4
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Committed
Undecided
Jan Holthuis

Bug Description

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>)

Revision history for this message
Jan Holthuis (holthuis-jan) wrote :
Changed in mixxx:
status: New → In Progress
assignee: nobody → Jan Holthuis (holthuis-jan)
Be (be.ing)
Changed in mixxx:
status: In Progress → Fix Committed
milestone: none → 2.4.0
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/10514

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.