https://bugs.kde.org/show_bug.cgi?id=356964

            Bug ID: 356964
           Summary: kjobtrackerstest crashes when done (but not yet
                    exiting)
           Product: frameworks-kio
           Version: unspecified
          Platform: Compiled Sources
                OS: All
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: fa...@kde.org
          Reporter: rjvber...@gmail.com
                CC: kdelibs-b...@kde.org

With KIO 5.17.0, the kjobtrackerstest test crashes when it is done:

Full backtrace from the main thread (the other threads don't give any
additional information):

* thread #1: tid = 0xf20883, 0x000000010125102c
QtCore`QMetaObject::invokeMethod(obj=0x0000000103c4c020,
member=0x00000001000734b7, type=QueuedConnection, val0=(_data = const void * =
0x0000000000000000, _name = const char * = 0x0000000000000000), val1=(_data =
const void * = 0x0000000000000000, _name = const char * = 0x0000000000000000),
val2=(_data = const void * = 0x0000000000000000, _name = const char * =
0x0000000000000000), val3=(_data = const void * = 0x0000000000000000, _name =
const char * = 0x0000000000000000), val4=(_data = const void * =
0x0000000000000000, _name = const char * = 0x0000000000000000), val5=(_data =
const void * = 0x0000000000000000, _name = const char * = 0x0000000000000000),
val6=(_data = const void * = 0x0000000000000000, _name = const char * =
0x0000000000000000), val7=(_data = const void * = 0x0000000000000000, _name =
const char * = 0x0000000000000000), val8=(_data = const void * =
0x0000000000000000, _name = const char * = 0x0000000000000000), val9=(_data =
const void * = 0x0000000000000000, _name = const char * = 0x0000000000000000),
ret=<unavailable>) + 1612 at qmetaobject.cpp:1464, queue =
'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x000000010125102c
QtCore`QMetaObject::invokeMethod(obj=0x0000000103c4c020,
member=0x00000001000734b7, type=QueuedConnection, val0=(_data = const void * =
0x0000000000000000, _name = const char * = 0x0000000000000000), val1=(_data =
const void * = 0x0000000000000000, _name = const char * = 0x0000000000000000),
val2=(_data = const void * = 0x0000000000000000, _name = const char * =
0x0000000000000000), val3=(_data = const void * = 0x0000000000000000, _name =
const char * = 0x0000000000000000), val4=(_data = const void * =
0x0000000000000000, _name = const char * = 0x0000000000000000), val5=(_data =
const void * = 0x0000000000000000, _name = const char * = 0x0000000000000000),
val6=(_data = const void * = 0x0000000000000000, _name = const char * =
0x0000000000000000), val7=(_data = const void * = 0x0000000000000000, _name =
const char * = 0x0000000000000000), val8=(_data = const void * =
0x0000000000000000, _name = const char * = 0x0000000000000000), val9=(_data =
const void * = 0x0000000000000000, _name = const char * = 0x0000000000000000),
ret=<unavailable>) + 1612 at qmetaobject.cpp:1464
    frame #1: 0x0000000100061e31
libKF5JobWidgets.5.dylib`KDialogJobUiDelegate::Private::next() [inlined]
QMetaObject::invokeMethod(obj=0x0000000103c4c020, member=<unavailable>,
type=<unavailable>, val1=(_data = const void * = 0x0000000000000000, _name =
const char * = 0x0000000000000000), val2=(_data = const void * =
0x0000000000000000, _name = const char * = 0x0000000000000000), val3=(_data =
const void * = 0x0000000000000000, _name = const char * = 0x0000000000000000),
val4=(_data = const void * = 0x0000000000000000, _name = const char * =
0x0000000000000000), val5=(_data = const void * = 0x0000000000000000, _name =
const char * = 0x0000000000000000), val6=(_data = const void * =
0x0000000000000000, _name = const char * = 0x0000000000000000), val7=(_data =
const void * = 0x0000000000000000, _name = const char * = 0x0000000000000000),
val8=(_data = const void * = 0x0000000000000000, _name = const char * =
0x0000000000000000), val9=(_data = const void * = 0x0000000000000000, _name =
const char * = 0x0000000000000000)) + 593 at qobjectdefs.h:408
  * frame #2: 0x0000000100061d8d
libKF5JobWidgets.5.dylib`KDialogJobUiDelegate::Private::next(this=0x0000000103c4c020)
+ 429 at kdialogjobuidelegate.cpp:82
    frame #3: 0x00000001012716e3 QtCore`QObject::event(this=<unavailable>,
e=<unavailable>) + 675 at qobject.cpp:1239
    frame #4: 0x000000010018453b
