Bug 457606 - Weather tray crashes KDE if DNS is down
Summary: Weather tray crashes KDE if DNS is down
Status: RESOLVED FIXED
Alias: None
Product: kdeplasma-addons
Classification: Plasma
Component: Weather (show other bugs)
Version: 5.24.4
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
: 458967 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-08-07 22:49 UTC by kwasha.spam+kde
Modified: 2022-09-10 18:21 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.24.7, 5.25.5


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kwasha.spam+kde 2022-08-07 22:49:14 UTC
Application: plasmashell (5.24.4)

Qt Version: 5.15.3
Frameworks Version: 5.92.0
Operating System: Linux 5.15.0-45-generic x86_64
Windowing System: X11
Distribution: Ubuntu 22.04.1 LTS
DrKonqi: 5.24.4 [KCrashBackend]

-- Information about the crash:
- What I was doing when the application crashed:
Trying to set the weather tray (searching for location) but DNS was down (firewall)

- Custom settings of the application:
I upgraded from 21.10 and my firewall allowances are based on interface name... which changed during upgrade.

The crash can be reproduced every time.

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

[KCrash Handler]
#4  0x00007f83fe4ea4df in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f83fe4ea702 in QString::split(QChar, QFlags<Qt::SplitBehaviorFlags>, Qt::CaseSensitivity) const () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f8380188ab7 in DWDIon::calculatePositions(QStringList, QVector<int>&, QVector<int>&) () at /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/ion_dwd.so
#7  0x00007f8380189297 in DWDIon::parseStationData(QByteArray) () at /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/ion_dwd.so
#8  0x00007f838018b30b in DWDIon::setup_slotJobFinished(KJob*) () at /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/ion_dwd.so
#9  0x00007f83fe67d783 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007f83ff125e70 in KJob::result(KJob*, KJob::QPrivateSignal) () at /lib/x86_64-linux-gnu/libKF5CoreAddons.so.5
#11 0x00007f83ff12a3db in KJob::finishJob(bool) () at /lib/x86_64-linux-gnu/libKF5CoreAddons.so.5
#12 0x00007f83fe67d783 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007f83fc875d1a in KIO::SlaveInterface::error(int, QString const&) () at /lib/x86_64-linux-gnu/libKF5KIOCore.so.5
#14 0x00007f83fc877e77 in KIO::SlaveInterface::dispatch(int, QByteArray const&) () at /lib/x86_64-linux-gnu/libKF5KIOCore.so.5
#15 0x00007f83fc87647d in KIO::SlaveInterface::dispatch() () at /lib/x86_64-linux-gnu/libKF5KIOCore.so.5
#16 0x00007f83fc87aba2 in KIO::Slave::gotInput() () at /lib/x86_64-linux-gnu/libKF5KIOCore.so.5
#17 0x00007f83fe67d783 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007f83fe67340e in QObject::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007f83ff33c713 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f83fe645e2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f83fe648f17 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007f83fe69fa57 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007f83fca21d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007f83fca766f8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007f83fca1f3c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007f83fe69f0a8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007f83fe64474b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007f83fe64cce4 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x0000556f7fd91dce in  ()
#30 0x00007f83fdf61d90 in __libc_start_call_main (main=main@entry=0x556f7fd90f70, argc=argc@entry=1, argv=argv@entry=0x7ffc8f0b1858) at ../sysdeps/nptl/libc_start_call_main.h:58
#31 0x00007f83fdf61e40 in __libc_start_main_impl (main=0x556f7fd90f70, argc=1, argv=0x7ffc8f0b1858, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc8f0b1848) at ../csu/libc-start.c:392
#32 0x0000556f7fd91ef5 in  ()
[Inferior 1 (process 5246) detached]

Reported using DrKonqi
This report was filed against 'kde' because the product 'plasmashell' could not be located in Bugzilla. Add it to drkonqi's mappings file!
Comment 1 Nicolas Fella 2022-08-08 10:57:54 UTC
Can reproduce by turning off Wifi and searching for a location in the widget setup

