Bug 506809 - Weather applet crashes plasmashell when built with -Wp,-D_GLIBCXX_ASSERTIONS
Summary: Weather applet crashes plasmashell when built with -Wp,-D_GLIBCXX_ASSERTIONS
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Weather widget (other bugs)
Version First Reported In: master
Platform: Other Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-07-09 15:43 UTC by daron439
Modified: 2025-07-10 14:04 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description daron439 2025-07-09 15:43:14 UTC
SUMMARY
After updating to https://invent.kde.org/plasma/kdeplasma-addons/-/commit/ea37d3e98da794f7b617b8761c259905fe263ce2, the weather applet causes plasmashell to crash after configuring the location.

STEPS TO REPRODUCE
1. Build kdeplasma-addons with GLIBCXX_ASSERTIONS enabled
2. Configure the location in the weather applet

OBSERVED RESULT
Plasmashell crashes

EXPECTED RESULT
No crashes

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
(available in the Info Center app, or by running `kinfo` in a terminal window)
Linux/KDE Plasma: 
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007fa3040811e3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
#2  0x00007fa304027afe in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#3  0x00007fa3079db031 in KCrash::defaultCrashHandler (sig=6) at /usr/src/debug/kf6-kcrash-6.17.0~1.gitffbb79e-1.fc42.x86_64/src/kcrash.cpp:605
#4  0x00007fa304027c30 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  0x00007fa3040811e3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
#7  0x00007fa304027afe in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007fa30400f6d0 in __GI_abort () at abort.c:73
#9  0x00007fa30420b086 in std::__glibcxx_assert_fail
    (file=file@entry=0x7fa2e82ae318 "/usr/include/c++/15/bits/shared_ptr_base.h", line=line@entry=1344, function=function@entry=0x7fa2e82ae2d8 "_Tp* std::__shared_ptr_deref(_Tp*) [with _Tp = Forecast]", condition=condition@entry=0x7fa2e82ace69 "__p != nullptr") at ../../../../../libstdc++-v3/src/c++11/assert_fail.cc:41
#10 0x00007fa2e82615a1 in std::__shared_ptr_deref<Forecast> (__p=<optimized out>) at /usr/include/c++/15/bits/shared_ptr_base.h:1357
#11 std::__shared_ptr_access<Forecast, (__gnu_cxx::_Lock_policy)2, false, false>::operator* (this=<optimized out>) at /usr/include/c++/15/bits/shared_ptr_base.h:1358
#12 std::__shared_ptr_access<Forecast, (__gnu_cxx::_Lock_policy)2, false, false>::operator* (this=<optimized out>) at /usr/include/c++/15/bits/shared_ptr_base.h:1357
#13 ForecastControl::getForecast (this=<optimized out>) at /usr/src/debug/kdeplasma-addons-6.4.80~19.gitea37d3e-1.fc42.x86_64/applets/weather/forecastcontrol.cpp:33
#14 ForecastControl::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /usr/src/debug/kdeplasma-addons-6.4.80~19.gitea37d3e-1.fc42.x86_64/redhat-linux-build/applets/weather/org.kde.plasma.weather_autogen/include/moc_forecastcontrol.cpp:136
#15 0x00007fa305bb8e97 in QQmlPropertyData::readProperty (this=0x7fa29438af20, target=0x558e38433780, property=0x7ffd315d75d0)
    at /usr/src/debug/qt6-qtdeclarative-6.9.1-2.fc42.x86_64/src/qml/qml/qqmlpropertydata_p.h:366
#16 QV4::loadProperty (v4=0x558e34308230, wrapper=0x7fa2d0381460, object=0x558e38433780, property=...) at /usr/src/debug/qt6-qtdeclarative-6.9.1-2.fc42.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:280
#17 0x00007fa305bb988e in QV4::Lookup::getter (this=0x558e35e83920, engine=0x558e34308230, object=...) at /usr/src/debug/qt6-qtdeclarative-6.9.1-2.fc42.x86_64/src/qml/jsruntime/qv4lookup_p.h:367
#18 QV4::QObjectWrapper::virtualResolveLookupGetter (object=0x7fa2e00f3548, engine=0x558e34308230, lookup=0x558e35e83920)
    at /usr/src/debug/qt6-qtdeclarative-6.9.1-2.fc42.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:1159
#19 0x00007fa27407a241 in ??? ()
#20 0x0000558e34308230 in ??? ()
#21 0x0000000000000000 in ??? ()
Comment 1 Bug Janitor Service 2025-07-10 09:57:10 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/879
Comment 2 Bogdan Onofriuchuk 2025-07-10 14:04:47 UTC
Git commit 5b3082e914c493a5e6f237c9fe7e4641647e16b9 by Bohdan Onofriichuk.
Committed on 10/07/2025 at 13:42.
Pushed by littlesweet into branch 'master'.

applets/weather: fix dereference of the nullptr pointer

It is possible that forecast() call return nullptr pointer

M  +1    -1    applets/weather/forecastcontrol.cpp

https://invent.kde.org/plasma/kdeplasma-addons/-/commit/5b3082e914c493a5e6f237c9fe7e4641647e16b9