Comment 3 for bug 1940589

Revision history for this message
Jan Holthuis (holthuis-jan) wrote :

I actually don't know. I just happened again, but looking at the coredump I doesn't look like m_pEngineSync is null:

    Program terminated with signal SIGSEGV, Segmentation fault.
    #0 0x000055abf33c004b in SyncControl::slotControlPlay (this=0x55abf5c19cd0, play=0) at /home/jan/Projects/mixxx/src/engine/sync/synccontrol.cpp:385
    385 m_pEngineSync->notifyPlayingAudible(this, play > 0.0 && m_audible);
    [Current thread is 1 (Thread 0x7fe75f19f640 (LWP 245841))]
    >>> bt
    #0 0x000055abf33c004b in SyncControl::slotControlPlay(double) (this=0x55abf5c19cd0, play=0) at /home/jan/Projects/mixxx/src/engine/sync/synccontrol.cpp:385
    #1 0x00007fe77335f76b in () at /usr/lib/libQt5Core.so.5
    #2 0x000055abf32d7ef0 in ControlProxy::valueChanged(double) (this=<optimized out>, _t1=<optimized out>) at /home/jan/Projects/mixxx/build/mixxx-lib_autogen/include/moc_controlproxy.cpp:164
    #3 0x00007fe77335f76b in () at /usr/lib/libQt5Core.so.5
    #4 0x000055abf32cb755 in ControlDoublePrivate::valueChanged(double, QObject*) (this=this@entry=0x55abf5bca2d0, _t1=<optimized out>, _t1@entry=0, _t2=<optimized out>) at /home/jan/Projects/mixxx/build/mixxx-lib_autogen/include/moc_control.cpp:145
    #5 0x000055abf32cb8ce in ControlDoublePrivate::setInner(double, QObject*) (this=0x55abf5bca2d0, value=0, pSender=<optimized out>) at /home/jan/Projects/mixxx/src/control/control.cpp:280
    #6 0x00007fe77335f76b in () at /usr/lib/libQt5Core.so.5
    #7 0x000055abf32cb6e3 in ControlDoublePrivate::valueChangeRequest(double) (this=this@entry=0x55abf5bca2d0, _t1=<optimized out>) at /home/jan/Projects/mixxx/build/mixxx-lib_autogen/include/moc_control.cpp:152
    #8 0x000055abf32cc628 in ControlDoublePrivate::set(double, QObject*) (this=0x55abf5bca2d0, value=<optimized out>, pSender=0x55abf5bca230) at /home/jan/Projects/mixxx/src/control/control.cpp:265
    #9 0x000055abf33988d7 in ControlObject::set(double) (value=<optimized out>, this=<optimized out>) at /home/jan/Projects/mixxx/src/control/controlobject.h:83
    #10 EngineBuffer::slotTrackLoading() (this=0x55abf5bc2250) at /home/jan/Projects/mixxx/src/engine/enginebuffer.cpp:529
    #11 0x00007fe77335f76b in () at /usr/lib/libQt5Core.so.5
    #12 0x00007fe77335f76b in () at /usr/lib/libQt5Core.so.5
    #13 0x000055abf3366e50 in CachingReaderWorker::loadTrack(std::shared_ptr<Track> const&) (this=0x55abf5bc56e8, pTrack=std::shared_ptr<Track> (use count 3, weak count 0) = {...}) at /home/jan/Projects/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:136
    #14 0x000055abf3368e9d in CachingReaderWorker::run() (this=0x55abf5bc56e8) at /home/jan/Projects/mixxx/src/engine/cachingreader/cachingreaderworker.cpp:104
    #15 0x00007fe77313cfef in () at /usr/lib/libQt5Core.so.5
    #16 0x00007fe772c57259 in start_thread () at /usr/lib/libpthread.so.0
    #17 0x00007fe772b805e3 in clone () at /usr/lib/libc.so.6
    >>> p m_audible
    $1 = {
      <QAtomicInteger<int>> = {
        <QBasicAtomicInteger<int>> = {
          _q_value = {
            <std::__atomic_base<int>> = {
              static _S_alignment = 4,
              _M_i = 0
            },
            members of std::atomic<int>:
            static is_always_lock_free = true
          }
        }, <No data fields>}, <No data fields>}
    >>> p play
    $2 = 0
    >>> p this
    $3 = (SyncControl * const) 0x55abf5c19cd0
    >>> p m_pEngineSync
    $4 = (SyncableListener *) 0x55abf593f7c0

All of these seem to exist. My hunch was that `m_audible` was not initialized, but according to the Qt docs, it's initialized with 0 in that case: https://doc.qt.io/qt-5/qatomicinteger.html#QAtomicInteger