Bug 492578 - when i tried formatting my fat32 micro sdcard in kde partition manager plasmashell crashed in Solid::StorageAccess::filePath()
Summary: when i tried formatting my fat32 micro sdcard in kde partition manager plasma...
Status: RESOLVED FIXED
Alias: None
Product: frameworks-solid
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 6.7.0
Platform: Arch Linux Linux
: VHI crash
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords: drkonqi
: 426324 434087 436428 436836 444663 447799 454366 476842 493588 494652 494946 494949 495072 495134 495178 495263 495645 495894 495919 496192 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-09-03 09:08 UTC by pollux
Modified: 2024-12-14 09:26 UTC (History)
22 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.8
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/75713/


Attachments
New crash information added by DrKonqi (156.20 KB, text/plain)
2024-09-03 09:08 UTC, pollux
Details
got a similar crash possibly again, fedora iso on a usb stick (265.91 KB, text/plain)
2024-09-23 20:37 UTC, pollux
Details
Happened again on Plasma 6.2.3, arch, 16gb usb stick, formatted to fat32 (289.53 KB, text/plain)
2024-11-10 02:01 UTC, pollux
Details

Note You need to log in before you can comment on or make changes to this bug.
Description pollux 2024-09-03 09:08:05 UTC
Application: plasmashell (6.1.4)

Qt Version: 6.7.2
Frameworks Version: 6.5.0
Operating System: Linux 6.10.7-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 6.1.4 [CoredumpBackend]

-- Information about the crash:
similar to the other crash i had when plugging in my usb stick but with kde partition manager instead

The crash can be reproduced sometimes.

-- Backtrace (Reduced):
#5  0x00007361e68813d1 in QQmlContextData::contextObject (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlcontextdata_p.h:128
#6  QQmlContextData::ContextGuard::objectDestroyedImpl (impl=0x55a6829c2a78) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlcontextdata_p.h:455
#7  0x00007361e688f2d2 in QQmlData::destroyed (this=0x55a685835a70, object=0x55a685835a50) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlengine.cpp:1415
#8  0x00007361e5591ffe in QObject::~QObject (this=0x55a685835a50, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1078
#9  0x00007361e6fd88f3 in QQuickImplicitSizeItem::~QQuickImplicitSizeItem (this=0x55a685835a50, this=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickimplicitsizeitem_p.h:24


