Summary: | Plasma Crashes when plugging in or unplugging removable drive | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | Dashon <dashonwwIII> |
Component: | generic-crash | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | antti.savo, bertil.bonus, dariusz.tereszkiewicz, dashonwwIII, dezelin, germano.massullo, jamesxmcintosh, kde, kde, marcelo.jimenez, mariusz.libera, nate, news.group, niluxv.opensource.C-h2ty6xl, openmindead, plasma-bugs, poomklao, qydwhotmail, sampingu02, thesourcehim, w01dnick, wodenhof, xanonix161 |
Priority: | VHI | Keywords: | drkonqi |
Version: | 5.21.4 | ||
Target Milestone: | 1.0 | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-workspace/commit/d9cfb336e1943dd6b50b5e410b925b31cdb3fa41 | Version Fixed In: | 5.24 |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi widget broken layout (not sure is related) |
Description
Dashon
2020-10-18 22:52:29 UTC
Just wanted to add. This happens with any external hard drive no matter what size. It only occurs on my laptop and not my desktop which is also running openSUSE Tumbleweed with kde 5.20. The laptop is using intel graphics. Crash does not occur when. External drive is already plugged in prior to boot up. I managed to solve the problem by deleting the file device_automounter_kcmrc located in the users $HOME/.config folder. All external hard drives are now mounted without crashing plasma. *** Bug 430431 has been marked as a duplicate of this bug. *** I seem to be once again facing the issue on arch 5.21.4. I'm using latte dock but it also happens with the default plasma panel. I normally have both default panels and latte dock panels set to autohide.Only happens once per reboot. First hard drive I plug in causes a crash. Works fine every time afterwards. I decided to delete the file I delete last time and I will continue to test this over the next few days. It happens every time I plug in a drive after restarting plasmashell and thus the plasma panel or every time I restart latte-dock. *** Bug 439498 has been marked as a duplicate of this bug. *** *** Bug 442475 has been marked as a duplicate of this bug. *** *** Bug 444352 has been marked as a duplicate of this bug. *** *** Bug 444373 has been marked as a duplicate of this bug. *** For me plasmashell seems to crash only (and not always, but often) if I unmount last flash drive in "Disk and Devices" list, so the list becomes empty. I wanted to add that I haven't experienced this in a while on plasma 5.23 using wayland. Haven't tested again with x11. Created attachment 142969 [details]
New crash information added by DrKonqi
plasmashell (5.23.1) using Qt 5.15.2
- What I was doing when the application crashed:
1. Pressed safely remove on the mounted partition of external HDD.
-- Backtrace (Reduced):
#6 std::__atomic_base<QThreadData*>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/c++/11/bits/atomic_base.h:836
#7 std::atomic<QThreadData*>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/c++/11/atomic:570
#8 QAtomicOps<QThreadData*>::loadRelaxed<QThreadData*>(std::atomic<QThreadData*> const&) (_q_value=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/qt5/QtCore/qatomic_cxx11.h:239
#9 QBasicAtomicPointer<QThreadData>::loadRelaxed() const (this=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/qt5/QtCore/qbasicatomic.h:248
#10 QQmlNotifierEndpoint::connect(QObject*, int, QQmlEngine*, bool) (this=this@entry=0x55c6395e0f10, source=0x55c63a385d80, sourceSignal=46, engine=0x0, doNotify=doNotify@entry=true) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.5.x86_64/src/qml/qml/qqmlnotifier.cpp:122
I also haven't had issues since my recent upgrade to plasma 5.23.2, still using x11. Me neither. Anyone else? Created attachment 143185 [details]
New crash information added by DrKonqi
plasmashell (5.23.2) using Qt 5.15.2
Still happens to me on 5.23.2
- What I was doing when the application crashed:
Pressed safely remove on the mounted partition of external HDD.
-- Backtrace (Reduced):
#6 std::__atomic_base<QThreadData*>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/c++/11/bits/atomic_base.h:836
#7 std::atomic<QThreadData*>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/c++/11/atomic:570
#8 QAtomicOps<QThreadData*>::loadRelaxed<QThreadData*>(std::atomic<QThreadData*> const&) (_q_value=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/qt5/QtCore/qatomic_cxx11.h:239
#9 QBasicAtomicPointer<QThreadData>::loadRelaxed() const (this=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/qt5/QtCore/qbasicatomic.h:248
#10 QQmlNotifierEndpoint::connect(QObject*, int, QQmlEngine*, bool) (this=this@entry=0x55d9c7841410, source=0x55d9c5fd3de0, sourceSignal=46, engine=0x0, doNotify=doNotify@entry=true) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.1.x86_64/src/qml/qml/qqmlnotifier.cpp:122
Still happens to me on 5.23.2, details in previous comment from DrKonqi. *** Bug 445114 has been marked as a duplicate of this bug. *** *** Bug 445247 has been marked as a duplicate of this bug. *** *** Bug 445231 has been marked as a duplicate of this bug. *** Raising priority due to number of duplicates. I am having the issue where when I unmount a mounted USB using GUI method i.e., Systray Applet or through Dolphin, the plasmashell crashes and then replaces itself. Here is the video showcasing this issue :- https://www.youtube.com/watch?v=WfIZxLBrRLE *** Bug 445605 has been marked as a duplicate of this bug. *** *** Bug 446561 has been marked as a duplicate of this bug. *** If someone who can reliably reproduce run `valgrind plasmashell` the reproduce the effect it would be much appreciated. Or someone with enough gdb skills: In frame 10 on:#10 QQmlNotifierEndpoint::connect(QObject*, int, QQmlEngine*, bool) (this=this@entry=0x55c6395e0f10, source=0x55c63a385d80, sourceSignal=46, engine=0x0, doNotify=doNotify@entry=true) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.5.x86_64/src/qml/qml/qqmlnotifier.cpp:122 Print that first QObject's object->metaObject()->className() (In reply to David Edmundson from comment #25) > Print that first QObject's object->metaObject()->className() ``` (gdb) frame 4 #4 QQmlNotifierEndpoint::connect (this=this@entry=0x555557c46da0, source=0x7fffec02a500, sourceSignal=47, engine=0x0, doNotify=doNotify@entry=true) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.2.x86_64/src/qml/qml/qqmlnotifier.cpp:122 122 QObjectPrivate::get(engine)->threadData.loadRelaxed()->threadId.loadRelaxed()) { (gdb) p source->metaObject()->className() $3 = 0x555557149a30 "PlasmoidItem_QMLTYPE_796" ``` I can only think of a possible cause: duplicate udi (In reply to Fushan Wen from comment #27) > I can only think of a possible cause: duplicate udi In solid/src/solid/devices/backends/udisks2/udisksblock.cpp ``` const QString udi = path + "/" + nodeElem.attribute("name"); ``` Could `nodeElem.attribute("name")` be an empty string? I did some experiments to modify udi in Solid but still can't reproduce the crash. Does the crash happen for a specific removable device? Do you try other removable devices? Well, I use the same device, USB HDD with two partitions, one of which (ext4) is configured to mount on connect, second (ntfs) isn't mounted. I'll try to check thumb drives or other hdd, usually using just this one. (In reply to Fushan Wen from comment #27) > I can only think of a possible cause: duplicate udi This could lead to null engine? I don't know that code, `QQmlEngine* engine=0x0` looks strange to me, but I don't know what can cause that. These lines are logged before crash, maybe they are up to something: ``` file:///usr/share/plasma/plasmoids/org.kde.plasma.devicenotifier/contents/ui/DeviceItem.qml:158:5: Unable to assign [undefined] to QString kf.solid.backends.udisks2: Error getting props: "org.freedesktop.DBus.Error.UnknownMethod" "Object does not exist at path “/org/freedesktop/UDisks2/drives/ST2000LM007_1R8174_ZDZ64EF7”" kf.solid.backends.udisks2: Error getting props: "org.freedesktop.DBus.Error.UnknownMethod" "Object does not exist at path “/org/freedesktop/UDisks2/drives/ST2000LM007_1R8174_ZDZ64EF7”" ``` (I've added `deviceItem.message.error || ""` in subtitle, not sure if that would have any effect on the first log line). btw, seems like some race condition, cause with normal running I got crash in about 15-25% of times, while under gdb it happens more often (though it may be just random fluctuations). Another possibly interesting information, one frame earlier in `QQmlVMEMetaObjectEndpoint::tryConnect` — `connect(target, pd->notifyIndex(), ctxt->engine);` `p pd->name(target)` returns basically string `inVisibleLayout` so, if I understood correctly (not sure) crash is on getting this bool (pd->m_propType == 1) property. Searching for it gives only two files: ``` /usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/CurrentItemHighLight.qml /usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/items/AbstractItem.qml ``` Also widget has broken layout, maybe due to this problem or unrelated. Created attachment 144489 [details]
widget broken layout (not sure is related)
(In reply to Mykola Krachkovsky from comment #30) > Well, I use the same device, USB HDD with two partitions, one of which > (ext4) is configured to mount on connect, second (ntfs) isn't mounted. I'll > try to check thumb drives or other hdd, usually using just this one. The information is important. Now I can reproduce the crash by following steps below: 1. Create two partitions, one using ext4 and the other using fat32. 2. Mount two partitions 3. Unmount fat32, and unmount ext4 (order is not important) 4. Crash Application: Plasma (plasmashell), signal: Segmentation fault Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>} [KCrash Handler] #6 std::__atomic_base<QThreadData*>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/c++/11/bits/atomic_base.h:836 #7 std::atomic<QThreadData*>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/c++/11/atomic:570 #8 QAtomicOps<QThreadData*>::loadRelaxed<QThreadData*>(std::atomic<QThreadData*> const&) (_q_value=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/qt5/QtCore/qatomic_cxx11.h:239 #9 QBasicAtomicPointer<QThreadData>::loadRelaxed() const (this=<error reading variable: Cannot access memory at address 0x8>) at /usr/include/qt5/QtCore/qbasicatomic.h:248 #10 QQmlNotifierEndpoint::connect(QObject*, int, QQmlEngine*, bool) (this=this@entry=0x67b6a50, source=0x4fefae0, sourceSignal=47, engine=0x0, doNotify=doNotify@entry=true) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-ku.1.1.x86_64/src/qml/qml/qqmlnotifier.cpp:122 #11 0x00007f935c1aa405 in QQmlVMEMetaObjectEndpoint::tryConnect() (this=0x67b6a50) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-ku.1.1.x86_64/src/qml/qml/qqmlvmemetaobject.cpp:258 #12 0x00007f935c1aa6a8 in QQmlVMEMetaObject::connectAlias(int) (this=this@entry=0x6ecd430, aliasId=aliasId@entry=1) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-ku.1.1.x86_64/src/qml/qml/qqmlvmemetaobject.cpp:1294 #13 0x00007f935c1abc99 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) (this=0x6ecd430, o=<optimized out>, c=QMetaObject::ReadProperty, _id=<optimized out>, a=0x7fff77124470) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-ku.1.1.x86_64/src/qml/qml/qqmlvmemetaobject.cpp:906 #14 0x00007f935c0dfedd in QQmlPropertyData::readProperty(QObject*, void*) const (property=0x7fff77124450, target=<optimized out>, this=0x7f93089e5888) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:357 #15 loadProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData const&) (v4=0x2820e40, object=0x55e44b0, property=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-ku.1.1.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:152 #16 0x00007f930184fa93 in () #17 0x0000000000000000 in () [Inferior 1 (process 25602) detached] Correct: Order is important 1. Mount fat32 and ext4 2. Unmount ext4 and then unmount fat32 (last mounted first unmounted) 3. Crash https://stackoverflow.com/questions/63218164/listview-with-section-remove-animation-not-working-for-the-top-item It seems to be a QTBUG. A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1273 A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1274 Git commit d9cfb336e1943dd6b50b5e410b925b31cdb3fa41 by Nate Graham, on behalf of Fushan Wen. Committed on 17/12/2021 at 16:28. Pushed by ngraham into branch 'master'. applets/devicenotifier: Use SequentialAnimation in ListView.onRemove It's more stable to use SequentialAnimation to perform a series of actions when an item is going to be removed from a list. M +13 -22 applets/devicenotifier/package/contents/ui/DeviceItem.qml M +2 -1 applets/devicenotifier/package/contents/ui/FullRepresentation.qml M +11 -2 applets/devicenotifier/package/contents/ui/devicenotifier.qml https://invent.kde.org/plasma/plasma-workspace/commit/d9cfb336e1943dd6b50b5e410b925b31cdb3fa41 *** Bug 440983 has been marked as a duplicate of this bug. *** *** Bug 447749 has been marked as a duplicate of this bug. *** *** Bug 448345 has been marked as a duplicate of this bug. *** *** Bug 448857 has been marked as a duplicate of this bug. *** *** Bug 446248 has been marked as a duplicate of this bug. *** |