SUMMARY When I connected my Kobo Clara 2e reader (which acts like USB mass storage device I think) to my PC, Plasma crashed. STEPS TO REPRODUCE Connect a mass storage device? I wasn't able to reproduce it again. SOFTWARE/OS VERSIONS Linux/KDE Plasma: openSUSE Tumbleweed KDE Plasma Version: 6.4.5 KDE Frameworks Version: 6.18.0 Qt Version: 6.9.2 ADDITIONAL INFORMATION There was following message from plasmashell in system log when it crashed: malloc(): unaligned tcache chunk detected Backtrace: > Program terminated with signal SIGABRT, Aborted. > #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 > #1 0x00007f37ee09de33 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89 > #2 0x00007f37ee0427b6 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26 > #3 0x00007f37f170f390 in KCrash::defaultCrashHandler (sig=6) at /usr/src/debug/kcrash-6.18.0/src/kcrash.cpp:605 > #4 0x00007f37ee042910 in <signal handler called> () at /lib64/libc.so.6 > #5 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 > #6 0x00007f37ee09de33 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89 > #7 0x00007f37ee0427b6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 > #8 0x00007f37ee02934b in __GI_abort () at abort.c:77 > #9 0x00007f37ee02a3ad in __libc_message_impl (fmt=fmt@entry=0x7f37ee1be35d "%s\n") at ../sysdeps/posix/libc_fatal.c:138 > #10 0x00007f37ee0a8b77 in malloc_printerr (str=str@entry=0x7f37ee1c19d8 "malloc(): unaligned tcache chunk detected") at malloc.c:5879 > #11 0x00007f37ee0ad970 in tcache_get_n (tc_idx=<optimized out>, ep=<optimized out>, mangled=<optimized out>) at malloc.c:3209 > #12 tcache_get (tc_idx=<optimized out>) at malloc.c:3232 > #13 __GI___libc_malloc (bytes=<optimized out>) at malloc.c:3483 > #14 0x00007f37eeaed048 in allocateData (allocSize=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qarraydata.cpp:139 > #15 allocateHelper (objectSize=<optimized out>, alignment=16, capacity=3, option=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qarraydata.cpp:178 > #16 allocateHelper (objectSize=<optimized out>, alignment=16, capacity=<optimized out>, option=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qarraydata.cpp:154 > #17 QArrayData::allocate (dptr=0x7fff6f640ce0, objectSize=<optimized out>, alignment=16, capacity=<optimized out>, option=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qarraydata.cpp:198 > #18 0x00007f37eeac56ed in QTypedArrayData<QStringView>::allocate (capacity=1, option=QArrayData::Grow) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qarraydata.h:141 > #19 QArrayDataPointer<QStringView>::allocateGrow (from=..., n=1, position=QArrayData::GrowsAtEnd) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qarraydatapointer.h:492 > #20 QArrayDataPointer<QStringView>::reallocateAndGrow(QArrayData::GrowthPosition, long long, QArrayDataPointer<QStringView>*) [clone .constprop.0] (this=0x7fff6f640e00, where=<optimized out>, n=1, old=0x0) > at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qarraydatapointer.h:228 > #21 0x00007f37eeab3d09 in QArrayDataPointer<QStringView>::detachAndGrow (n=<optimized out>, data=<optimized out>, old=<optimized out>, this=<optimized out>, where=<optimized out>) > at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qarraydatapointer.h:209 > #22 QtPrivate::QPodArrayOps<QStringView>::emplace<QStringView> (this=0x7fff6f640e00, i=0) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qarraydataops.h:163 > #23 QList<QStringView>::emplaceBack<QStringView> (this=0x7fff6f640e00) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qlist.h:915 > #24 QList<QStringView>::append (this=0x7fff6f640e00, t=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/tools/qlist.h:496 > #25 (anonymous namespace)::splitString<QList<QStringView>, QStringView> (source=<optimized out>, sep=..., behavior=..., cs=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/text/qstring.cpp:8255 > #26 QStringView::split (this=this@entry=0x7fff6f640df0, sep=..., behavior=..., cs=cs@entry=Qt::CaseSensitive) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/text/qstring.cpp:8329 > #27 0x00007f37eeab4b4d in QStringView::split (this=this@entry=0x7fff6f640df0, sep=..., behavior=..., behavior@entry=..., cs=cs@entry=Qt::CaseSensitive) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/text/qstringview.h:119 > #28 0x00007f37efa2591b in QDBusUtil::isValidInterfaceName (ifaceName=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/dbus/qdbusutil.cpp:346 > #29 0x00007f37ef9c23cf in QDBusUtil::checkInterfaceName(QString const&, QDBusUtil::AllowEmptyFlag, QDBusError*) [clone .constprop.0] (name=..., error=error@entry=0x7fff6f641290, empty=QDBusUtil::EmptyAllowed) > at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/dbus/qdbusutil_p.h:70 > #30 0x00007f37efa0359c in QDBusMessagePrivate::toDBusMessage(QDBusMessage const&, QFlags<QDBusConnection::ConnectionCapability>, QDBusError*) [clone .isra.0] (capabilities=..., error=error@entry=0x7fff6f641290, message=<optimized out>) > at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/dbus/qdbusmessage.cpp:120 > #31 0x00007f37ef9e9dcf in QDBusConnectionPrivate::sendWithReplyAsync (this=0x7f37e400ca50, message=..., receiver=<optimized out>, returnMethod=<optimized out>, errorMethod=<optimized out>, timeout=<optimized out>) > at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/global/qflags.h:77 > #32 0x00007f37ef9cd1a9 in QDBusConnection::asyncCall (this=this@entry=0x7fff6f641510, message=..., timeout=timeout@entry=-1) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/dbus/qdbusconnection.cpp:445 > #33 0x00007f37f16b50df in Solid::Backends::UDisks2::Block::Block > (this=this@entry=0x563a11dbed90, __vtt_parm=__vtt_parm@entry=0x7f37f16f8040 <VTT for Solid::Backends::UDisks2::StorageDrive+8>, dev=0x563a0cc48fa0, this=<optimized out>, __vtt_parm=<optimized out>, dev=<optimized out>) > at /usr/src/debug/solid-6.18.0/src/solid/devices/backends/udisks2/udisksblock.cpp:39 > #34 0x00007f37f16b679d in Solid::Backends::UDisks2::StorageDrive::StorageDrive (this=0x563a11dbed90, dev=<optimized out>, this=<optimized out>, dev=<optimized out>) > at /usr/src/debug/solid-6.18.0/src/solid/devices/backends/udisks2/udisksstoragedrive.cpp:15 > #35 0x00007f37f16a4be8 in Solid::Backends::UDisks2::Device::createDeviceInterface (this=0x563a0cc48fa0, type=<optimized out>) at /usr/src/debug/solid-6.18.0/src/solid/devices/backends/udisks2/udisksdevice.cpp:185 > #36 0x00007f37f164c51a in Solid::Device::asDeviceInterface (this=this@entry=0x7fff6f641788, type=@0x7fff6f6417e0: Solid::DeviceInterface::StorageDrive, type@entry=@0x7fff6f6417e0: <optimized out>) > at /usr/src/debug/solid-6.18.0/src/solid/devices/frontend/device.cpp:143 > #37 0x00007f37f164d285 in Solid::Device::asDeviceInterface (this=this@entry=0x7fff6f641788, type=@0x7fff6f6417e0: Solid::DeviceInterface::StorageDrive) at /usr/src/debug/solid-6.18.0/src/solid/devices/frontend/device.cpp:128 > #38 0x00007f37475b7ce1 in Solid::Device::as<Solid::StorageDrive> (this=0x7fff6f641788) at /usr/include/KF6/Solid/solid/device.h:233 > #39 DeviceControl::onDeviceAdded (this=0x563a0e53e8c0, udi=...) at /usr/src/debug/plasma-workspace-6.4.5/applets/devicenotifier/plugin/devicecontrol.cpp:177 > #40 0x00007f37eea308b4 in QtPrivate::QSlotObjectBase::call (this=0x563a0e644440, r=<optimized out>, a=0x7fff6f641920, this=<optimized out>, r=<optimized out>, a=<optimized out>) > at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qobjectdefs_impl.h:461 > #41 doActivate<false> (sender=0x563a0d0bc8a0, signal_index=3, argv=0x7fff6f641920) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qobject.cpp:4157 > #42 0x00007f37f1649b87 in QMetaObject::activate<void, QString> (sender=<optimized out>, mo=0x7f37f16f94a0 <Solid::DeviceNotifier::staticMetaObject>, local_signal_index=0, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:306 > #43 Solid::DeviceNotifier::deviceAdded (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/solid-6.18.0/build/src/solid/KF6Solid_autogen/include/moc_devicenotifier.cpp:127 > #44 0x00007f37eea308b4 in QtPrivate::QSlotObjectBase::call (this=0x563a0d2df7f0, r=<optimized out>, a=0x7fff6f641b60, this=<optimized out>, r=<optimized out>, a=<optimized out>) > at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qobjectdefs_impl.h:461 > #45 doActivate<false> (sender=0x563a0d2df950, signal_index=3, argv=0x7fff6f641b60) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qobject.cpp:4157 > #46 0x00007f37f1699bf6 in QMetaObject::activate<void, QString> (sender=0x563a0d2df950, mo=<optimized out>, local_signal_index=0, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:306 > #47 Solid::Ifaces::DeviceManager::deviceAdded (this=0x563a0d2df950, _t1=...) at /usr/src/debug/solid-6.18.0/build/src/solid/KF6Solid_autogen/include/moc_devicemanager.cpp:127 > #48 Solid::Backends::UDisks2::Manager::slotInterfacesAdded (this=0x563a0d2df950, object_path=<optimized out>, interfaces_and_properties=...) at /usr/src/debug/solid-6.18.0/src/solid/devices/backends/udisks2/udisksmanager.cpp:207 > #49 0x00007f37eea30cde in doActivate<false> (sender=0x563a0d2df968, signal_index=3, argv=0x7fff6f641cf0) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qobject.cpp:4169 > #50 0x00007f37f16b9e7e in QMetaObject::activate<void, QDBusObjectPath, QMap<QString, QMap<QString, QVariant> > > (sender=0x563a0d2df968, mo=0x7f37f17010c0 <OrgFreedesktopDBusObjectManagerInterface::staticMetaObject>, local_signal_index=0, ret=0x0) > at /usr/include/qt6/QtCore/qobjectdefs.h:306 > #51 OrgFreedesktopDBusObjectManagerInterface::InterfacesAdded (this=0x563a0d2df968, _t1=<optimized out>, _t2=<optimized out>) at /usr/src/debug/solid-6.18.0/build/src/solid/KF6Solid_autogen/include/moc_manager.cpp:158 > #52 OrgFreedesktopDBusObjectManagerInterface::qt_static_metacall (_o=_o@entry=0x563a0d2df968, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=0, _a=_a@entry=0x7fff6f641e78) > at /usr/src/debug/solid-6.18.0/build/src/solid/KF6Solid_autogen/include/moc_manager.cpp:88 > #53 0x00007f37f16bf453 in OrgFreedesktopDBusObjectManagerInterface::qt_metacall (this=0x563a0d2df968, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff6f641e78) > at /usr/src/debug/solid-6.18.0/build/src/solid/KF6Solid_autogen/include/moc_manager.cpp:144 > #54 0x00007f37ef9dcef7 in QDBusConnectionPrivate::deliverCall (this=0x7f37e400ca50, object=0x563a0d2df968, msg=..., metaTypes=<optimized out>, slotIdx=5) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/dbus/qdbusintegrator.cpp:1008 > #55 0x00007f37eea1d9d4 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qobject.cpp:1432 > #56 0x00007f37f0de51c8 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x563a0d2df968, e=0x7f37e41f8f40) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/widgets/kernel/qapplication.cpp:3300 > #57 0x00007f37ee9c9138 in QCoreApplication::notifyInternal2 (receiver=0x563a0d2df968, event=0x7f37e41f8f40) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qcoreapplication.cpp:1106 > #58 0x00007f37ee9c917d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qcoreapplication.cpp:1546 > #59 0x00007f37ee9cb567 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x563a0be1a9a0) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qcoreapplication.cpp:1891 > #60 0x00007f37eec7fc17 in postEventSourceDispatch (s=s@entry=0x563a0be25f20) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qeventdispatcher_glib.cpp:246 > #61 0x00007f37ed31e776 in g_main_dispatch (context=0x7f37e4000f50) at ../glib/gmain.c:3565 > #62 g_main_context_dispatch_unlocked (context=context@entry=0x7f37e4000f50) at ../glib/gmain.c:4425 > #63 0x00007f37ed321668 in g_main_context_iterate_unlocked (context=context@entry=0x7f37e4000f50, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4490 > #64 0x00007f37ed321eac in g_main_context_iteration (context=0x7f37e4000f50, may_block=1) at ../glib/gmain.c:4556 > #65 0x00007f37eec7d868 in QEventDispatcherGlib::processEvents (this=0x563a0be26690, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qeventdispatcher_glib.cpp:399 > #66 0x00007f37ee9d6ab3 in QEventLoop::exec (this=0x7fff6f642440, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/global/qflags.h:77 > #67 0x00007f37ee9cda63 in QCoreApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/corelib/kernel/qcoreapplication.cpp:1449 > #68 0x00007f37ef221250 in QGuiApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/gui/kernel/qguiapplication.cpp:1986 > #69 0x00007f37f0ddff29 in QApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.9.2/src/widgets/kernel/qapplication.cpp:2567 > #70 0x00005639de6e1275 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-6.4.5/shell/main.cpp:188
It looks like a bug in Qt though. The crash happens in QDBusConnection::asyncCall and it doesn't look like Solid does anything funny with it.
(In reply to equeim from comment #1) > It looks like a bug in Qt though. The crash happens in > QDBusConnection::asyncCall and it doesn't look like Solid does anything > funny with it. Although Plasma probably shouldn't work with Solid on the main thread, since it looks that it involves blocking D-Bus calls. I don't think it's related to this crash however.
"malloc(): unaligned tcache chunk detected" some memory corruption happened
Looks like most of the action happened in Solid.