Reported using DrKonqi
Comment 1 pollux 2024-09-03 09:08:08 UTC Comment hidden (spam)
Comment 2 Nate Graham 2024-09-05 20:14:03 UTC Comment hidden (spam)
Comment 3 pollux 2024-09-23 20:37:24 UTC
Created attachment 174000 [details]
got a similar crash possibly again, fedora iso on a usb stick
Comment 4 pollux 2024-09-23 20:38:03 UTC
added a attachment that could be similar to this one, plasma 6.1.5, bazzite
Comment 5 TraceyC 2024-09-24 21:34:56 UTC
This looks near identical to the backtrace in https://bugs.kde.org/show_bug.cgi?id=492356
Different triggers, but could both be related to reading the card
Comment 6 pollux 2024-11-10 02:01:47 UTC
Created attachment 175691 [details]
Happened again on Plasma 6.2.3, arch, 16gb usb stick, formatted to fat32
Comment 7 Nate Graham 2024-11-12 15:09:10 UTC
Thread 1 (Thread 0x7e827b4006c0 (LWP 13598)):
[KCrash Handler]
#5  0x00007e839e82fb3d in Solid::StorageAccess::d_func (this=<optimized out>) at /usr/src/debug/solid/solid-6.8.0/src/solid/devices/frontend/storageaccess.h:37
#6  Solid::StorageAccess::filePath (this=0x0) at /usr/src/debug/solid/solid-6.8.0/src/solid/devices/frontend/storageaccess.cpp:59
#7  0x00007e839e826f69 in Solid::Device::storageAccessFromPath (path=...) at /usr/src/debug/solid/solid-6.8.0/src/solid/devices/frontend/devicemanager.cpp:164
#8  0x00007e8395983de6 in KFilePlacesItem::onAccessibilityChanged (this=this@entry=0x7e81bc0b81d0, isAccessible=<optimized out>) at /usr/src/debug/kio/kio-6.8.0/src/filewidgets/kfileplacesitem.cpp:604
#9  0x00007e8395988f86 in KFilePlacesItem::updateDeviceInfo (this=<optimized out>, udi=...) at /usr/src/debug/kio/kio-6.8.0/src/filewidgets/kfileplacesitem.cpp:560
#10 KFilePlacesItem::KFilePlacesItem (this=<optimized out>, manager=<optimized out>, address=..., udi=..., parent=<optimized out>, this=<optimized out>, manager=<optimized out>, address=<optimized out>, udi=<optimized out>, parent=<optimized out>) at /usr/src/debug/kio/kio-6.8.0/src/filewidgets/kfileplacesitem.cpp:49
#11 0x00007e839598ded0 in KFilePlacesModelPrivate::loadBookmarkList (this=<optimized out>) at /usr/src/debug/kio/kio-6.8.0/src/filewidgets/kfileplacesmodel.cpp:867
#12 KFilePlacesModelPrivate::reloadBookmarks (this=<optimized out>) at /usr/src/debug/kio/kio-6.8.0/src/filewidgets/kfileplacesmodel.cpp:764
#13 0x00007e839bfb2229 in QtPrivate::QSlotObjectBase::call (this=0x7e81bc024e80, r=0x7e81bc0017d0, a=0x7e827b3feea0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486
#14 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4120
#15 0x00007e839e81c14d in Solid::DeviceNotifier::deviceRemoved (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/solid/build/src/solid/KF6Solid_autogen/include/moc_devicenotifier.cpp:162
#16 0x00007e839bfb2229 in QtPrivate::QSlotObjectBase::call (this=0x7e81bc007fa0, r=0x7e81bc02d670, a=0x7e827b3fefa0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486
#17 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4120
#18 0x00007e839e83215d in Solid::Ifaces::DeviceManager::deviceRemoved (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/solid/build/src/solid/KF6Solid_autogen/include/moc_devicemanager.cpp:162
#19 0x00007e839e85b30c in Solid::Backends::UDisks2::Manager::slotInterfacesRemoved (this=<optimized out>, object_path=<optimized out>, interfaces=<optimized out>) at /usr/src/debug/solid/solid-6.8.0/src/solid/devices/backends/udisks2/udisksmanager.cpp:250
#20 Solid::Backends::UDisks2::Manager::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /usr/src/debug/solid/build/src/solid/KF6Solid_autogen/include/moc_udisksmanager.cpp:113
#21 0x00007e839bfb247a in doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4132
#22 0x00007e839e86f067 in OrgFreedesktopDBusObjectManagerInterface::InterfacesRemoved (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at /usr/src/debug/solid/build/src/solid/KF6Solid_autogen/include/moc_manager.cpp:200
#23 OrgFreedesktopDBusObjectManagerInterface::qt_static_metacall (_o=_o@entry=0x7e81bc031b68, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=1, _a=_a@entry=0x7e827b3ff448) at /usr/src/debug/solid/build/src/solid/KF6Solid_autogen/include/moc_manager.cpp:115
#24 0x00007e839e8727aa in OrgFreedesktopDBusObjectManagerInterface::qt_metacall (this=0x7e81bc031b68, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7e827b3ff448) at /usr/src/debug/solid/build/src/solid/KF6Solid_autogen/include/moc_manager.cpp:179
#25 0x00007e839ce11a92 in QDBusConnectionPrivate::deliverCall (this=0x7e839000e960, object=0x7e81bc031b68, msg=..., metaTypes=<optimized out>, slotIdx=6) at /usr/src/debug/qt6-base/qtbase/src/dbus/qdbusintegrator.cpp:1008
#26 0x00007e839bfa348a in QObject::event (this=0x7e81bc031b68, e=0x7e8390087630) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1419
#27 0x00007e839defe31a in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7e81bc031b68, e=0x7e8390087630) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3294
#28 0x00007e839bf585a8 in QCoreApplication::notifyInternal2 (receiver=0x7e81bc031b68, event=event@entry=0x7e8390087630) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1165
#29 0x00007e839bf59035 in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1609
#30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x56c8879631c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1965
#31 0x00007e839c1c23fc in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1797
#32 postEventSourceDispatch (s=0x7e81bc0011e0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#33 0x00007e839aa6d559 in g_main_dispatch (context=0x7e81bc000f20) at ../glib/glib/gmain.c:3357
#34 0x00007e839aad0157 in g_main_context_dispatch_unlocked (context=0x7e81bc000f20) at ../glib/glib/gmain.c:4208
#35 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7e81bc000f20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4273
#36 0x00007e839aa6ca55 in g_main_context_iteration (context=0x7e81bc000f20, may_block=1) at ../glib/glib/gmain.c:4338
#37 0x00007e839c1bf71d in QEventDispatcherGlib::processEvents (this=0x7e81bc000e30, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:396
#38 0x00007e839bf64566 in QEventLoop::processEvents (this=0x7e827b3ffb30, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:100
#39 QEventLoop::exec (this=0x7e827b3ffb30, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:191
#40 0x00007e839c0571d2 in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:621
#41 QThread::run (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:742
#42 0x00007e839c0d840f in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:335
#43 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:263
#44 QThreadPrivate::start (arg=0x56c88eb77dc0) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:294
#45 0x00007e839b8a339d in start_thread (arg=<optimized out>) at pthread_create.c:447
#46 0x00007e839b92849c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Comment 8 Nate Graham 2024-11-15 21:12:14 UTC
*** Bug 496192 has been marked as a duplicate of this bug. ***
Comment 9 Nate Graham 2024-11-19 22:10:28 UTC
Confirming since it's a very common crash on Sentry: https://crash-reports.kde.org/organizations/kde/issues/75713
Comment 10 David Edmundson 2024-11-20 18:27:48 UTC
I found multiple similar backtraces one has the reporter confirming the fix for 464149 fixes this