QtWidgets`QApplicationPrivate::notify_helper(this=<unavailable>,
receiver=0x0000000103c4c020, e=0x00000001102005a0) + 251 at
qapplication.cpp:3716
    frame #5: 0x00000001001878f4
QtWidgets`QApplication::notify(this=<unavailable>, receiver=<unavailable>,
e=<unavailable>) + 8212 at qapplication.cpp:3681
    frame #6: 0x00000001012490db
QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
[inlined] QCoreApplication::notifyInternal(this=<unavailable>,
receiver=<unavailable>, event=<unavailable>) + 95 at qcoreapplication.cpp:970
    frame #7: 0x000000010124907c
QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
[inlined] QCoreApplication::sendEvent(receiver=<unavailable>,
event=0x00000001102005a0) + 28 at qcoreapplication.h:224
    frame #8: 0x0000000101249060
QtCore`QCoreApplicationPrivate::sendPostedEvents(receiver=0x0000000000000000,
event_type=0, data=0x0000000103e00a00) + 848 at qcoreapplication.cpp:1598
    frame #9: 0x0000000107f9c6ce
libqcocoa.dylib`QCocoaEventDispatcherPrivate::processPostedEvents(this=0x0000000103e507c0)
+ 190 at qcocoaeventdispatcher.mm:885
    frame #10: 0x0000000107f9cf51
libqcocoa.dylib`QCocoaEventDispatcherPrivate::postedEventsSourceCallback(info=0x0000000103e507c0)
+ 33 at qcocoaeventdispatcher.mm:922
    frame #11: 0x00007fff91f0f5b1
CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #12: 0x00007fff91f00d29 CoreFoundation`__CFRunLoopDoSources0 + 441
    frame #13: 0x00007fff91f003ef CoreFoundation`__CFRunLoopRun + 831
    frame #14: 0x00007fff91effe75 CoreFoundation`CFRunLoopRunSpecific + 309
    frame #15: 0x00007fff94501a0d HIToolbox`RunCurrentEventLoopInMode + 226
    frame #16: 0x00007fff945017b7 HIToolbox`ReceiveNextEventCommon + 479
    frame #17: 0x00007fff945015bc
HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 65
    frame #18: 0x00007fff8bd5d24e AppKit`_DPSNextEvent + 1434
    frame #19: 0x00007fff8bd5c89b AppKit`-[NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
    frame #20: 0x00007fff8bd5099c AppKit`-[NSApplication run] + 553
    frame #21: 0x0000000107f9be3d
libqcocoa.dylib`QCocoaEventDispatcher::processEvents(this=0x0000000103e4e890,
flags=<unavailable>) + 2189 at qcocoaeventdispatcher.mm:418
    frame #22: 0x0000000101245b5d
QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) [inlined]
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 381 at
qeventloop.cpp:128
    frame #23: 0x0000000101245b44
QtCore`QEventLoop::exec(this=0x00007fff5fbfed70, flags=<unavailable>) + 356 at
qeventloop.cpp:204
    frame #24: 0x00000001012489d5 QtCore`QCoreApplication::exec() + 325 at
qcoreapplication.cpp:1234
    frame #25: 0x000000010000453b kjobtrackerstest`main(argc=1,
argv=<unavailable>) + 603 at kjobtrackerstest.cpp:181


The contents of 'this' in frame 2 (frame 3 on Linux):

(lldb) f 2
frame #2: 0x0000000100061d8d
libKF5JobWidgets.5.dylib`KDialogJobUiDelegate::Private::next(this=0x0000000103c4c020)
+ 429 at kdialogjobuidelegate.cpp:82
   79       QSharedPointer<MessageBoxData> data = queue.dequeue();
   80       KMessageBox::messageBox(data->widget, data->type, data->msg);
   81   
-> 82       QMetaObject::invokeMethod(this, "next", Qt::QueuedConnection);
   83   }
   84   
   85   void KDialogJobUiDelegate::Private::queuedMessageBox(QWidget *widget,
KMessageBox::DialogType type, const QString &msg)
(lldb) p *this
(KDialogJobUiDelegate::Private) $2 = {
  QObject = {
    d_ptr = {
      d = 0x0000000103c95400
    }
  }
  window = 0x0000000000000000
  running = false
  queue = {
    QList<QSharedPointer<MessageBoxData> > = {
       = {
        p = {
          d = 0x4060200000000000
        }
        d = 0x4060200000000000
      }
    }
  }
}


Reproducible: Always

Steps to Reproduce:
1. build KIO
2. start tests/kjobtrackerstest.app/Contents/MacOS/kjobtrackerstest (or
tests/kjobtrackerstest on Linux)
3. let it run and then close the information dialog that says 'dir0'

Actual Results:  
crash

Expected Results:  
no crash ...

This looks like an event coming in for an already object corresponding to in
already delete instance, IOW something that should be deleted with
QObject::deleteLater().

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to