Application: partitionmanager (3.2.1) Qt Version: 5.9.4 Frameworks Version: 5.44.0 Operating System: Linux 4.15.17-300.fc27.x86_64 x86_64 Distribution (Platform): Fedora RPMs -- Information about the crash: Steps to reproduce: 1. Run KPM 2. Enter root password 3. Close "Scanning devices..." with 'X' 4. Immediately close KPM while the cursor is still busy 5. KPM crashes Additional info: This also occurs after an operation was completed. After the report dialogue window is dismissed, the user may want to quit immediately and does above steps 3 and 4. It doesn't seem to happen after the spinner cursor is gone or when run without root privileges. The crash can be reproduced every time. -- Backtrace: Application: KDE Partition Manager (partitionmanager), signal: Aborted Using host libthread_db library "/lib64/libthread_db.so.1". [Current thread is 1 (Thread 0x7feedf798e00 (LWP 7010))] Thread 3 (Thread 0x7feea375f700 (LWP 8748)): #0 0x00007feed9bead66 in ppoll () from /lib64/libc.so.6 #1 0x00007feedaa45ec5 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77 #2 qt_ppoll (timeout_ts=0x0, nfds=4, fds=0x7feea375e6a0) at kernel/qcore_unix.cpp:81 #3 qt_safe_poll (fds=0x7feea375e6a0, nfds=4, timeout_ts=<optimized out>) at kernel/qcore_unix.cpp:102 #4 0x00007feeda98de02 in qt_poll_msecs (timeout=<optimized out>, nfds=<optimized out>, fds=0x7feea375e6a0) at ../../include/QtCore/5.9.4/QtCore/private/../../../../../src/corelib/kernel/qcore_unix_p.h:353 #5 (anonymous namespace)::QProcessPoller::poll (this=this@entry=0x7feea375e6a0, timeout=<optimized out>) at io/qprocess_unix.cpp:188 #6 0x00007feeda98f327 in QProcessPrivate::waitForFinished (this=this@entry=0x7fee940bce70, msecs=msecs@entry=-1) at io/qprocess_unix.cpp:871 #7 0x00007feeda9858cb in QProcess::waitForFinished (this=this@entry=0x7feea375e7f0, msecs=msecs@entry=-1) at io/qprocess.cpp:1924 #8 0x00007feedf12aa3e in ExternalCommand::waitFor (this=this@entry=0x7feea375e7f0, timeout=timeout@entry=-1) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/src/util/externalcommand.cpp:98 #9 0x00007feedf12ac3a in ExternalCommand::run (this=this@entry=0x7feea375e7f0, timeout=timeout@entry=-1) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/src/util/externalcommand.cpp:114 #10 0x00007feedf0e190a in FS::ntfs::readUsedCapacity (this=this@entry=0x7fee94001600, deviceNode=...) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/src/fs/ntfs.cpp:111 #11 0x00007feebb4ffb92 in readSectorsUsed (mountPoint=..., p=..., d=..., pedDisk=0x7fee940b1560) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/src/plugins/libparted/libpartedbackend.cpp:206 #12 LibPartedBackend::scanDevicePartitions (this=this@entry=0x565055600150, d=..., pedDisk=pedDisk@entry=0x7fee940b1560) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/src/plugins/libparted/libpartedbackend.cpp:358 #13 0x00007feebb50028a in LibPartedBackend::scanDevice (this=0x565055600150, deviceNode=...) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/src/plugins/libparted/libpartedbackend.cpp:407 #14 0x00007feebb500db5 in LibPartedBackend::scanDevices (this=0x565055600150, excludeReadOnly=false) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/src/plugins/libparted/libpartedbackend.cpp:454 #15 0x00007feedf0f09d5 in DeviceScanner::scan (this=0x56505560a830) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/src/core/devicescanner.cpp:67 #16 0x00007feeda84cde2 in QThreadPrivate::start (arg=0x56505560a830) at thread/qthread_unix.cpp:368 #17 0x00007feed6c1f50b in start_thread () from /lib64/libpthread.so.0 #18 0x00007feed9bf516f in clone () from /lib64/libc.so.6 Thread 2 (Thread 0x7feebbf0f700 (LWP 7012)): #0 0x00007feed9beac6b in poll () from /lib64/libc.so.6 #1 0x00007feed2acae99 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0 #2 0x00007feed2acafac in g_main_context_iteration () from /lib64/libglib-2.0.so.0 #3 0x00007feedaa49c4b in QEventDispatcherGlib::processEvents (this=0x7feeb4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007feeda9f796a in QEventLoop::exec (this=this@entry=0x7feebbf0ec20, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #5 0x00007feeda8488ca in QThread::exec (this=this@entry=0x7feedc5b1060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:515 #6 0x00007feedc33d449 in QDBusConnectionManager::run (this=0x7feedc5b1060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178 #7 0x00007feeda84cde2 in QThreadPrivate::start (arg=0x7feedc5b1060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:368 #8 0x00007feed6c1f50b in start_thread () from /lib64/libpthread.so.0 #9 0x00007feed9bf516f in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7feedf798e00 (LWP 7010)): [KCrash Handler] #4 0x00007feed9b34660 in raise () from /lib64/libc.so.6 #5 0x00007feed9b35c41 in abort () from /lib64/libc.so.6 #6 0x00007feeda83a657 in qt_message_fatal (context=..., message=<synthetic pointer>...) at global/qlogging.cpp:1690 #7 QMessageLogger::fatal (this=this@entry=0x7ffded09ce00, msg=msg@entry=0x7feedaa92d28 "QThread: Destroyed while thread is still running") at global/qlogging.cpp:796 #8 0x00007feeda8478ad in QThread::~QThread (this=0x56505560a830, __in_chrg=<optimized out>) at thread/qthread.cpp:429 #9 0x00007feedf135917 in DeviceScanner::~DeviceScanner (this=0x56505560a830, __in_chrg=<optimized out>) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/x86_64-redhat-linux-gnu/src/kpmcore_autogen/TAC5DWH4SE/../../../../src/core/devicescanner.h:33 #10 DeviceScanner::~DeviceScanner (this=0x56505560a830, __in_chrg=<optimized out>) at /usr/src/debug/kpmcore-3.2.1-1.fc27.x86_64/x86_64-redhat-linux-gnu/src/kpmcore_autogen/TAC5DWH4SE/../../../../src/core/devicescanner.h:33 #11 0x00007feedaa27cc8 in QObjectPrivate::deleteChildren (this=this@entry=0x5650555f1b40) at kernel/qobject.cpp:1992 #12 0x00007feedb6a3f84 in QWidget::~QWidget (this=0x5650555f6c50, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1700 #13 0x00007feede8a9d6d in KMainWindow::~KMainWindow (this=0x5650555f6c50, __in_chrg=<optimized out>) at /usr/src/debug/kf5-kxmlgui-5.44.0-1.fc27.x86_64/src/kmainwindow.cpp:393 #14 0x0000565053c7a0e4 in MainWindow::~MainWindow (this=0x5650555f6c50, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/kde-partitionmanager-3.2.1-3.fc27.1.x86_64/x86_64-redhat-linux-gnu/src/partitionmanager_autogen/DMHXEJ42XS/../../../../src/gui/mainwindow.h:48 #15 MainWindow::~MainWindow (this=0x5650555f6c50, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/kde-partitionmanager-3.2.1-3.fc27.1.x86_64/x86_64-redhat-linux-gnu/src/partitionmanager_autogen/DMHXEJ42XS/../../../../src/gui/mainwindow.h:48 #16 0x00007feedaa22288 in QObject::event (this=this@entry=0x5650555f6c50, e=e@entry=0x565055a1efa0) at kernel/qobject.cpp:1237 #17 0x00007feedb6a8953 in QWidget::event (this=this@entry=0x5650555f6c50, event=event@entry=0x565055a1efa0) at kernel/qwidget.cpp:9345 #18 0x00007feedb7bc59b in QMainWindow::event (this=this@entry=0x5650555f6c50, event=event@entry=0x565055a1efa0) at widgets/qmainwindow.cpp:1563 #19 0x00007feede8ac1b7 in KMainWindow::event (this=this@entry=0x5650555f6c50, ev=ev@entry=0x565055a1efa0) at /usr/src/debug/kf5-kxmlgui-5.44.0-1.fc27.x86_64/src/kmainwindow.cpp:865 #20 0x00007feede8f0f05 in KXmlGuiWindow::event (this=0x5650555f6c50, ev=0x565055a1efa0) at /usr/src/debug/kf5-kxmlgui-5.44.0-1.fc27.x86_64/src/kxmlguiwindow.cpp:119 #21 0x00007feedb66992c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5650555f6c50, e=0x565055a1efa0) at kernel/qapplication.cpp:3722 #22 0x00007feedb671174 in QApplication::notify (this=0x7ffded09d710, receiver=0x5650555f6c50, e=0x565055a1efa0) at kernel/qapplication.cpp:3481 #23 0x00007feeda9f8be7 in QCoreApplication::notifyInternal2 (receiver=0x5650555f6c50, event=event@entry=0x565055a1efa0) at kernel/qcoreapplication.cpp:1016 #24 0x00007feeda9fb36b in QCoreApplication::sendEvent (event=0x565055a1efa0, receiver=<optimized out>) at kernel/qcoreapplication.h:233 #25 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x56505556fae0) at kernel/qcoreapplication.cpp:1676 #26 0x00007feeda9fb888 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1530 #27 0x00007feedaa49e43 in postEventSourceDispatch (s=0x5650555bfb70) at kernel/qeventdispatcher_glib.cpp:276 #28 0x00007feed2acab77 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0 #29 0x00007feed2acaf20 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0 #30 0x00007feed2acafac in g_main_context_iteration () from /lib64/libglib-2.0.so.0 #31 0x00007feedaa49c2f in QEventDispatcherGlib::processEvents (this=0x5650555b90b0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #32 0x00007feeda9f796a in QEventLoop::exec (this=this@entry=0x7ffded09d620, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #33 0x00007feedaa00094 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1289 #34 0x0000565053c2101b in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kde-partitionmanager-3.2.1-3.fc27.1.x86_64/src/main.cpp:93 Reported using DrKonqi
Actually, could this be drkonqi activating erroneously?
Ok, I can reproduce this crash.
So for me it crashes even earlier 1. Run KPM 2. Enter root password 3. Close "Scanning devices..." with 'X' 5. New ScanProgressDialog reappears and KPM crashes in a second
OK, so I think in the kauth branch with which I'm working crash happens for slightly different reasons than in the master branch (which I haven't investigated). In KAuth branch the crash happens only if ScanProgressDialog is closed before DeviceScanner starts.
(In reply to Andrius Štikonas from comment #4) > OK, so I think in the kauth branch with which I'm working crash happens for > slightly different reasons than in the master branch (which I haven't > investigated). > > In KAuth branch the crash happens only if ScanProgressDialog is closed > before DeviceScanner starts. Do you think it would be good enough if I just not allow to close ScanProgressDialogWindow until scanning is finished?
Git commit 2482eba7dea7e6f5e5bc1e459a2c610908a596b3 by Andrius Štikonas. Committed on 19/04/2018 at 11:29. Pushed by stikonas into branch 'kauth'. Do not allow closing ScanProgressDialog M +8 -1 src/gui/scanprogressdialog.cpp M +2 -2 src/gui/scanprogressdialog.h https://commits.kde.org/partitionmanager/2482eba7dea7e6f5e5bc1e459a2c610908a596b3
I wasn't sure if this is an actual crash in comment #1 with version 3.2.1 because of "signal: Aborted" and because I observed something strange: 1. Perform steps from original report 2. One of the KPM processes crashes/aborts 3. Close drkonqi and that process resumes 4. "No administative privileges" dialogue appears 5. Select "run" 6. KPM opens again However, the fix should take care of this scenario. Still, I thought it's worth mentioning to you. Is this the desired behaviour when one process crashes?
(In reply to Ivo C from comment #7) > I wasn't sure if this is an actual crash in comment #1 with version 3.2.1 > because of "signal: Aborted" and because I observed something strange: > > 1. Perform steps from original report > 2. One of the KPM processes crashes/aborts > 3. Close drkonqi and that process resumes > 4. "No administative privileges" dialogue appears > 5. Select "run" > 6. KPM opens again > > However, the fix should take care of this scenario. Still, I thought it's > worth mentioning to you. Is this the desired behaviour when one process > crashes? This was the artefact of Partition Manager needing to restart GUI to run as root, so this does not happen in KAuth branch where GUI does not run as root. And next release should be based on what is now in KAuth branch anyway.
*** Bug 403927 has been marked as a duplicate of this bug. ***
Created attachment 143860 [details] New crash information added by DrKonqi partitionmanager (3.3.1) using Qt 5.15.2 - What I was doing when the application crashed: I was trying to format an SD memory card on /dev/sdb. However KDE Partition Manager was never ending up with scanning /dev/sdb. Then I had to cancel the scanning process which led to crash. -- Backtrace (Reduced): #9 0x00007f88bda77fe7 in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914 #10 QMessageLogger::fatal (this=this@entry=0x7fff68054850, msg=msg@entry=0x7f88bdd7d800 "QThread: Destroyed while thread is still running") at global/qlogging.cpp:893 #11 0x00007f88bda78863 in QThread::~QThread (this=<optimized out>, __in_chrg=<optimized out>) at thread/qthread.cpp:456 #12 0x00007f88bf4f03e7 in DeviceScanner::~DeviceScanner (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kpmcore-3.3.0-2.9.x86_64/src/core/devicescanner.h:33 #13 DeviceScanner::~DeviceScanner (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kpmcore-3.3.0-2.9.x86_64/src/core/devicescanner.h:33