Bug 481596 - Weather applet crashes plasmashell
Summary: Weather applet crashes plasmashell
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (other bugs)
Version First Reported In: master
Platform: Other Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: qt6
: 485217 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-02-20 20:59 UTC by Akseli Lahtinen
Modified: 2024-04-09 09:42 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Akseli Lahtinen 2024-02-20 20:59:26 UTC
SUMMARY

Sometimes when clicking on weather applet/widget that is inside a panel, it crashes plasmashell. I can't reproduce this bug easily.

BACKTRACE

Core was generated by `/home/akseli/Repositories/kde/usr/bin/plasmashell --no-respawn'.
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
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;                       
[Current thread is 1 (Thread 0x7f8dd2921400 (LWP 2171))]
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
#1  0x00007f8dd6cae8a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f8dd6c5c8ee in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f8ddb269f44 in KCrash::defaultCrashHandler (sig=6)
    at /home/akseli/Repositories/kde/src/kcrash/src/kcrash.cpp:586
#4  0x00007f8dd6c5c9a0 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  0x00007f8dd6cae8a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#7  0x00007f8dd6c5c8ee in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007f8dd6c448ff in __GI_abort () at abort.c:79
#9  0x00007f8dd72e3563 in qAbort ()
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/global/qglobal.cpp:161
#10 0x00007f8dd7328be0 in qt_message_fatal<QString&> (message=..., context=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/global/qlogging.cpp:2003
#11 qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *)
    (msgType=msgType@entry=QtFatalMsg, context=..., msg=msg@entry=0x7f8dd7679db8 "ASSERT: \"%s\" in file %s, line %d", ap=ap@entry=0x7fff0cd639f0)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/global/qlogging.cpp:378
#12 0x00007f8dd72e44f9 in QMessageLogger::fatal
    (this=this@entry=0x7fff0cd63ad8, msg=msg@entry=0x7f8dd7679db8 "ASSERT: \"%s\" in file %s, line %d")
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/global/qlogging.cpp:901
#13 0x00007f8dd72e34b8 in qt_assert (assertion=<optimized out>, file=<optimized out>, line=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/global/qassert.cpp:68
#14 0x00007f8d6beedbf9 in QMap<QString, QVariant>::first (this=0x7fff0cd63c30)
    at /usr/include/qt6/QtCore/qmap.h:418
--Type <RET> for more, q to quit, c to continue without paging--c
#15 0x00007f8d6bee4a64 in DWDIon::parseForecastData (this=0x69069d0, source=..., doc=...)
    at /home/akseli/Repositories/kde/src/plasma-workspace/dataengines/weather/ions/dwd/ion_dwd.cpp:425
#16 0x00007f8d6bee3d78 in DWDIon::forecast_slotJobFinished (this=0x69069d0, job=0x5dfc7d0)
    at /home/akseli/Repositories/kde/src/plasma-workspace/dataengines/weather/ions/dwd/ion_dwd.cpp:326
#17 0x00007f8d6bf01e38 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KJob*>, void, void (DWDIon::*)(KJob*)>::call
    (f=(void (DWDIon::*)(class DWDIon * const, class KJob *)) 0x7f8d6bee3c1c <DWDIon::forecast_slotJobFinished(KJob*)>, o=0x69069d0, arg=0x7fff0cd64570) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:145
#18 0x00007f8d6befd94c in QtPrivate::FunctionPointer<void (DWDIon::*)(KJob*)>::call<QtPrivate::List<KJob*>, void>
    (f=(void (DWDIon::*)(class DWDIon * const, class KJob *)) 0x7f8d6bee3c1c <DWDIon::forecast_slotJobFinished(KJob*)>, o=0x69069d0, arg=0x7fff0cd64570) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:182
#19 0x00007f8d6bef8c15 in QtPrivate::QCallableObject<void (DWDIon::*)(KJob*), QtPrivate::List<KJob*>, void>::impl (which=1, this_=0x34cf400, r=0x69069d0, a=0x7fff0cd64570, ret=0x0)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:520
#20 0x00007f8dd7402011 in QtPrivate::QSlotObjectBase::call (a=0x7fff0cd64570, r=0x69069d0, this=0x34cf400)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobjectdefs_impl.h:433
#21 doActivate<false> (sender=0x5dfc7d0, signal_index=6, argv=0x7fff0cd64570)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:4021
#22 0x00007f8dd8823ecc in KJob::result (this=0x5dfc7d0, _t1=0x5dfc7d0, _t2=...)
    at /home/akseli/Repositories/kde/build/kcoreaddons/src/lib/KF6CoreAddons_autogen/include/moc_kjob.cpp:793
#23 0x00007f8dd88218e1 in KJob::finishJob (this=0x5dfc7d0, emitResult=true)
    at /home/akseli/Repositories/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:98
#24 0x00007f8dd88224ed in KJob::emitResult (this=0x5dfc7d0)
    at /home/akseli/Repositories/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:329
#25 0x00007f8ddaf143c9 in KIO::SimpleJob::slotFinished (this=0x5dfc7d0)
    at /home/akseli/Repositories/kde/src/kio/src/core/simplejob.cpp:229
#26 0x00007f8ddaf21c61 in KIO::TransferJob::slotFinished (this=0x5dfc7d0)
    at /home/akseli/Repositories/kde/src/kio/src/core/transferjob.cpp:157
#27 0x00007f8ddaf17b35 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KIO::SimpleJob::*)()>::call(void (KIO::SimpleJob::*)(), KIO::SimpleJob*, void**)
    (f=&virtual KIO::SimpleJob::slotFinished(), o=0x5dfc7d0, arg=0x7fff0cd64b88)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:145
#28 0x00007f8ddaf178aa in QtPrivate::FunctionPointer<void (KIO::SimpleJob::*)()>::call<QtPrivate::List<>, void>(void (KIO::SimpleJob::*)(), KIO::SimpleJob*, void**)
    (f=&virtual KIO::SimpleJob::slotFinished(), o=0x5dfc7d0, arg=0x7fff0cd64b88)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:182
#29 0x00007f8ddaf1766b in QtPrivate::QCallableObject<void (KIO::SimpleJob::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x68de020, r=0x5dfc7d0, a=0x7fff0cd64b88, ret=0x0)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:520
#30 0x00007f8dd7402011 in QtPrivate::QSlotObjectBase::call (a=0x7fff0cd64b88, r=0x5dfc7d0, this=0x68de020)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobjectdefs_impl.h:433
#31 doActivate<false> (sender=0x2bbae40, signal_index=7, argv=0x7fff0cd64b88)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:4021
#32 0x00007f8ddafcf0af in KIO::WorkerInterface::finished (this=0x2bbae40)
    at /home/akseli/Repositories/kde/build/kio/src/core/KF6KIOCore_autogen/include/moc_workerinterface_p.cpp:639
#33 0x00007f8ddafcc986 in KIO::WorkerInterface::dispatch (this=0x2bbae40, _cmd=104, rawdata=...)
    at /home/akseli/Repositories/kde/src/kio/src/core/workerinterface.cpp:129
#34 0x00007f8ddafcc61e in KIO::WorkerInterface::dispatch (this=0x2bbae40)
    at /home/akseli/Repositories/kde/src/kio/src/core/workerinterface.cpp:60
#35 0x00007f8ddafca46f in KIO::Worker::gotInput (this=0x2bbae40)
    at /home/akseli/Repositories/kde/src/kio/src/core/worker.cpp:263
#36 0x00007f8ddafcc2aa in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KIO::Worker::*)()>::call(void (KIO::Worker::*)(), KIO::Worker*, void**)
    (f=(void (KIO::Worker::*)(class KIO::Worker * const)) 0x7f8ddafca42c <KIO::Worker::gotInput()>, o=0x2bbae40, arg=0x7fff0cd650b8) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:145
#37 0x00007f8ddafcc230 in QtPrivate::FunctionPointer<void (KIO::Worker::*)()>::call<QtPrivate::List<>, void>(void (KIO::Worker::*)(), KIO::Worker*, void**)
    (f=(void (KIO::Worker::*)(class KIO::Worker * const)) 0x7f8ddafca42c <KIO::Worker::gotInput()>, o=0x2bbae40, arg=0x7fff0cd650b8) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:182
#38 0x00007f8ddafcc171 in QtPrivate::QCallableObject<void (KIO::Worker::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x6ecb410, r=0x2bbae40, a=0x7fff0cd650b8, ret=0x0)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:520
#39 0x00007f8dd7402011 in QtPrivate::QSlotObjectBase::call (a=0x7fff0cd650b8, r=0x2bbae40, this=0x6ecb410)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobjectdefs_impl.h:433
#40 doActivate<false> (sender=0x6829790, signal_index=3, argv=0x7fff0cd650b8)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:4021
#41 0x00007f8ddae55b61 in KIO::Connection::readyRead (this=0x6829790)
    at /home/akseli/Repositories/kde/build/kio/src/core/KF6KIOCore_autogen/include/moc_connection_p.cpp:160
#42 0x00007f8ddae54c99 in KIO::ConnectionPrivate::dequeue (this=0x62f17b0)
    at /home/akseli/Repositories/kde/src/kio/src/core/connection.cpp:31
#43 0x00007f8ddae54cb9 in operator() (__closure=0x767e010)
    at /home/akseli/Repositories/kde/src/kio/src/core/connection.cpp:40
#44 0x00007f8ddae56556 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KIO::ConnectionPrivate::commandReceived(const KIO::Task&)::<lambda()> >::call(struct {...} &, void **)
    (f=..., arg=0x4bcadd8) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:137
#45 0x00007f8ddae56457 in QtPrivate::Functor<KIO::ConnectionPrivate::commandReceived(const KIO::Task&)::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x4bcadd8)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:339
#46 0x00007f8ddae56188 in QtPrivate::QCallableObject<KIO::ConnectionPrivate::commandReceived(const KIO::Task&)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=1, this_=0x767e000, r=0x6829790, a=0x4bcadd8, ret=0x0)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:522
#47 0x00007f8dd73f3617 in QObject::event (this=0x6829790, e=0x4bcad90)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:1437
#48 0x00007f8dd9dc2b38 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x6829790, e=0x4bcad90)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/widgets/kernel/qapplication.cpp:3290
#49 0x00007f8dd73a0ba8 in QCoreApplication::notifyInternal2 (receiver=0x6829790, event=0x4bcad90)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1118
#50 0x00007f8dd73a0dad in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1536
#51 0x00007f8dd73a4aa5 in QCoreApplicationPrivate::sendPostedEvents
    (receiver=0x0, event_type=0, data=0x1545570)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1898
#52 0x00007f8dd73a4e1d in QCoreApplication::sendPostedEvents
    (receiver=<optimized out>, event_type=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1757
#53 0x00007f8dd76410bf in postEventSourceDispatch (s=0x15d8570)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#54 0x00007f8dd6382e5c in g_main_dispatch (context=0x7f8dc0000ef0) at ../glib/gmain.c:3476
#55 g_main_context_dispatch_unlocked (context=0x7f8dc0000ef0) at ../glib/gmain.c:4284
#56 0x00007f8dd63ddf18 in g_main_context_iterate_unlocked.isra.0
    (context=context@entry=0x7f8dc0000ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4349
#57 0x00007f8dd6380ad3 in g_main_context_iteration (context=0x7f8dc0000ef0, may_block=1)
    at ../glib/gmain.c:4414
#58 0x00007f8dd764096f in QEventDispatcherGlib::processEvents (this=0x1573c40, flags=...)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#59 0x00007f8dd73ad9bb in QEventLoop::exec (this=this@entry=0x7fff0cd656b0, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/global/qflags.h:34
#60 0x00007f8dd73a97bd in QCoreApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/global/qflags.h:74
#61 0x00000000004428b0 in main (argc=2, argv=0x7fff0cd66338)
    at /home/akseli/Repositories/kde/src/plasma-workspace/shell/main.cpp:214
(gdb) Quit


SOFTWARE/OS VERSIONS
Operating System: Fedora Linux 39
KDE Plasma Version: 6.0.80
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.0
Kernel Version: 6.7.4-200.fc39.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: AMD Radeon RX 6600
Comment 1 Bug Janitor Service 2024-02-21 12:08:09 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3954
Comment 2 Harald Sitter 2024-02-21 13:09:50 UTC
Git commit 4b1765959111bff449942643abe68ddc3ecba74a by Harald Sitter.
Committed on 21/02/2024 at 12:07.
Pushed by sitter into branch 'master'.

weather/dwd: don't crash on empty json objects

before calling .first() we need to make sure the map isn't empty

M  +5    -1    dataengines/weather/ions/dwd/ion_dwd.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/4b1765959111bff449942643abe68ddc3ecba74a
Comment 3 Harald Sitter 2024-02-21 13:25:41 UTC
Git commit 4c7252069ed97418df5f7c1160bce299a53421a5 by Harald Sitter.
Committed on 21/02/2024 at 13:10.
Pushed by sitter into branch 'Plasma/6.0'.

weather/dwd: don't crash on empty json objects

before calling .first() we need to make sure the map isn't empty


(cherry picked from commit 4b1765959111bff449942643abe68ddc3ecba74a)

M  +5    -1    dataengines/weather/ions/dwd/ion_dwd.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/4c7252069ed97418df5f7c1160bce299a53421a5
Comment 4 Nicolas Fella 2024-04-08 10:45:23 UTC
*** Bug 485217 has been marked as a duplicate of this bug. ***
Comment 5 Nicolas Fella 2024-04-09 09:42:51 UTC
Git commit ce1ed1ce55470a68935b192d10ead9f3fd37c360 by Nicolas Fella, on behalf of Harald Sitter.
Committed on 08/04/2024 at 10:44.
Pushed by nicolasfella into branch 'Plasma/5.27'.

weather/dwd: don't crash on empty json objects

before calling .first() we need to make sure the map isn't empty
(cherry picked from commit 4b1765959111bff449942643abe68ddc3ecba74a)

M  +5    -1    dataengines/weather/ions/dwd/ion_dwd.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/ce1ed1ce55470a68935b192d10ead9f3fd37c360