Bug 483584 - plasmashell crashes in QQmlPropertyCacheCreator on startup after boot
Summary: plasmashell crashes in QQmlPropertyCacheCreator on startup after boot
Status: RESOLVED DUPLICATE of bug 418148
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (show other bugs)
Version: 6.0.2
Platform: Flatpak Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi, qt6
Depends on:
Blocks:
 
Reported: 2024-03-14 17:33 UTC by chiflutz
Modified: 2024-04-11 23:31 UTC (History)
8 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description chiflutz 2024-03-14 17:33:02 UTC
Application: plasmashell (6.0.2)

Qt Version: 6.6.2
Frameworks Version: 6.0.0
Operating System: Linux 6.7.6-201.fsync.fc39.x86_64 x86_64
Windowing System: X11
Distribution: Nobara Linux 39 (KDE Plasma)
DrKonqi: 6.0.2 [CoredumpBackend]

-- Information about the crash:
3 DrKonqi windows are visible in the app switcher (multi-screen setup). All of them say "Gathering crash information failed for unknown reasons".

The crash can be reproduced every time.

-- Backtrace:
Application: plasmashell (plasmashell), signal: Segmentation fault


This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.fedoraproject.org/>
Enable debuginfod for this session? (y or [n]) [answered N; input not from terminal]
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[New LWP 4664]
[New LWP 4327]
[New LWP 4397]
[New LWP 4334]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/plasmashell --no-respawn'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fcef2eae834 in __pthread_kill_implementation () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7fced90006c0 (LWP 4664))]
Cannot QML trace cores :(
[Current thread is 1 (Thread 0x7fced90006c0 (LWP 4664))]

Thread 4 (Thread 0x7fcee0e006c0 (LWP 4334)):
#0  0x00007fcef2f25bed in poll () from /lib64/libc.so.6
#1  0x00007fcef227eeb4 in g_main_context_iterate_unlocked.isra () from /lib64/libglib-2.0.so.0
#2  0x00007fcef2221ad3 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007fcef386c11f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#4  0x00007fcef35ad70b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#5  0x00007fcef36b55cf in QThread::exec() () from /lib64/libQt6Core.so.6
#6  0x00007fcef46bb181 in QDBusConnectionManager::run() () from /lib64/libQt6DBus.so.6
#7  0x00007fcef375015e in QThreadPrivate::start(void*) () from /lib64/libQt6Core.so.6
#8  0x00007fcef2eac897 in start_thread () from /lib64/libc.so.6
#9  0x00007fcef2f3380c in clone3 () from /lib64/libc.so.6

Thread 3 (Thread 0x7fcedbe006c0 (LWP 4397)):
#0  0x00007fcef2f25bed in poll () from /lib64/libc.so.6
#1  0x00007fcef631b00a in _xcb_conn_wait.part.0 () from /lib64/libxcb.so.1
#2  0x00007fcef631c90c in xcb_wait_for_event () from /lib64/libxcb.so.1
#3  0x00007fcee0fa13a6 in QXcbEventQueue::run() () from /lib64/libQt6XcbQpa.so.6
#4  0x00007fcef375015e in QThreadPrivate::start(void*) () from /lib64/libQt6Core.so.6
#5  0x00007fcef2eac897 in start_thread () from /lib64/libc.so.6
#6  0x00007fcef2f3380c in clone3 () from /lib64/libc.so.6

Thread 2 (Thread 0x7fceee676ac0 (LWP 4327)):
#0  0x00007fcef2ea9169 in __futex_abstimed_wait_common () from /lib64/libc.so.6
#1  0x00007fcef2eabb09 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libc.so.6
#2  0x00007fcef3758d7b in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /lib64/libQt6Core.so.6
#3  0x00007fcef4cfbeed in QQmlThread::internalCallMethodInThread(QQmlThread::Message*) () from /lib64/libQt6Qml.so.6
#4  0x00007fcef4e4ff42 in QQmlTypeLoader::load(QQmlDataBlob*, QQmlTypeLoader::Mode) () from /lib64/libQt6Qml.so.6
#5  0x00007fcef4e50628 in QQmlTypeLoader::getType(QUrl const&, QQmlTypeLoader::Mode) () from /lib64/libQt6Qml.so.6
#6  0x00007fcef4d2c625 in QQmlComponentPrivate::loadUrl(QUrl const&, QQmlComponent::CompilationMode) () from /lib64/libQt6Qml.so.6
#7  0x00007fcef669176c in PlasmaQuick::SharedQmlEngine::setSource(QUrl const&) () from /lib64/libPlasmaQuick.so.6
#8  0x00007fcef66a96a9 in ContainmentItem::loadWallpaper() () from /lib64/libPlasmaQuick.so.6
#9  0x00007fcef66a9fa7 in ContainmentItem::itemChange(QQuickItem::ItemChange, QQuickItem::ItemChangeData const&) () from /lib64/libPlasmaQuick.so.6
#10 0x00007fcef523ee5b in QQuickItemPrivate::refWindow(QQuickWindow*) () from /lib64/libQt6Quick.so.6
#11 0x00007fcef523f29d in QQuickItem::setParentItem(QQuickItem*) () from /lib64/libQt6Quick.so.6
#12 0x00007fcef668c26a in PlasmaQuick::ContainmentViewPrivate::setContainment(Plasma::Containment*) () from /lib64/libPlasmaQuick.so.6
#13 0x000055c54b8e3d36 in ShellCorona::addOutput(QScreen*) ()
#14 0x000055c54b8e932f in ShellCorona::load() ()
#15 0x00007fcef3601951 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt6Core.so.6
#16 0x00007fcef60ca313 in KActivities::Consumer::serviceStatusChanged(KActivities::Consumer::ServiceStatus) () from /lib64/libPlasmaActivities.so.6
#17 0x00007fcef3601951 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt6Core.so.6
#18 0x00007fcef60d7ee3 in KActivities::ActivitiesCache::setAllActivities(QList<ActivityInfo> const&) () from /lib64/libPlasmaActivities.so.6
#19 0x00007fcef60db454 in KActivities::ActivitiesCache::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /lib64/libPlasmaActivities.so.6
#20 0x00007fcef3601ed8 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt6Core.so.6
#21 0x00007fcef47191b1 in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) () from /lib64/libQt6DBus.so.6
#22 0x00007fcef35f2f87 in QObject::event(QEvent*) () from /lib64/libQt6Core.so.6
#23 0x00007fcef59c3228 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt6Widgets.so.6
#24 0x00007fcef35a0948 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt6Core.so.6
#25 0x00007fcef35a4845 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt6Core.so.6
#26 0x00007fcef386c86f in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt6Core.so.6
#27 0x00007fcef2223e5c in g_main_context_dispatch_unlocked.lto_priv () from /lib64/libglib-2.0.so.0
#28 0x00007fcef227ef18 in g_main_context_iterate_unlocked.isra () from /lib64/libglib-2.0.so.0
#29 0x00007fcef2221ad3 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#30 0x00007fcef386c11f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#31 0x00007fcef35ad70b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#32 0x00007fcef35a950d in QCoreApplication::exec() () from /lib64/libQt6Core.so.6
#33 0x000055c54b8afdfa in main ()

Thread 1 (Thread 0x7fced90006c0 (LWP 4664)):
[KCrash Handler]
#4  0x00007fcef4e16894 in QQmlType::QQmlType(QQmlType const&) () from /lib64/libQt6Qml.so.6
#5  0x00007fcef4e2f682 in QQmlPropertyCacheCreator<QQmlTypeCompiler>::propertyCacheForObject(QmlIR::Object const*, QQmlBindingInstantiationContext const&, QQmlError*) const () from /lib64/libQt6Qml.so.6
#6  0x00007fcef4e32596 in QQmlPropertyCacheCreator<QQmlTypeCompiler>::buildMetaObjectRecursively(int, QQmlBindingInstantiationContext const&, QQmlPropertyCacheCreator<QQmlTypeCompiler>::VMEMetaObjectIsRequired) () from /lib64/libQt6Qml.so.6
#7  0x00007fcef4e32948 in QQmlPropertyCacheCreator<QQmlTypeCompiler>::buildMetaObjectRecursively(int, QQmlBindingInstantiationContext const&, QQmlPropertyCacheCreator<QQmlTypeCompiler>::VMEMetaObjectIsRequired) () from /lib64/libQt6Qml.so.6
#8  0x00007fcef4e32f95 in QQmlPropertyCacheCreator<QQmlTypeCompiler>::buildMetaObjectsIncrementally() () from /lib64/libQt6Qml.so.6
#9  0x00007fcef4e24af2 in QQmlTypeCompiler::compile() () from /lib64/libQt6Qml.so.6
#10 0x00007fcef4e34e37 in QQmlTypeData::compile(QQmlRefPointer<QQmlTypeNameCache> const&, QV4::ResolvedTypeReferenceMap*, std::function<QByteArray ()> const&) () from /lib64/libQt6Qml.so.6
#11 0x00007fcef4e3b678 in QQmlTypeData::done() () from /lib64/libQt6Qml.so.6
#12 0x00007fcef4d3b155 in QQmlDataBlob::tryDone() () from /lib64/libQt6Qml.so.6
#13 0x00007fcef4e4d818 in QQmlTypeLoader::setData(QQmlRefPointer<QQmlDataBlob> const&, QQmlDataBlob::SourceCodeData const&) () from /lib64/libQt6Qml.so.6
#14 0x00007fcef4e4dbcb in QQmlTypeLoader::setData(QQmlRefPointer<QQmlDataBlob> const&, QString const&) () from /lib64/libQt6Qml.so.6
#15 0x00007fcef4e4fcd2 in QQmlTypeLoader::loadThread(QQmlRefPointer<QQmlDataBlob> const&) () from /lib64/libQt6Qml.so.6
#16 0x00007fcef4e5d41c in QQmlThread::createMessageFromMethod<void (QQmlTypeLoaderThread::*)(QQmlRefPointer<QQmlDataBlob> const&), QQmlRefPointer<QQmlDataBlob> const&>(void (QQmlTypeLoaderThread::*&&)(QQmlRefPointer<QQmlDataBlob> const&), QQmlRefPointer<QQmlDataBlob> const&)::I::call(QQmlThread*) () from /lib64/libQt6Qml.so.6
#17 0x00007fcef4cfb9ee in QQmlThreadPrivate::threadEvent() () from /lib64/libQt6Qml.so.6
#18 0x00007fcef4cfc46d in QQmlThreadPrivate::event(QEvent*) () from /lib64/libQt6Qml.so.6
#19 0x00007fcef59c3228 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt6Widgets.so.6
#20 0x00007fcef35a0948 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt6Core.so.6
#21 0x00007fcef35a4845 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt6Core.so.6
#22 0x00007fcef386c86f in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt6Core.so.6
#23 0x00007fcef2223e5c in g_main_context_dispatch_unlocked.lto_priv () from /lib64/libglib-2.0.so.0
#24 0x00007fcef227ef18 in g_main_context_iterate_unlocked.isra () from /lib64/libglib-2.0.so.0
#25 0x00007fcef2221ad3 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#26 0x00007fcef386c11f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#27 0x00007fcef35ad70b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#28 0x00007fcef36b55cf in QThread::exec() () from /lib64/libQt6Core.so.6
#29 0x00007fcef375015e in QThreadPrivate::start(void*) () from /lib64/libQt6Core.so.6
#30 0x00007fcef2eac897 in start_thread () from /lib64/libc.so.6
#31 0x00007fcef2f3380c in clone3 () from /lib64/libc.so.6

Reported using DrKonqi
Comment 1 Harald Sitter 2024-03-20 02:05:09 UTC
*** Bug 484030 has been marked as a duplicate of this bug. ***
Comment 2 Harald Sitter 2024-03-20 02:05:10 UTC
*** Bug 483834 has been marked as a duplicate of this bug. ***
Comment 3 Harald Sitter 2024-03-20 02:05:12 UTC
*** Bug 483590 has been marked as a duplicate of this bug. ***
Comment 4 chiflutz 2024-03-20 09:20:13 UTC
I've worked around this by purging the plasmashell cache and selecting the Wayland session again in SDDM. It seems that this only occurs for the X11 session.
Comment 5 Tom Crider 2024-03-20 20:52:52 UTC
I was able to reproduce the issue.

It appears at least from testing on Nobara that plasma-x11 session only wants to load if a single display is connected. Any more than one and either plasma hangs at a black screen or boots out back to sddm login screen
Comment 6 bsnapcaps 2024-03-20 21:27:48 UTC
Please note that I was using Wayland, not x11 when the issue happened.   All that I did was change the theme back to default Breeze Dark from a custom theme.   I noticed an immediate issue with it not fully transitioning the theme, and upon reboot to try to fix it, I got the black screen (with ability to use terminal) regardless of Wayland or x11.   Also, I only have one monitor, so I'm not sure if this is exactly the same issue as when someone has two monitors and gets a black screen.
Comment 7 Nicolas Fella 2024-03-20 21:42:39 UTC
The backtraces here point to an issue with the QML disk cache, so it makes sense that clearing the cache fixes it.

Any issues specific to X11 or Wayland or a particular display setup are most likely unrelated bugs
Comment 8 Nicolas Fella 2024-03-20 21:42:57 UTC
*** Bug 483280 has been marked as a duplicate of this bug. ***
Comment 9 Tom Crider 2024-03-21 16:46:51 UTC
(In reply to Nicolas Fella from comment #7)
> The backtraces here point to an issue with the QML disk cache, so it makes
> sense that clearing the cache fixes it.
> 
> Any issues specific to X11 or Wayland or a particular display setup are most
> likely unrelated bugs

wrt that it might be worth retesting then as there was a recent rebuild for qml as of a yesterday (6.0.2-2 packages in nobara)
Comment 10 chiflutz 2024-03-22 15:53:35 UTC
(In reply to Tom Crider from comment #9)

> 
> wrt that it might be worth retesting then as there was a recent rebuild for
> qml as of a yesterday (6.0.2-2 packages in nobara)

After the update, when switching sessions, there's a minor abrtapplet crash (x3), but nothing impacting plasmashell. I can't reproduce the original state of the cache anymore, didn't think to back it up, but I don't suppose it's important enough to dig through.

The abrtapplet notification does not pop up if the login reuses the previous session, instead of switching. It's also not possible to report it from the notification window (no button), so if you missed the popup, you have to reproduce it in order to report it via drkonqi.

Also after this update, SDDM does not follow the KDE Display Configuration, so if you're expecting to log in on your primary display, it will seem "locked up" - input doesn't display and mouse navigation is impeded by the fact that the cursor is on display 2 instead of 0, with no apparent common margin. This is only a problem if display 2 is a) HDMI and b) currently turned off.

I'm aware that my setup is in the very low percentile of users (2x DP displays, 1x HDMI, all with different resolutions and refresh rates, on an nvidia GPU), so from where I'm standing, the KDE 6 release on Nobara 39 has been a fantastic success. Thank you for all your work!

--
Including inxi output in case it's relevant:
Graphics:
  Device-1: NVIDIA GA102 [GeForce RTX 3080] driver: nvidia v: 550.54.14
  Display: server: X.Org v: 1.20.14 with: Xwayland v: 21.1.99 driver: X:
    loaded: nvidia unloaded: fbdev,modesetting,nouveau,vesa
    gpu: nvidia,nvidia-nvswitch resolution: 1: 2560x1440~144Hz
    2: 1920x1080~60Hz 3: 3840x2160
  API: EGL v: 1.5 drivers: nvidia,swrast
    platforms: gbm,x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.54.14
    renderer: NVIDIA GeForce RTX 3080/PCIe/SSE2
  API: Vulkan v: 1.3.270 drivers: nvidia,llvmpipe surfaces: xcb,xlib
Audio:
  Device-1: NVIDIA GA102 High Definition Audio driver: snd_hda_intel
  Device-2: AMD Starship/Matisse HD Audio driver: snd_hda_intel
  API: ALSA v: k6.7.6-201.fsync.fc39.x86_64 status: kernel-api
Info:
  Memory: total: 64 GiB available: 62.7 GiB used: 2.95 GiB (4.7%)
  Processes: 521 Uptime: 5h 49m Shell: Sudo inxi: 3.3.33
Comment 11 Nate Graham 2024-04-11 23:31:52 UTC

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