Bug 378590 - plasmashell crash by wallpaper?
Summary: plasmashell crash by wallpaper?
Status: RESOLVED FIXED
Alias: None
Product: Plasma Workspace Wallpapers
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2017-04-09 15:31 UTC by rооt
Modified: 2017-04-16 15:52 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 rооt 2017-04-09 15:31:26 UTC
Application: plasmashell (5.9.90)

Qt Version: 5.7.1
Frameworks Version: 5.33.0
Operating System: Linux 4.10.0-19-generic x86_64
Distribution: Ubuntu Zesty Zapus (development branch)

-- Information about the crash:
- What I was doing when the application crashed:
Configure Desktop -> Wallpaper -> Wallpaper Type -> Picture of the Day -> Providers -> Bingʼs Picture of the Day --> plasmashell crash.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f5d023b8440 (LWP 1613))]

Thread 9 (Thread 0x7f5c4d0a4700 (LWP 1622)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f5cd7156b23 in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
#2  0x00007f5cd7156987 in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
#3  0x00007f5cfb51a6da in start_thread (arg=0x7f5c4d0a4700) at pthread_create.c:456
#4  0x00007f5cfbf8417f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 8 (Thread 0x7f5cd4dbc700 (LWP 1621)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f5cd7156b23 in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
#2  0x00007f5cd7156987 in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
#3  0x00007f5cfb51a6da in start_thread (arg=0x7f5cd4dbc700) at pthread_create.c:456
#4  0x00007f5cfbf8417f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 7 (Thread 0x7f5cd55bd700 (LWP 1620)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f5cd7156b23 in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
#2  0x00007f5cd7156987 in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
#3  0x00007f5cfb51a6da in start_thread (arg=0x7f5cd55bd700) at pthread_create.c:456
#4  0x00007f5cfbf8417f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 6 (Thread 0x7f5cd5dbe700 (LWP 1619)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f5cd7156b23 in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
#2  0x00007f5cd7156987 in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
#3  0x00007f5cfb51a6da in start_thread (arg=0x7f5cd5dbe700) at pthread_create.c:456
#4  0x00007f5cfbf8417f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 5 (Thread 0x7f5cd7fff700 (LWP 1618)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f5d01d252c4 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f5d01e0ef20 <QTWTF::pageheap_memory>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#2  0x00007f5d01d25309 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#3  0x00007f5cfb51a6da in start_thread (arg=0x7f5cd7fff700) at pthread_create.c:456
#4  0x00007f5cfbf8417f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 4 (Thread 0x7f5cde38d700 (LWP 1617)):
#0  0x00007f5cfbf7818d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f5cf6bbe576 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f5cf6bbe68c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f5cfc89bf2b in QEventDispatcherGlib::processEvents (this=0x7f5cd00008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f5cfc84588a in QEventLoop::exec (this=this@entry=0x7f5cde38cca0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#5  0x00007f5cfc672fe3 in QThread::exec (this=this@entry=0x557cee2cadb0) at thread/qthread.cpp:507
#6  0x00007f5cff539df5 in QQmlThreadPrivate::run (this=0x557cee2cadb0) at qml/ftw/qqmlthread.cpp:147
#7  0x00007f5cfc677c98 in QThreadPrivate::start (arg=0x557cee2cadb0) at thread/qthread_unix.cpp:368
#8  0x00007f5cfb51a6da in start_thread (arg=0x7f5cde38d700) at pthread_create.c:456
#9  0x00007f5cfbf8417f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 3 (Thread 0x7f5cdffff700 (LWP 1616)):
#0  0x00007f5cfbf7818d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f5cf6bbe576 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f5cf6bbe68c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f5cfc89bf2b in QEventDispatcherGlib::processEvents (this=0x7f5cd80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f5cfc84588a in QEventLoop::exec (this=this@entry=0x7f5cdfffeca0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#5  0x00007f5cfc672fe3 in QThread::exec (this=this@entry=0x557cee288620) at thread/qthread.cpp:507
#6  0x00007f5cff539df5 in QQmlThreadPrivate::run (this=0x557cee288620) at qml/ftw/qqmlthread.cpp:147
#7  0x00007f5cfc677c98 in QThreadPrivate::start (arg=0x557cee288620) at thread/qthread_unix.cpp:368
#8  0x00007f5cfb51a6da in start_thread (arg=0x7f5cdffff700) at pthread_create.c:456
#9  0x00007f5cfbf8417f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 2 (Thread 0x7f5cee504700 (LWP 1614)):
#0  0x00007f5cfbf7818d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f5cf6bbe576 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f5cf6bbe68c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f5cfc89bf2b in QEventDispatcherGlib::processEvents (this=0x7f5ce80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f5cfc84588a in QEventLoop::exec (this=this@entry=0x7f5cee503c90, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#5  0x00007f5cfc672fe3 in QThread::exec (this=this@entry=0x7f5cfcf1fd20 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:507
#6  0x00007f5cfccae5c5 in QDBusConnectionManager::run (this=0x7f5cfcf1fd20 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
#7  0x00007f5cfc677c98 in QThreadPrivate::start (arg=0x7f5cfcf1fd20 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:368
#8  0x00007f5cfb51a6da in start_thread (arg=0x7f5cee504700) at pthread_create.c:456
#9  0x00007f5cfbf8417f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 1 (Thread 0x7f5d023b8440 (LWP 1613)):
[KCrash Handler]
#6  QJsonPrivate::Array::at (i=<optimized out>, this=0x557cefaa7dc0) at json/qjson_p.h:642
#7  QJsonArray::at (this=<optimized out>, i=<optimized out>) at json/qjsonarray.cpp:368
#8  0x00007f5cfc82b112 in QJsonValueRef::toValue (this=this@entry=0x7ffd82da2c40) at json/qjsonvalue.cpp:745
#9  0x00007f5cfc82b254 in QJsonValueRef::toObject (this=this@entry=0x7ffd82da2c40) at json/qjsonvalue.cpp:739
#10 0x00007f5c460e478d in BingProvider::Private::pageRequestFinished (this=0x557cee7fa660, _job=<optimized out>) at ./dataengines/potd/bingprovider.cpp:67
#11 0x00007f5cfc8734a9 in QMetaObject::activate (sender=sender@entry=0x557cee802390, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd82da2df0) at kernel/qobject.cpp:3740
#12 0x00007f5cfc873dc7 in QMetaObject::activate (sender=sender@entry=0x557cee802390, m=m@entry=0x7f5cfe90c500 <KJob::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd82da2df0) at kernel/qobject.cpp:3602
#13 0x00007f5cfe6b8b0f in KJob::finished (this=this@entry=0x557cee802390, _t1=<optimized out>, _t1@entry=0x557cee802390) at ./obj-x86_64-linux-gnu/src/lib/moc_kjob.cpp:547
#14 0x00007f5cfe6ba532 in KJob::finishJob (this=this@entry=0x557cee802390, emitResult=emitResult@entry=true) at ./src/lib/jobs/kjob.cpp:106
#15 0x00007f5cfe6bc52a in KJob::emitResult (this=this@entry=0x557cee802390) at ./src/lib/jobs/kjob.cpp:293
#16 0x00007f5cf5dc823f in KIO::SimpleJob::slotFinished (this=this@entry=0x557cee802390) at ./src/core/simplejob.cpp:233
#17 0x00007f5cf5dd2b03 in KIO::TransferJob::slotFinished (this=0x557cee802390) at ./src/core/transferjob.cpp:166
#18 0x00007f5cf5dd22b1 in KIO::TransferJob::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./obj-x86_64-linux-gnu/src/core/moc_transferjob.cpp:155
#19 0x00007f5cfc8734a9 in QMetaObject::activate (sender=sender@entry=0x557cee780300, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x0) at kernel/qobject.cpp:3740
#20 0x00007f5cfc873dc7 in QMetaObject::activate (sender=sender@entry=0x557cee780300, m=m@entry=0x7f5cf6076840 <KIO::SlaveInterface::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x0) at kernel/qobject.cpp:3602
#21 0x00007f5cf5da00f3 in KIO::SlaveInterface::finished (this=this@entry=0x557cee780300) at ./obj-x86_64-linux-gnu/src/core/moc_slaveinterface.cpp:424
#22 0x00007f5cf5da20b1 in KIO::SlaveInterface::dispatch (this=0x557cee780300, _cmd=<optimized out>, rawdata=...) at ./src/core/slaveinterface.cpp:160
#23 0x00007f5cf5da06e7 in KIO::SlaveInterface::dispatch (this=0x557cee780300) at ./src/core/slaveinterface.cpp:89
#24 0x00007f5cf5da5761 in KIO::Slave::gotInput (this=0x557cee780300) at ./src/core/slave.cpp:399
#25 0x00007f5cf5e32005 in KIO::Slave::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./obj-x86_64-linux-gnu/src/core/KF5KIOCore_automoc.dir/moc_slave_HJU3JQIV4SC6KR.cpp:87
#26 0x00007f5cfc8734a9 in QMetaObject::activate (sender=0x557cee816250, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3740
#27 0x00007f5cfc873dc7 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f5cf60755a0 <KIO::Connection::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3602
#28 0x00007f5cf5d41f4f in KIO::Connection::readyRead (this=<optimized out>) at ./obj-x86_64-linux-gnu/src/core/moc_connection_p.cpp:142
#29 KIO::ConnectionPrivate::dequeue (this=0x557cee8164e0) at ./src/core/connection.cpp:46
#30 0x00007f5cfc874359 in QObject::event (this=0x557cee816250, e=<optimized out>) at kernel/qobject.cpp:1263
#31 0x00007f5cfd7aa35c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x557cee816250, e=0x557cefac99b0) at kernel/qapplication.cpp:3799
#32 0x00007f5cfd7b1b11 in QApplication::notify (this=0x7ffd82da3ac0, receiver=0x557cee816250, e=0x557cefac99b0) at kernel/qapplication.cpp:3556
#33 0x00007f5cfc8478a0 in QCoreApplication::notifyInternal2 (receiver=0x557cee816250, event=event@entry=0x557cefac99b0) at kernel/qcoreapplication.cpp:988
#34 0x00007f5cfc84a02d in QCoreApplication::sendEvent (event=0x557cefac99b0, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#35 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x557cee1a3b90) at kernel/qcoreapplication.cpp:1649
#36 0x00007f5cfc84a498 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1503
#37 0x00007f5cfc89bb03 in postEventSourceDispatch (s=0x557cee1fd470) at kernel/qeventdispatcher_glib.cpp:276
#38 0x00007f5cf6bbe377 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007f5cf6bbe5e0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007f5cf6bbe68c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007f5cfc89bf0f in QEventDispatcherGlib::processEvents (this=0x557cee1f4540, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#42 0x00007f5cfc84588a in QEventLoop::exec (this=this@entry=0x7ffd82da39a0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#43 0x00007f5cfc84dffc in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
#44 0x0000557ced31120f in ?? ()
#45 0x00007f5cfbe9c3f1 in __libc_start_main (main=0x557ced3106b0, argc=1, argv=0x7ffd82da3c68, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd82da3c58) at ../csu/libc-start.c:291
#46 0x0000557ced31158a in _start ()

Reported using DrKonqi
Comment 1 Daimonion 2017-04-15 21:21:04 UTC
I can confirm this, I get a crash when using Bing POTD.
Comment 2 Daimonion 2017-04-15 22:02:39 UTC
When starting plasmashell from terminal I see this:

`file:///usr/share/plasma/wallpapers/org.kde.potd/contents/ui/main.qml:46: TypeError: Cannot read property 'Image' of undefined`
Comment 3 Daimonion 2017-04-16 08:55:31 UTC
I've noticed that `kdeplasma-addons-5.9.4/dataengines/potd/bingprovider.cpp` perhaps has wrong includes:

> #include <QRegExp>
> #include <QImage>
> #include <QJsonDocument>
> #include <QJsonArray>

I've changed this to

> #include <QtCore/QRegExp>
> #include <QtGui/QImage>
> #include <QtCore/QJsonDocument>
> #include <QtCore/QJsonArray>

but it still crashes.
Comment 4 David Rosca 2017-04-16 15:52:36 UTC
Git commit bd07284ec84af57cefd0c91339656f0bda79e466 by David Rosca.
Committed on 16/04/2017 at 15:51.
Pushed by drosca into branch 'master'.

Fix crash in JSON traversal in Bing potd provider

QJsonArray::operator[] returns QJsonValueRef which seems to crash
when trying to convert to object.
Using QJsonArray::at() instead which returns QJsonValue fixes the crash.

Differential Revision: https://phabricator.kde.org/D5478

M  +1    -1    dataengines/potd/bingprovider.cpp

https://commits.kde.org/kdeplasma-addons/bd07284ec84af57cefd0c91339656f0bda79e466