*** This bug has been marked as a duplicate of bug 495263 ***
Comment 11 Nate Graham 2024-11-25 18:44:35 UTC
*** Bug 496192 has been marked as a duplicate of this bug. ***
Comment 12 Nate Graham 2024-11-25 18:45:26 UTC
*** Bug 495263 has been marked as a duplicate of this bug. ***
Comment 13 Nate Graham 2024-11-25 18:50:08 UTC
*** Bug 495919 has been marked as a duplicate of this bug. ***
Comment 14 Nate Graham 2024-11-25 18:50:26 UTC
*** Bug 447799 has been marked as a duplicate of this bug. ***
Comment 15 Nate Graham 2024-11-25 18:50:36 UTC
*** Bug 495645 has been marked as a duplicate of this bug. ***
Comment 16 Nate Graham 2024-11-25 18:51:32 UTC
*** Bug 444663 has been marked as a duplicate of this bug. ***
Comment 17 Nate Graham 2024-11-25 18:51:47 UTC
*** Bug 454366 has been marked as a duplicate of this bug. ***
Comment 18 Nate Graham 2024-11-25 18:52:23 UTC
*** Bug 476842 has been marked as a duplicate of this bug. ***
Comment 19 Nate Graham 2024-11-25 18:52:45 UTC
*** Bug 426324 has been marked as a duplicate of this bug. ***
Comment 20 Nate Graham 2024-11-25 18:53:01 UTC
*** Bug 434087 has been marked as a duplicate of this bug. ***
Comment 21 Nate Graham 2024-11-25 18:53:06 UTC
*** Bug 436428 has been marked as a duplicate of this bug. ***
Comment 22 Nate Graham 2024-11-25 18:53:11 UTC
*** Bug 436836 has been marked as a duplicate of this bug. ***
Comment 23 Nate Graham 2024-11-25 18:54:25 UTC
*** Bug 493588 has been marked as a duplicate of this bug. ***
Comment 24 Nate Graham 2024-11-25 18:54:38 UTC
*** Bug 494652 has been marked as a duplicate of this bug. ***
Comment 25 Nate Graham 2024-11-25 18:54:44 UTC
*** Bug 494946 has been marked as a duplicate of this bug. ***
Comment 26 Nate Graham 2024-11-25 18:54:47 UTC
*** Bug 494949 has been marked as a duplicate of this bug. ***
Comment 27 Nate Graham 2024-11-25 18:54:51 UTC
*** Bug 495072 has been marked as a duplicate of this bug. ***
Comment 28 Nate Graham 2024-11-25 18:54:54 UTC
*** Bug 495134 has been marked as a duplicate of this bug. ***
Comment 29 Nate Graham 2024-11-25 18:54:57 UTC
*** Bug 495178 has been marked as a duplicate of this bug. ***
Comment 30 Nate Graham 2024-11-25 18:55:09 UTC
*** Bug 495894 has been marked as a duplicate of this bug. ***
Comment 31 Bug Janitor Service 2024-12-11 22:15:28 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/solid/-/merge_requests/193
Comment 32 Nicolas Fella 2024-12-12 09:06:12 UTC
Git commit 2f8825b489ecc69bed67a49abdcb643d1fa42b4a by Nicolas Fella.
Committed on 11/12/2024 at 22:07.
Pushed by nicolasfella into branch 'master'.

