Bug 514553

Summary: Plasma crashes in EnvCanadaIon::readXMLData() with EnvCan weather station in Weather Report widget
Product: [Plasma] plasmashell Reporter: kde.sleeve173
Component: Weather widgetAssignee: Plasma Bugs List <plasma-bugs-null>
Status: ASSIGNED ---    
Severity: crash CC: bogdan.onofriuchuk, isma.af, kde, kdedev, nate
Priority: HI    
Version First Reported In: 6.5.4   
Target Milestone: 1.0   
Platform: openSUSE   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=508213
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Generated crash file with full backtrace, username redacted

Description kde.sleeve173 2026-01-13 20:48:24 UTC
Created attachment 188487 [details]
Generated crash file with full backtrace, username redacted

For a few months now (at least 3-5 months now I'd say), on my openSUSE Tumbleweed setup, plasmashell has been crashing 3 times in a row upon login. This usually resolves after restarting plasmashell following these 3 consecutive crashes, but after this plasmashell will sometimes crash randomly while using my laptop. Rarely, plasmashell will continue crashing infinitely, restarting for about 1 second before crashing again, requiring me to log out and/or restart to get the manageable 3 crashes instead. This has been ongoing for a few months now, and happens everytime I log in; I have removed the line about calendarExtensions widget from the configuration file as recommended by others online encountering a similar issue, but this did not solve the issue.
Comment 1 David Edmundson 2026-01-13 22:57:26 UTC
>#11 EnvCanadaIon::forecast_slotJobFinished (this=0x5652b6cd4f50, job=<optimized out>) at /usr/src/debug/kdeplasma-addons-6.5.4/applets/weather/ions/envcan/ion_envcan.cpp:667

Crash is in the weather applet, removing that will fix your issue.
Comment 2 TraceyC 2026-01-14 15:06:17 UTC
Searchable backtrace of the crashing process


Thread 1 (Thread 0x7fddf5ed06c0 (LWP 2469)):
[KCrash Handler]
#4  std::__uniq_ptr_impl<QXmlStreamReaderPrivate, std::default_delete<QXmlStreamReaderPrivate> >::_M_ptr (this=0x0) at /usr/include/c++/15/bits/unique_ptr.h:192
#5  std::unique_ptr<QXmlStreamReaderPrivate, std::default_delete<QXmlStreamReaderPrivate> >::get (this=0x0) at /usr/include/c++/15/bits/unique_ptr.h:472
#6  qGetPtrHelper<std::unique_ptr<QXmlStreamReaderPrivate, std::default_delete<QXmlStreamReaderPrivate> > const> (ptr=...) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qtclasshelpermacros.h:137
#7  QXmlStreamReader::d_func (this=0x0) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/serialization/qxmlstream.h:367
#8  QXmlStreamReader::atEnd (this=this@entry=0x0) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/serialization/qxmlstream.cpp:671
#9  0x00007fddf5f01dce in EnvCanadaIon::readXMLData (this=0x5652b6cd4f50, xml=...) at /usr/src/debug/kdeplasma-addons-6.5.4/applets/weather/ions/envcan/ion_envcan.cpp:770
#10 EnvCanadaIon::forecast_slotJobFinished (this=0x5652b6cd4f50, job=<optimized out>) at /usr/src/debug/kdeplasma-addons-6.5.4/applets/weather/ions/envcan/ion_envcan.cpp:682
#11 EnvCanadaIon::forecast_slotJobFinished (this=0x5652b6cd4f50, job=<optimized out>) at /usr/src/debug/kdeplasma-addons-6.5.4/applets/weather/ions/envcan/ion_envcan.cpp:667
#12 0x00007fde4f835b20 in QtPrivate::QSlotObjectBase::call (this=0x7fddc8004b60, r=<optimized out>, a=0x7fddf5ecf040) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobjectdefs_impl.h:461
#13 doActivate<false> (sender=0x7fddc8005400, signal_index=6, argv=0x7fddf5ecf040) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobject.cpp:4257
#14 0x00007fde5230dab1 in QMetaObject::activate<void, KJob*, KJob::QPrivateSignal> (sender=0x7fddc8005400, mo=<optimized out>, local_signal_index=3, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:319
#15 KJob::result (this=this@entry=0x7fddc8005400, _t1=<optimized out>, _t1@entry=0x7fddc8005400, _t2=...) at /usr/src/debug/kcoreaddons-6.21.0/build/src/lib/KF6CoreAddons_autogen/include/moc_kjob.cpp:475
#16 0x00007fde52312b6b in KJob::finishJob (this=0x7fddc8005400, emitResult=<optimized out>) at /usr/src/debug/kcoreaddons-6.21.0/src/lib/jobs/kjob.cpp:115
#17 0x00007fde4f835b20 in QtPrivate::QSlotObjectBase::call (this=0x7fddc8001560, r=<optimized out>, a=0x7fddf5ecf2a0) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobjectdefs_impl.h:461
#18 doActivate<false> (sender=0x7fddc8019520, signal_index=5, argv=0x7fddf5ecf2a0) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobject.cpp:4257
#19 0x00007fde4e9a0e81 in QMetaObject::activate<void, int, QString> (sender=0x7fddc8019520, mo=<optimized out>, local_signal_index=2, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:319
#20 KIO::WorkerInterface::error (this=0x7fddc8019520, _t1=<optimized out>, _t2=...) at /usr/src/debug/kio-6.21.0/build/src/core/KF6KIOCore_autogen/include/moc_workerinterface_p.cpp:307
#21 KIO::WorkerInterface::dispatch (this=0x7fddc8019520, _cmd=102, rawdata=...) at /usr/src/debug/kio-6.21.0/src/core/workerinterface.cpp:157
#22 0x00007fde4e990c44 in KIO::WorkerInterface::dispatch (this=0x7fddc8019520) at /usr/src/debug/kio-6.21.0/src/core/workerinterface.cpp:57
#23 0x00007fde4e9924a0 in KIO::Worker::gotInput (this=0x7fddc8019520) at /usr/src/debug/kio-6.21.0/src/core/worker.cpp:262
#24 0x00007fde4f835b20 in QtPrivate::QSlotObjectBase::call (this=0x7fddc8026990, r=<optimized out>, a=0x7fddf5ecf4a8) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobjectdefs_impl.h:461
#25 doActivate<false> (sender=0x7fddc8026690, signal_index=3, argv=0x7fddf5ecf4a8) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobject.cpp:4257
#26 0x00007fde4f8239c4 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobject.cpp:1413
#27 0x00007fde51be7a78 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7fddc8026690, e=0x7fddc8004a10) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/widgets/kernel/qapplication.cpp:3305
#28 0x00007fde4f7ce298 in QCoreApplication::notifyInternal2 (receiver=0x7fddc8026690, event=0x7fddc8004a10) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qcoreapplication.cpp:1109
#29 0x00007fde4f7ce2dd in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qcoreapplication.cpp:1549
#30 0x00007fde4f7d093a in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5652b6cda200) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qcoreapplication.cpp:1904
#31 0x00007fde4fa8ee07 in postEventSourceDispatch (s=s@entry=0x7fddc8000f80) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#32 0x00007fde4e16fb36 in g_main_dispatch (context=0x7fddc8000d00) at ../glib/gmain.c:3565
#33 g_main_context_dispatch_unlocked (context=context@entry=0x7fddc8000d00) at ../glib/gmain.c:4425
#34 0x00007fde4e172a28 in g_main_context_iterate_unlocked (context=context@entry=0x7fddc8000d00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4490
#35 0x00007fde4e17326c in g_main_context_iteration (context=0x7fddc8000d00, may_block=1) at ../glib/gmain.c:4556
#36 0x00007fde4fa8ca28 in QEventDispatcherGlib::processEvents (this=0x7fddc8000be0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#37 0x00007fde4f7dc1ab in QEventLoop::exec (this=0x7fddf5ecf8f0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qflags.h:77
#38 0x00007fde4f8e1679 in QThread::exec (this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/thread/qthread.cpp:672
#39 0x00007fde4f971e68 in operator() (__closure=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/thread/qthread_unix.cpp:437
#40 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/thread/qthread_unix.cpp:367
#41 QThreadPrivate::start (arg=0x5652b6cc3600) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/thread/qthread_unix.cpp:397
#42 0x00007fde4ee9bdf1 in start_thread (arg=<optimized out>) at pthread_create.c:448
#43 0x00007fde4ef20c8c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Comment 3 kde.sleeve173 2026-01-14 18:12:06 UTC
(In reply to David Edmundson from comment #1)
> >#11 EnvCanadaIon::forecast_slotJobFinished (this=0x5652b6cd4f50, job=<optimized out>) at /usr/src/debug/kdeplasma-addons-6.5.4/applets/weather/ions/envcan/ion_envcan.cpp:667
> 
> Crash is in the weather applet, removing that will fix your issue.

Oh hey, thank you for finding that! I honestly should have figured out how to report this sooner, haha. My weather applet was already set to Always Hidden so I'm not sure how to otherwise 'remove' it, but I'll try resetting its configuration since the crash seems to involve the Environment Canada system specifically, interestingly enough.
Comment 4 kde.sleeve173 2026-01-14 18:40:53 UTC
(In reply to kde.sleeve173 from comment #3)
> (In reply to David Edmundson from comment #1)
> > >#11 EnvCanadaIon::forecast_slotJobFinished (this=0x5652b6cd4f50, job=<optimized out>) at /usr/src/debug/kdeplasma-addons-6.5.4/applets/weather/ions/envcan/ion_envcan.cpp:667
> > 
> > Crash is in the weather applet, removing that will fix your issue.
> 
> Oh hey, thank you for finding that! I honestly should have figured out how
> to report this sooner, haha. My weather applet was already set to Always
> Hidden so I'm not sure how to otherwise 'remove' it, but I'll try resetting
> its configuration since the crash seems to involve the Environment Canada
> system specifically, interestingly enough.

I tried setting the weather applet to 'Shown when relevant' so it would appear again, but this resulted in uncontrollable recursive crashes, so I've removed all references to the KDE weather applet from plasma-org.kde.plasma.desktop-appletsrc, and now the crashes stopped, but now my VPN app (which uses an applet) isn't working at all! I must have messed with something there. I'll try reinstalling the VPN app since all the other applets seem to be working fine. I think this bug should still be looked at though because the weather applet should not be having this issue.
Comment 5 Bug Janitor Service 2026-01-16 21:25:07 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/983