Bug 470946

Summary: Unmounting the drive in plasma before clicking Apply causes SEGFAULT
Product: [Applications] partitionmanager Reporter: Ondřej Mach <ondrej.mach>
Component: generalAssignee: Andrius Štikonas <andrius>
Status: RESOLVED DUPLICATE    
Severity: crash Keywords: drkonqi
Priority: NOR    
Version: 23.04.1   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Ondřej Mach 2023-06-12 18:44:34 UTC
Application: partitionmanager (23.04.1)

Qt Version: 5.15.9
Frameworks Version: 5.106.0
Operating System: Linux 6.2.15-300.fc38.x86_64 x86_64
Windowing System: Wayland
Distribution: "Fedora release 38 (Thirty Eight)"
DrKonqi: 5.27.5 [KCrashBackend]

-- Information about the crash:
Unmounting partition in the partition manager does not actually unmount the partition. I'm not sure whether that's intended behavior. 
Partition manager does not check, whether the drive is still mounted before applying the changes, which can result in segfault.

Reproducer:
1. Connect a flash drive to the computer
2. Right click the flash drive partition in partition manager and unmount it
3. Create a new partition on the flash drive
4. Unmount the flash drive in plasma applet
5. Click apply in partition manager

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: KDE Partition Manager (partitionmanager), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f82714cbf7f in Partition::deviceNode() const () at /lib64/libkpmcore.so.12
#5  0x00007f82714e26f0 in ResizeOperation::description() const () at /lib64/libkpmcore.so.12
#6  0x000056522697a9fc in MainWindow::onApplyAllOperations() ()
#7  0x00007f826fae8651 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#8  0x00007f82707a7d24 in QAction::triggered(bool) () at /lib64/libQt5Widgets.so.5
#9  0x00007f82707aab7b in QAction::activate(QAction::ActionEvent) () at /lib64/libQt5Widgets.so.5
#10 0x00007f82708ab83a in QAbstractButtonPrivate::click() () at /lib64/libQt5Widgets.so.5
#11 0x00007f82708ab978 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /lib64/libQt5Widgets.so.5
#12 0x00007f82709af886 in QToolButton::mouseReleaseEvent(QMouseEvent*) () at /lib64/libQt5Widgets.so.5
#13 0x00007f82707f3688 in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#14 0x00007f82707aeb75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#15 0x00007f82707b7456 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#16 0x00007f826fab3d48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#17 0x00007f82707b56a4 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib64/libQt5Widgets.so.5
#18 0x00007f827080d1a9 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /lib64/libQt5Widgets.so.5
#19 0x00007f827081072f in QWidgetWindow::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#20 0x00007f82707aeb75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#21 0x00007f826fab3d48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#22 0x00007f826ff6c44b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib64/libQt5Gui.so.5
#23 0x00007f826ff4aa0c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Gui.so.5
#24 0x00007f826d9639e4 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5WaylandClient.so.5
#25 0x00007f826eda939c in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#26 0x00007f826ee07438 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#27 0x00007f826eda6a23 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#28 0x00007f826fb06936 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#29 0x00007f826fab270b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#30 0x00007f826faba99b in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#31 0x0000565226955671 in main ()
[Inferior 1 (process 513597) detached]

Reported using DrKonqi
Comment 1 Andrius Štikonas 2023-06-12 19:32:29 UTC

*** This bug has been marked as a duplicate of bug 423917 ***