Add null check for StorageAccess interface in storageAccessFromPath

In slotInterfacesRemoved we do a remove+add cycle

During that cycle the backend object is null, so querying the StorageAccess
interface will return null.

This means that when something calls storageAccessFromPath in reaction to
the removed signal we will get a null StorageAccess.

The overall design is a bit shaky here, but we can handle it more gracefully
by checking the result for null
Related: bug 497299

SENTRY: PLASMA-WORKSPACE-11Q1

SENTRY: KDECONNECT-KDE-BK

SENTRY: DOLPHIN-320

SENTRY: KDED-7M

SENTRY: FALLTHROUGH-62S

SENTRY: KATE-Y3

SENTRY: KDENLIVE-VR

SENTRY: XDG-DESKTOP-PORTAL-KDE-3R

SENTRY: KDEVELOP-93

SENTRY: KRUNNER-GD

SENTRY: PLASMA-WORKSPACE-1986

SENTRY: ELISA-9H

M  +5    -0    src/solid/devices/frontend/devicemanager.cpp

https://invent.kde.org/frameworks/solid/-/commit/2f8825b489ecc69bed67a49abdcb643d1fa42b4a
Comment 33 Nicolas Fella 2024-12-12 09:08:07 UTC
Git commit 8bcf33708d2ee6d3756918df130df50fbc08a500 by Nicolas Fella.
Committed on 12/12/2024 at 09:07.
Pushed by nicolasfella into branch 'kf5'.

Add null check for StorageAccess interface in storageAccessFromPath

In slotInterfacesRemoved we do a remove+add cycle

During that cycle the backend object is null, so querying the StorageAccess
interface will return null.

This means that when something calls storageAccessFromPath in reaction to
the removed signal we will get a null StorageAccess.

The overall design is a bit shaky here, but we can handle it more gracefully
by checking the result for null
Related: bug 497299

SENTRY: PLASMA-WORKSPACE-11Q1

SENTRY: KDECONNECT-KDE-BK

SENTRY: DOLPHIN-320

SENTRY: KDED-7M

SENTRY: FALLTHROUGH-62S

SENTRY: KATE-Y3

SENTRY: KDENLIVE-VR

SENTRY: XDG-DESKTOP-PORTAL-KDE-3R

SENTRY: KDEVELOP-93

SENTRY: KRUNNER-GD

SENTRY: PLASMA-WORKSPACE-1986

SENTRY: ELISA-9H
(cherry picked from commit 2f8825b489ecc69bed67a49abdcb643d1fa42b4a)

M  +5    -0    src/solid/devices/frontend/devicemanager.cpp

https://invent.kde.org/frameworks/solid/-/commit/8bcf33708d2ee6d3756918df130df50fbc08a500
Comment 34 Nicolas Fella 2024-12-14 09:26:46 UTC
Git commit 11a21dfad782c3862f6a3fba9bcf4fd5c5005777 by Nicolas Fella.
Committed on 13/12/2024 at 16:15.
Pushed by nicolasfella into branch 'Frameworks/6.9'.

Add null check for StorageAccess interface in storageAccessFromPath

In slotInterfacesRemoved we do a remove+add cycle

During that cycle the backend object is null, so querying the StorageAccess
interface will return null.

This means that when something calls storageAccessFromPath in reaction to
the removed signal we will get a null StorageAccess.

The overall design is a bit shaky here, but we can handle it more gracefully
by checking the result for null
Related: bug 497299

SENTRY: PLASMA-WORKSPACE-11Q1

SENTRY: KDECONNECT-KDE-BK

SENTRY: DOLPHIN-320

SENTRY: KDED-7M

SENTRY: FALLTHROUGH-62S

SENTRY: KATE-Y3

SENTRY: KDENLIVE-VR

SENTRY: XDG-DESKTOP-PORTAL-KDE-3R

SENTRY: KDEVELOP-93

SENTRY: KRUNNER-GD

SENTRY: PLASMA-WORKSPACE-1986

SENTRY: ELISA-9H
(cherry picked from commit 2f8825b489ecc69bed67a49abdcb643d1fa42b4a)

M  +5    -0    src/solid/devices/frontend/devicemanager.cpp

https://invent.kde.org/frameworks/solid/-/commit/11a21dfad782c3862f6a3fba9bcf4fd5c5005777