#0  (anonymous namespace)::splitString<QStringList, QString>(QString const&, QChar const*, Qt::SplitBehavior, Qt::CaseSensitivity, int)
    (source=..., sep=0x7fffffffcb4e, behavior=..., cs=Qt::CaseSensitive, separatorSize=1) at text/qstring.cpp:7814
#1  0x00007ffff53bd7bd in QString::split(QChar, QFlags<Qt::SplitBehaviorFlags>, Qt::CaseSensitivity) const (this=<optimized out>, sep=sep@entry=..., behavior=..., 
    behavior@entry=..., cs=cs@entry=Qt::CaseSensitive) at text/qstring.cpp:7925
#2  0x00007fff61878380 in DWDIon::calculatePositions(QStringList, QVector<int>&, QVector<int>&) (this=this@entry=0x24366e0, lines=..., namePositionalInfo=..., stationIdPositionalInfo=...)
    at /home/nico/kde/usr/include/QtCore/qchar.h:101
#3  0x00007fff61878b18 in DWDIon::parseStationData(QByteArray) (this=this@entry=0x24366e0, data=...) at /home/nico/kde/src/plasma-workspace/dataengines/weather/ions/dwd/ion_dwd.cpp:371
#4  0x00007fff6187af5b in DWDIon::setup_slotJobFinished(KJob*) (this=0x24366e0, job=<optimized out>) at /home/nico/kde/src/plasma-workspace/dataengines/weather/ions/dwd/ion_dwd.cpp:286
#5  0x00007ffff55383f4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffce20, r=0x24366e0, this=0x416f640) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#6  doActivate<false>(QObject*, int, void**) (sender=0x43624b0, signal_index=6, argv=0x7fffffffce20) at kernel/qobject.cpp:3886
#7  0x00007ffff5531b8f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=sender@entry=0x43624b0, m=m@entry=0x7ffff61b1640 <KJob::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fffffffce20) at kernel/qobject.cpp:3946
#8  0x00007ffff6157675 in KJob::result(KJob*, KJob::QPrivateSignal) (this=this@entry=0x43624b0, _t1=<optimized out>, _t1@entry=0x43624b0, _t2=...)
    at /home/nico/kde/build/kcoreaddons/src/lib/KF5CoreAddons_autogen/include/moc_kjob.cpp:633
#9  0x00007ffff615886b in KJob::finishJob(bool) (this=0x43624b0, emitResult=<optimized out>) at /home/nico/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:98
#10 0x00007ffff55383f4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffcf30, r=0x43624b0, this=0x41aed70) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#11 doActivate<false>(QObject*, int, void**) (sender=0x1f223a0, signal_index=5, argv=0x7fffffffcf30) at kernel/qobject.cpp:3886
#12 0x00007ffff5531b8f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=sender@entry=0x1f223a0, m=m@entry=0x7ffff7afbac0 <KIO::SlaveInterface::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffffffcf30) at kernel/qobject.cpp:3946
#13 0x00007ffff7a1d486 in KIO::SlaveInterface::error(int, QString const&) (this=this@entry=0x1f223a0, _t1=<optimized out>, _t2=...)
    at /home/nico/kde/build/kio/src/core/KF5KIOCore_autogen/include/moc_slaveinterface.cpp:452
