DBus SIGSEGV after geom deadlock
Continuing from the 2nd comment on 20 Feb 2021 from issue #5 (closed).
This is the SIGSEGV I get, after some I/O errors fail to detect the drive's partition, GEOM deadlocks, and the USB flash drive is later unplugged:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000000800876af0 in QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) () from /usr/local/lib/qt5/libQt5Core.so.5
[Current thread is 1 (LWP 101940)]
(gdb) bt
#0 0x0000000800876af0 in QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) () from /usr/local/lib/qt5/libQt5Core.so.5
#1 0x0000000800876934 in QObject::connectImpl(QObject const*, void**, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) () from /usr/local/lib/qt5/libQt5Core.so.5
#2 0x0000000800301b58 in ?? () from /usr/local/lib/qt5/libQt5DBus.so.5
#3 0x00000008002ef509 in QDBusConnection::registerObject(QString const&, QString const&, QObject*, QFlags<QDBusConnection::RegisterOption>) () from /usr/local/lib/qt5/libQt5DBus.so.5
#4 0x00000008002eef93 in QDBusConnection::registerObject(QString const&, QObject*, QFlags<QDBusConnection::RegisterOption>) () from /usr/local/lib/qt5/libQt5DBus.so.5
#5 0x0000000000267880 in ObjectManager::registerDrive (this=0x297d18 <manager>, d=0x8019b9580) at objectmanager.cpp:365
#6 0x0000000000269528 in ObjectManager::addDrive(QString)::$_15::operator()(DiskInfo) const (this=0x8020cc110, di=...) at objectmanager.cpp:230
#7 0x000000000026941d in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<DiskInfo>, void, ObjectManager::addDrive(QString)::$_15>::call(ObjectManager::addDrive(QString)::$_15&, void**) (f=..., arg=0x8021a1468)
at /usr/local/include/qt5/QtCore/qobjectdefs_impl.h:146
#8 0x00000000002693d1 in QtPrivate::Functor<ObjectManager::addDrive(QString)::$_15, 1>::call<QtPrivate::List<DiskInfo>, void>(ObjectManager::addDrive(QString)::$_15&, void*, void**) (f=..., arg=0x8021a1468)
at /usr/local/include/qt5/QtCore/qobjectdefs_impl.h:256
#9 0x000000000026937c in QtPrivate::QFunctorSlotObject<ObjectManager::addDrive(QString)::$_15, 1, QtPrivate::List<DiskInfo>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x8020cc100,
r=0x297d18 <manager>, a=0x8021a1468, ret=0x0) at /usr/local/include/qt5/QtCore/qobjectdefs_impl.h:443
#10 0x000000080086ddcd in QObject::event(QEvent*) () from /usr/local/lib/qt5/libQt5Core.so.5
#11 0x000000080084261d in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/lib/qt5/libQt5Core.so.5
#12 0x0000000800842220 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/local/lib/qt5/libQt5Core.so.5
#13 0x00000008008432b9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/local/lib/qt5/libQt5Core.so.5
#14 0x000000080089bec8 in ?? () from /usr/local/lib/qt5/libQt5Core.so.5
#15 0x000000080169da7e in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.0
#16 0x000000080169de24 in ?? () from /usr/local/lib/libglib-2.0.so.0
#17 0x000000080169dee6 in g_main_context_iteration () from /usr/local/lib/libglib-2.0.so.0
#18 0x000000080089b900 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/lib/qt5/libQt5Core.so.5
#19 0x000000080083e467 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/lib/qt5/libQt5Core.so.5
#20 0x00000008008428be in QCoreApplication::exec() () from /usr/local/lib/qt5/libQt5Core.so.5
#21 0x000000000023cffb in main (argc=3, argv=0x7fffffffeb60) at main.cpp:161