Bug 513377

Summary: With Mullvad VPN service and Weather Report widget active, plasmashell repeatedly crashes in KJob::result() when launching without internet
Product: [Plasma] plasmashell Reporter: Daniel <dsatoobad>
Component: Weather widgetAssignee: Plasma Bugs List <plasma-bugs-null>
Status: REPORTED ---    
Severity: crash CC: isma.af, nate
Priority: NOR    
Version First Reported In: 6.5.4   
Target Milestone: 1.0   
Platform: CachyOS   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Backtrace

Description Daniel 2025-12-14 20:31:21 UTC
Created attachment 187644 [details]
Backtrace

SUMMARY
No actions were taken to cause crash other than booting my computer and logging in through SDDM to a wayland session.

About crash:
- Plasmashell crashes repeatedly and I'm left with a black screen and multiple crash dialogs. Applications still work and can be launched through a terminal or krunner, and I can drag windows around; however, my desktop widgets and panels don't appear.
- Weather Report is using Environment Canada as source.

Testing done:
- Disabling Mullvad VPN services eliminates crashes.
- Disabling the Weather Report system tray extension no longer crashes plasmashell.
- Reinstalling Plasmashell and Mullvad does not fix crash.
- Removing/Resetting configuration files for Plasma does not fix crash.

Non-standard configurations:
- Mullvad VPN is active from launch, although this often requires a disconnect and reconnect for internet to work.
- Full-disk encryption, excluding /boot.

The crash can be reproduced every time.

STEPS TO REPRODUCE
1. Enable Mullvad VPN services (mullvad-daemon.service, mullvad-early-boot-blocking.service)
2. Enable Weather Report tray icon
3. Boot computer

OBSERVED RESULT
Plasmashell crashes repeatedly

EXPECTED RESULT
Plasmashell does not crash

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 6.18.0-3-cachyos
KDE Plasma Version: 6.5.4
KDE Frameworks Version: 6.20.0
Qt Version: 6.10.1

ADDITIONAL INFORMATION
- I suspect this crash is caused by the weather report system tray extension not being able to connect to the internet.
Comment 1 Nate Graham 2025-12-16 22:50:59 UTC
Complete backtrace:


Thread 1 (Thread 0x7f9c8d74e6c0 (LWP 2237)):
[KCrash Handler]
#4  0x00007f9cf04aa0fb in pthread_kill () from /usr/lib/libc.so.6
#5  0x00007f9cf04447c8 in raise () from /usr/lib/libc.so.6
#6  0x00007f9cf042560d in abort () from /usr/lib/libc.so.6
#7  0x00007f9cf089870f in std::__glibcxx_assert_fail (file=<optimized out>, line=<optimized out>, function=<optimized out>, condition=<optimized out>) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/assert_fail.cc:41
#8  0x00007f9c7f0380ce in ?? () from /usr/lib/qt6/plugins/plasma/weather_ions/envcan.so
#9  0x00007f9cf0deb3d6 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#10 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4257
#11 0x00007f9cf2f870e1 in QMetaObject::activate<void, KJob*, KJob::QPrivateSignal> () at /usr/include/qt6/QtCore/qobjectdefs.h:319
#12 KJob::result () at /usr/src/debug/kcoreaddons/build/src/lib/KF6CoreAddons_autogen/include/moc_kjob.cpp:475
#13 0x00007f9cf2f8d7fd in KJob::finishJob () at /usr/src/debug/kcoreaddons/kcoreaddons-6.20.0/src/lib/jobs/kjob.cpp:115
#14 KJob::emitResult () at /usr/src/debug/kcoreaddons/kcoreaddons-6.20.0/src/lib/jobs/kjob.cpp:357
#15 KJob::emitResult () at /usr/src/debug/kcoreaddons/kcoreaddons-6.20.0/src/lib/jobs/kjob.cpp:354
#16 0x00007f9cf0deb3d6 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#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:4257
#18 0x00007f9ceff95784 in QMetaObject::activate<void, int, QString> () at /usr/include/qt6/QtCore/qobjectdefs.h:319
#19 KIO::WorkerInterface::error () at /usr/src/debug/kio/build/src/core/KF6KIOCore_autogen/include/moc_workerinterface_p.cpp:307
#20 KIO::WorkerInterface::dispatch () at /usr/src/debug/kio/kio-6.20.0/src/core/workerinterface.cpp:157
#21 0x00007f9ceff8fbe4 in KIO::WorkerInterface::dispatch () at /usr/src/debug/kio/kio-6.20.0/src/core/workerinterface.cpp:57
#22 KIO::Worker::gotInput () at /usr/src/debug/kio/kio-6.20.0/src/core/worker.cpp:262
#23 KIO::Worker::gotInput () at /usr/src/debug/kio/kio-6.20.0/src/core/worker.cpp:256
#24 0x00007f9cf0deb3d6 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#25 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4257
#26 0x00007f9cf0ddc771 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1413
#27 0x00007f9cf3102229 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7f9c54030130, e=0x7f9c540037d0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3305
#28 0x00007f9cf0d7aed8 in QCoreApplication::notifyInternal2 (receiver=0x7f9c54030130, event=event@entry=0x7f9c540037d0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#29 0x00007f9cf0d7b278 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7f9c540037d0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x557ef6676300) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
#31 0x00007f9cf1091b80 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
#32 postEventSourceDispatch (s=0x7f9c540012f0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#33 0x00007f9cef705429 in ?? () from /usr/lib/libglib-2.0.so.0
#34 0x00007f9cef706848 in ?? () from /usr/lib/libglib-2.0.so.0
#35 0x00007f9cef706982 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#36 0x00007f9cf108e7db in QEventDispatcherGlib::processEvents (this=0x7f9c54000fe0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#37 0x00007f9cf0d86336 in QEventLoop::processEvents (this=0x7f9c8d74d990, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#38 QEventLoop::exec (this=0x7f9c8d74d990, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#39 0x00007f9cf0eb0aea in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:672
#40 0x00007f9cf0f5825e in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:437
#41 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:367
#42 QThreadPrivate::start (arg=0x557ef668faf0) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:397
#43 0x00007f9cf04a80d6 in ?? () from /usr/lib/libc.so.6
#44 0x00007f9cf053b05c in ?? () from /usr/lib/libc.so.6
Comment 2 Nate Graham 2025-12-16 22:54:45 UTC
FWIW, I can't reproduce this by restarting plasmashell with airplane mode enabled or Wi-Fi turned off. The Weather Report widget fails to get data of course, but it doesn't bring down all of Plasma.

No VPN here, though. So it does seem like your VPN is the cause of this.