I experienced the abort below, which I can reproduce systematically as follows: 1) start tests/tool/sharetool foo.txt 2) click on the Phabricator button 3) click the Back button immediately, not giving the arcanist helper process time to finish (helper spawned by the DiffRevList class). For a reason which I fail to understand, instead of invoking DiffRevList::done(), the runtime will than invoke DifferentialRevision::done(), which is indeed a pure virtual function. I verified this by implementing it and letting it call qFatal(). I see three possible solution: 1) make DifferentialRevision::done() a stub method that does nothing 2) don't connect m_arcCmd's finished signal to DifferentialRevision::done() (and connect m_arcCmd to the appropriate slot in each class inheriting DifferentialRevision 3) disconnect m_arcCmd's finished signal in DiffRevList::buildArcCommand() . Options 2 & 3 are maybe cleaner than 1), with 3) requiring less changes than 2). (btw, Purpose should list the bug-reporting address so crashes can be reported via DrKonqi, no?) Thread 1 (Thread 0x7f5498f23780 (LWP 11318)): [KCrash Handler] #6 0x00007f5495a13c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #7 0x00007f5495a17028 in __GI_abort () at abort.c:89 #8 0x00007f549632f415 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #9 0x00007f549632d206 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #10 0x00007f549632d251 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #11 0x00007f549632df8f in __cxa_pure_virtual () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #12 0x00007f549689332e in call (a=0x7ffcd4e23bb0, r=0x44f7ea0, this=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/../../src/corelib/kernel/qobject_impl.h:101 #13 QMetaObject::activate (sender=sender@entry=0x44f7eb8, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffcd4e23bb0) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:3723 #14 0x00007f54968938c7 in QMetaObject::activate (sender=sender@entry=0x44f7eb8, m=m@entry=0x7f5496cb11c0 <QProcess::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffcd4e23bb0) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:3602 #15 0x00007f54967a162f in QProcess::finished (this=this@entry=0x44f7eb8, _t1=<optimized out>, _t2=<optimized out>) at .moc/moc_qprocess.cpp:334 #16 0x00007f54967a9263 in QProcessPrivate::_q_processDied (this=this@entry=0x45269e0) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/io/qprocess.cpp:1176 #17 0x00007f5496800927 in QProcessPrivate::waitForFinished (this=this@entry=0x45269e0, msecs=msecs@entry=30000) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/io/qprocess_unix.cpp:895 #18 0x00007f54967a35bd in QProcess::waitForFinished (this=this@entry=0x44f7eb8, msecs=msecs@entry=30000) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/io/qprocess.cpp:1919 #19 0x00007f54967a3d0d in QProcess::~QProcess (this=0x44f7eb8, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/io/qprocess.cpp:1258 #20 0x00007f546e57b16b in Phabricator::DifferentialRevision::~DifferentialRevision (this=0x44f7ea0) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-purpose/kf5-purpose-devel/work/build/src/plugins/phabricator/PhabricatorHelpers_autogen/EWIEGA46WW/../../../../../../../../../../../../../../home/bertin/work/src/Scratch/KDE/KF5/purpose-git/src/plugins/phabricator/phabricatorjobs.h:38 #21 0x00007f546e57b468 in ~DiffRevList (this=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-purpose/kf5-purpose-devel/work/build/src/plugins/phabricator/PhabricatorHelpers_autogen/EWIEGA46WW/../../../../../../../../../../../../../../home/bertin/work/src/Scratch/KDE/KF5/purpose-git/src/plugins/phabricator/phabricatorjobs.h:112 #22 Phabricator::DiffRevList::~DiffRevList (this=0x44f7ea0) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-purpose/kf5-purpose-devel/work/build/src/plugins/phabricator/PhabricatorHelpers_autogen/EWIEGA46WW/../../../../../../../../../../../../../../home/bertin/work/src/Scratch/KDE/KF5/purpose-git/src/plugins/phabricator/phabricatorjobs.h:112 #23 0x00007f5496890cb1 in QObjectPrivate::deleteChildren (this=this@entry=0x44f7da0) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1970 #24 0x00007f549689a92f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1041 #25 0x00007f546e784098 in ~DiffListModel (this=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-purpose/kf5-purpose-devel/work/kf5-purpose-5/src/plugins/phabricator/quick/difflistmodel.h:31 #26 ~QQmlElement (this=<optimized out>) at /opt/local/include/qt5/QtQml/qqmlprivate.h:104 #27 QQmlPrivate::QQmlElement<DiffListModel>::~QQmlElement (this=0x44f7ce0) at /opt/local/include/qt5/QtQml/qqmlprivate.h:102 #28 0x00007f5496890cb1 in QObjectPrivate::deleteChildren (this=this@entry=0x436c980) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1970 #29 0x00007f549689a92f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1041 #30 0x00007f5483b96a7f in QQuickItem::~QQuickItem (this=0x44ef2e0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/quick/items/qquickitem.cpp:2296 #31 0x00007f5483baecf6 in ~QQmlElement (this=0x44ef2e0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #32 QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement (this=0x44ef2e0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #33 0x00007f5496890cb1 in QObjectPrivate::deleteChildren (this=this@entry=0x4501c80) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1970 #34 0x00007f549689a92f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1041 #35 0x00007f5483b96a7f in QQuickItem::~QQuickItem (this=0x44e30a0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/quick/items/qquickitem.cpp:2296 #36 0x00007f5475fa9f9a in QQuickLayout::~QQuickLayout (this=0x44e30a0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/imports/layouts/qquicklayout.cpp:698 #37 0x00007f5475fa6fa4 in ~QQuickLinearLayout (this=0x44e30a0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/imports/layouts/qquicklinearlayout_p.h:191 #38 ~QQuickColumnLayout (this=0x44e30a0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/imports/layouts/qquicklinearlayout_p.h:238 #39 ~QQmlElement (this=0x44e30a0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #40 QQmlPrivate::QQmlElement<QQuickColumnLayout>::~QQmlElement (this=0x44e30a0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #41 0x00007f5496890cb1 in QObjectPrivate::deleteChildren (this=this@entry=0x456d2e0) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1970 #42 0x00007f549689a92f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1041 #43 0x00007f5483b96a7f in QQuickItem::~QQuickItem (this=0x4572980, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/quick/items/qquickitem.cpp:2296 #44 0x00007f5483bafd56 in ~QQmlElement (this=0x4572980, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #45 QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement (this=0x4572980, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #46 0x00007f5496890cb1 in QObjectPrivate::deleteChildren (this=this@entry=0x4506130) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1970 #47 0x00007f549689a92f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1041 #48 0x00007f5483b96a7f in QQuickItem::~QQuickItem (this=0x45034f0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/quick/items/qquickitem.cpp:2296 #49 0x00007f5483baecf6 in ~QQmlElement (this=0x45034f0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #50 QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement (this=0x45034f0, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #51 0x00007f5496890cb1 in QObjectPrivate::deleteChildren (this=this@entry=0x45ab920) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1970 #52 0x00007f549689a92f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1041 #53 0x00007f5483b96a7f in QQuickItem::~QQuickItem (this=0x457e870, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/quick/items/qquickitem.cpp:2296 #54 0x00007f5475fa9f9a in QQuickLayout::~QQuickLayout (this=0x457e870, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/imports/layouts/qquicklayout.cpp:698 #55 0x00007f5475fa6fa4 in ~QQuickLinearLayout (this=0x457e870, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/imports/layouts/qquicklinearlayout_p.h:191 #56 ~QQuickColumnLayout (this=0x457e870, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/imports/layouts/qquicklinearlayout_p.h:238 #57 ~QQmlElement (this=0x457e870, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #58 QQmlPrivate::QQmlElement<QQuickColumnLayout>::~QQmlElement (this=0x457e870, __in_chrg=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/include/QtQml/../../src/qml/qml/qqmlprivate.h:104 #59 0x00007f5496894158 in QObject::event (this=this@entry=0x457e870, e=e@entry=0x4608160) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1254 #60 0x00007f5483b9395b in QQuickItem::event (this=0x457e870, ev=0x4608160) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtdeclarative/src/quick/items/qquickitem.cpp:7698 #61 0x00007f5497970a5c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x457e870, e=0x4608160) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/widgets/kernel/qapplication.cpp:3745 #62 0x00007f5497977cd1 in QApplication::notify (this=0x7ffcd4e24ba0, receiver=0x457e870, e=0x4608160) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/widgets/kernel/qapplication.cpp:3502 #63 0x00007f5496868018 in QCoreApplication::notifyInternal2 (receiver=0x457e870, event=event@entry=0x4608160) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.cpp:995 #64 0x00007f549686a67d in sendEvent (event=0x4608160, receiver=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.h:231 #65 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x24c4330) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.cpp:1655 #66 0x00007f549686aae8 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.cpp:1509 #67 0x00007f54968ba173 in postEventSourceDispatch (s=0x2526240) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:276 #68 0x00007f5493995e37 in g_main_context_dispatch () from /opt/local/lib/libglib-2.0.so.0 #69 0x00007f5493996108 in g_main_context_iterate.isra () from /opt/local/lib/libglib-2.0.so.0 #70 0x00007f549399618c in g_main_context_iteration () from /opt/local/lib/libglib-2.0.so.0 #71 0x00007f54968ba57f in QEventDispatcherGlib::processEvents (this=0x2525140, flags=...) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423 #72 0x00007f549686617a in QEventLoop::exec (this=this@entry=0x7ffcd4e24ab0, flags=..., flags@entry=...) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventloop.cpp:212 #73 0x00007f549686e524 in QCoreApplication::exec () at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.cpp:1268 #74 0x000000000040391f in main (argc=<optimized out>, argv=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-purpose/kf5-purpose-devel/work/kf5-purpose-5/tests/tool/main.cpp:104
Created attachment 108879 [details] my current workaround patch I'm currently using this workaround, implementing option #3. Option 2) would require overriding `buildArcCommand()` in all child classes, which feels heavy-handed would undo much of the interest of the DifferentialRevision parent class.
Well, wait, this means we are doing a wrong cast, no?
We - or maybe rather the runtime, unlikely as that sound - so we're probably doing something else wrong (but we aren't casting anything here; maybe we should?) The way this is designed is - the base class provides a QProcess and connects a signal from that QProcess to a purely virtual slot - derived classes have to provide the implementation for that slot - the derived slot is the only one that should ever be called (evidently) `DiffRevList` is the only derived class that provides its own `buildArcCommand` implementation and that thus has to connect m_arcCmd's `finished` signal to its overridden `done` slot. I'm getting a bit lost here; why would m_arcCmd::finished be connected to DifferentialRevision::done if DifferentialRevision::buildArcCommand() isn't called (because overridden)?
Thank you for reporting this issue in KDE software. As it has been a while since this issue was reported, can we please ask you to see if you can reproduce the issue with a recent software version? If you can reproduce the issue, please change the status to "REPORTED" when replying. Thank you!
Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone!
This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging Thank you for helping us make KDE software even better for everyone!