SIGSEGV when umount fails
In the latest bsdisks, with the patch from #7 (closed), when a terminal is open in the mounted filesystem, and I try to unmount it through the eject icon in Thunar, bsdisks crashes and it remains mounted:
#0 0x000000080033e9c7 in QDBusContext::message() const () from /usr/local/lib/qt5/libQt5DBus.so.5
[Current thread is 1 (LWP 102136)]
(gdb) bt
#0 0x000000080033e9c7 in QDBusContext::message() const () from /usr/local/lib/qt5/libQt5DBus.so.5
#1 0x0000000000259ef7 in BlockFilesystem::Unmount(QMap<QString, QVariant> const&)::$_21::operator()(int, QProcess::ExitStatus) const (this=0x8020f5140, exitCode=1, exitStatus=QProcess::NormalExit) at blockfilesystem.cpp:266
#2 0x0000000000259ded in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<int, QProcess::ExitStatus>, void, BlockFilesystem::Unmount(QMap<QString, QVariant> const&)::$_21>::call(BlockFilesystem::Unmount(QMap<QString, QVariant> const&)::$_21&, void**) (f=..., arg=0x7fffffffe170) at /usr/local/include/qt5/QtCore/qobjectdefs_impl.h:146
#3 0x0000000000259db1 in QtPrivate::Functor<BlockFilesystem::Unmount(QMap<QString, QVariant> const&)::$_21, 2>::call<QtPrivate::List<int, QProcess::ExitStatus>, void>(BlockFilesystem::Unmount(QMap<QString, QVariant> const&)::$_21&, void*, void**) (f=..., arg=0x7fffffffe170) at /usr/local/include/qt5/QtCore/qobjectdefs_impl.h:256
#4 0x0000000000259d3c in QtPrivate::QFunctorSlotObject<BlockFilesystem::Unmount(QMap<QString, QVariant> const&)::$_21, 2, QtPrivate::List<int, QProcess::ExitStatus>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x8020f5130, r=0x8021b3510, a=0x7fffffffe170, ret=0x0) at /usr/local/include/qt5/QtCore/qobjectdefs_impl.h:443
#5 0x0000000800879fff in ?? () from /usr/local/lib/qt5/libQt5Core.so.5
#6 0x00000008007c25ce in ?? () from /usr/local/lib/qt5/libQt5Core.so.5
#7 0x00000008007c57ca in ?? () from /usr/local/lib/qt5/libQt5Core.so.5
#8 0x000000080087a129 in ?? () from /usr/local/lib/qt5/libQt5Core.so.5
#9 0x000000080087eb09 in QSocketNotifier::event(QEvent*) () from /usr/local/lib/qt5/libQt5Core.so.5
#10 0x000000080084261d in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/lib/qt5/libQt5Core.so.5
#11 0x0000000800842220 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/local/lib/qt5/libQt5Core.so.5
#12 0x000000080089c0b5 in ?? () from /usr/local/lib/qt5/libQt5Core.so.5
#13 0x000000080169da7e in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.0
#14 0x000000080169de24 in ?? () from /usr/local/lib/libglib-2.0.so.0
#15 0x000000080169dee6 in g_main_context_iteration () from /usr/local/lib/libglib-2.0.so.0
#16 0x000000080089b91b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/lib/qt5/libQt5Core.so.5
#17 0x000000080083e467 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/lib/qt5/libQt5Core.so.5
#18 0x00000008008428be in QCoreApplication::exec() () from /usr/local/lib/qt5/libQt5Core.so.5
#19 0x000000000023d01b in main (argc=3, argv=0x7fffffffeb50) at main.cpp:161