#14 0x00007ffff7a1f752 in KIO::SlaveInterface::dispatch(int, QByteArray const&) (this=0x1f223a0, _cmd=<optimized out>, rawdata=...) at /home/nico/kde/src/kio/src/core/slaveinterface.cpp:181
#15 0x00007ffff7a1dab8 in KIO::SlaveInterface::dispatch() (this=0x1f223a0) at /home/nico/kde/src/kio/src/core/slaveinterface.cpp:78
#16 0x00007ffff7a227d1 in KIO::Slave::gotInput() (this=0x1f223a0) at /home/nico/kde/src/kio/src/core/slave.cpp:346
#17 0x00007ffff55383f4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffd100, r=0x1f223a0, this=0x1e8c230) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#18 doActivate<false>(QObject*, int, void**) (sender=0x24c74d0, signal_index=3, argv=0x7fffffffd100) at kernel/qobject.cpp:3886
#19 0x00007ffff552d3e0 in QObject::event(QEvent*) (this=0x24c74d0, e=0x48453e0) at kernel/qobject.cpp:1314
#20 0x00007ffff63ea37e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x24c74d0, e=0x48453e0) at kernel/qapplication.cpp:3637
#21 0x00007ffff5503458 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x24c74d0, event=0x48453e0) at kernel/qcoreapplication.cpp:1064
#22 0x00007ffff5506131 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x4ca4d0) at kernel/qcoreapplication.cpp:1821
#23 0x00007ffff5557d83 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x4f7ee0) at kernel/qeventdispatcher_glib.cpp:277
#24 0x00007ffff21c1faf in g_main_dispatch (context=0x7fffdc005010) at ../glib/gmain.c:3417
#25 g_main_context_dispatch (context=0x7fffdc005010) at ../glib/gmain.c:4135
#26 0x00007ffff22172c8 in g_main_context_iterate.constprop.0 (context=context@entry=0x7fffdc005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4211
#27 0x00007ffff21bf940 in g_main_context_iteration (context=0x7fffdc005010, may_block=1) at ../glib/gmain.c:4276
#28 0x00007ffff55574a6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x4fd030, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#29 0x00007ffff550203b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffd540, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#30 0x00007ffff5509b42 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#31 0x00007ffff5916a0c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867
#32 0x00007ffff63ea2f5 in QApplication::exec() () at kernel/qapplication.cpp:2829
#33 0x0000000000422bb8 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde/src/plasma-workspace/shell/main.cpp:244
Comment 2 Bug Janitor Service 2022-08-08 11:31:09 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1999
Comment 3 Nicolas Fella 2022-08-08 19:35:33 UTC
Git commit 01a92d4e81f04044621ac6d4d0e9464b6fc93ff9 by Nicolas Fella.
Committed on 08/08/2022 at 19:27.
Pushed by nicolasfella into branch 'master'.

[dataengines/weather/dwd] Properly detect empty reply

The reply may be non-null but empty, which leads to a crash later

M  +3    -3    dataengines/weather/ions/dwd/ion_dwd.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/01a92d4e81f04044621ac6d4d0e9464b6fc93ff9
Comment 4 Nicolas Fella 2022-08-08 19:52:09 UTC
Git commit fae8cbac976c933e481991e7c77b4e6f54a2eefa by Nicolas Fella.
Committed on 08/08/2022 at 19:36.
Pushed by nicolasfella into branch 'Plasma/5.25'.

[dataengines/weather/dwd] Properly detect empty reply

The reply may be non-null but empty, which leads to a crash later
(cherry picked from commit 01a92d4e81f04044621ac6d4d0e9464b6fc93ff9)

M  +3    -3    dataengines/weather/ions/dwd/ion_dwd.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/fae8cbac976c933e481991e7c77b4e6f54a2eefa
Comment 5 Nicolas Fella 2022-08-08 19:52:51 UTC
Git commit 7b483096893bc95fb6cf6fd62c3fdece1bbdef9e by Nicolas Fella.
Committed on 08/08/2022 at 19:39.
Pushed by nicolasfella into branch 'Plasma/5.24'.

[dataengines/weather/dwd] Properly detect empty reply

The reply may be non-null but empty, which leads to a crash later
(cherry picked from commit 01a92d4e81f04044621ac6d4d0e9464b6fc93ff9)

M  +3    -3    dataengines/weather/ions/dwd/ion_dwd.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/7b483096893bc95fb6cf6fd62c3fdece1bbdef9e
Comment 6 Nicolas Fella 2022-09-10 18:20:33 UTC
*** Bug 458967 has been marked as a duplicate of this bug. ***