Bug 373031 - Comic widget crashes when selecting Actual Size with no comic loaded
Summary: Comic widget crashes when selecting Actual Size with no comic loaded
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (show other bugs)
Version: 5.8.4
Platform: Arch Linux Linux
: NOR crash
Target Milestone: 1.0
Assignee: David Edmundson
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-11-28 15:03 UTC by dousha lee
Modified: 2016-11-29 13:03 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description dousha lee 2016-11-28 15:03:34 UTC
Application: plasmashell (5.8.4)

Qt Version: 5.7.0
Frameworks Version: 5.28.0
Operating System: Linux 4.8.10-1-ARCH x86_64
Distribution (Platform): Archlinux Packages

-- Information about the crash:
- What I was doing when the application crashed:
I selected the Actual Size option in the context menu

- Custom settings of the application:
No comic was loaded nor any comic source configurated

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fe10a118800 (LWP 619))]

Thread 10 (Thread 0x7fe027bc3700 (LWP 1471)):
#0  0x00007ffebefacb02 in clock_gettime ()
#1  0x00007fe1038606b6 in clock_gettime () at /usr/lib/libc.so.6
#2  0x00007fe103fe31a1 in  () at /usr/lib/libQt5Core.so.5
#3  0x00007fe10416a3a9 in QTimerInfoList::updateCurrentTime() () at /usr/lib/libQt5Core.so.5
#4  0x00007fe10416a955 in QTimerInfoList::timerWait(timespec&) () at /usr/lib/libQt5Core.so.5
#5  0x00007fe10416bf94 in  () at /usr/lib/libQt5Core.so.5
#6  0x00007fe0feb11c89 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
#7  0x00007fe0feb126ab in  () at /usr/lib/libglib-2.0.so.0
#8  0x00007fe0feb1289c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#9  0x00007fe10416c72b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#10 0x00007fe10411623a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#11 0x00007fe103f390f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#12 0x00007fe103f3dd78 in  () at /usr/lib/libQt5Core.so.5
#13 0x00007fe10304d454 in start_thread () at /usr/lib/libpthread.so.0
#14 0x00007fe1038537df in clone () at /usr/lib/libc.so.6

Thread 9 (Thread 0x7fe03a079700 (LWP 1470)):
#0  0x00007ffebefacb02 in clock_gettime ()
#1  0x00007fe1038606b6 in clock_gettime () at /usr/lib/libc.so.6
#2  0x00007fe103fe31a1 in  () at /usr/lib/libQt5Core.so.5
#3  0x00007fe10416a3a9 in QTimerInfoList::updateCurrentTime() () at /usr/lib/libQt5Core.so.5
#4  0x00007fe10416c085 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007fe0feb12179 in g_main_context_check () at /usr/lib/libglib-2.0.so.0
#6  0x00007fe0feb12724 in  () at /usr/lib/libglib-2.0.so.0
#7  0x00007fe0feb1289c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#8  0x00007fe10416c72b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#9  0x00007fe10411623a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#10 0x00007fe103f390f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#11 0x00007fe103f3dd78 in  () at /usr/lib/libQt5Core.so.5
#12 0x00007fe10304d454 in start_thread () at /usr/lib/libpthread.so.0
#13 0x00007fe1038537df in clone () at /usr/lib/libc.so.6

Thread 8 (Thread 0x7fe0414ac700 (LWP 1025)):
#0  0x00007fe10384a48d in poll () at /usr/lib/libc.so.6
#1  0x00007fe0feb12786 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fe0feb1289c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007fe10416c72b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fe10411623a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fe103f390f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007fe0439d80a7 in KCupsConnection::run() () at /usr/lib/libkcupslib.so
#7  0x00007fe103f3dd78 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fe10304d454 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007fe1038537df in clone () at /usr/lib/libc.so.6

Thread 7 (Thread 0x7fe054774700 (LWP 899)):
#0  0x00007fe0feb11fa0 in g_main_context_check () at /usr/lib/libglib-2.0.so.0
#1  0x00007fe0feb12724 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fe0feb1289c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007fe10416c72b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fe10411623a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fe103f390f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007fe107e38856 in  () at /usr/lib/libQt5Quick.so.5
#7  0x00007fe103f3dd78 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fe10304d454 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007fe1038537df in clone () at /usr/lib/libc.so.6

Thread 6 (Thread 0x7fe0dffff700 (LWP 824)):
#0  0x00007fe10305310f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007fe1098d4ac4 in  () at /usr/lib/libQt5Script.so.5
#2  0x00007fe1098d4b09 in  () at /usr/lib/libQt5Script.so.5
#3  0x00007fe10304d454 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007fe1038537df in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7fe0e9f72700 (LWP 746)):
#0  0x00007fe10384a48d in poll () at /usr/lib/libc.so.6
#1  0x00007fe0feb12786 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fe0feb1289c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007fe10416c72b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fe10411623a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fe103f390f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007fe10729c2d5 in  () at /usr/lib/libQt5Qml.so.5
#7  0x00007fe103f3dd78 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fe10304d454 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007fe1038537df in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7fe0eb9d2700 (LWP 726)):
#0  0x00007ffebefacb02 in clock_gettime ()
#1  0x00007fe1038606b6 in clock_gettime () at /usr/lib/libc.so.6
#2  0x00007fe103fe31a1 in  () at /usr/lib/libQt5Core.so.5
#3  0x00007fe10416a3a9 in QTimerInfoList::updateCurrentTime() () at /usr/lib/libQt5Core.so.5
#4  0x00007fe10416a955 in QTimerInfoList::timerWait(timespec&) () at /usr/lib/libQt5Core.so.5
#5  0x00007fe10416bcfe in  () at /usr/lib/libQt5Core.so.5
#6  0x00007fe0feb11c89 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
#7  0x00007fe0feb126ab in  () at /usr/lib/libglib-2.0.so.0
#8  0x00007fe0feb1289c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#9  0x00007fe10416c72b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#10 0x00007fe10411623a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#11 0x00007fe103f390f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#12 0x00007fe10729c2d5 in  () at /usr/lib/libQt5Qml.so.5
#13 0x00007fe103f3dd78 in  () at /usr/lib/libQt5Core.so.5
#14 0x00007fe10304d454 in start_thread () at /usr/lib/libpthread.so.0
#15 0x00007fe1038537df in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7fe0f1a54700 (LWP 677)):
#0  0x00007fe10a054860 in __tls_get_addr () at /lib64/ld-linux-x86-64.so.2
#1  0x00007fe103f3cc16 in  () at /usr/lib/libQt5Core.so.5
#2  0x00007fe10416be7a in  () at /usr/lib/libQt5Core.so.5
#3  0x00007fe0feb11c89 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
#4  0x00007fe0feb126ab in  () at /usr/lib/libglib-2.0.so.0
#5  0x00007fe0feb1289c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#6  0x00007fe10416c72b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#7  0x00007fe10411623a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#8  0x00007fe103f390f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#9  0x00007fe104cb9e55 in  () at /usr/lib/libQt5DBus.so.5
#10 0x00007fe103f3dd78 in  () at /usr/lib/libQt5Core.so.5
#11 0x00007fe10304d454 in start_thread () at /usr/lib/libpthread.so.0
#12 0x00007fe1038537df in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7fe0f3413700 (LWP 668)):
#0  0x00007fe10384a48d in poll () at /usr/lib/libc.so.6
#1  0x00007fe1088098e0 in  () at /usr/lib/libxcb.so.1
#2  0x00007fe10880b679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007fe0f5150449 in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007fe103f3dd78 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007fe10304d454 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007fe1038537df in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7fe10a118800 (LWP 619)):
[KCrash Handler]
#6  0x00007fe1057b7f28 in KConfigGroup::writeEntry(char const*, QByteArray const&, QFlags<KConfigBase::WriteConfigFlag>) () at /usr/lib/libKF5ConfigCore.so.5
#7  0x00007fe1057beb59 in KConfigGroup::writeEntry(char const*, QVariant const&, QFlags<KConfigBase::WriteConfigFlag>) () at /usr/lib/libKF5ConfigCore.so.5
#8  0x00007fe02a134efe in  () at /usr/lib/qt/plugins/plasma/applets/plasma_applet_comic.so
#9  0x00007fe02a11f417 in  () at /usr/lib/qt/plugins/plasma/applets/plasma_applet_comic.so
#10 0x00007fe1041439ce in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5
#11 0x00007fe10507c442 in QAction::triggered(bool) () at /usr/lib/libQt5Widgets.so.5
#12 0x00007fe10507ee30 in QAction::activate(QAction::ActionEvent) () at /usr/lib/libQt5Widgets.so.5
#13 0x00007fe1051ece6a in  () at /usr/lib/libQt5Widgets.so.5
#14 0x00007fe1051f305c in  () at /usr/lib/libQt5Widgets.so.5
#15 0x00007fe1051f7050 in QMenu::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/libQt5Widgets.so.5
#16 0x00007fe1050c9ef8 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#17 0x00007fe1051f7b0b in QMenu::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#18 0x00007fe105082e0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#19 0x00007fe10508b43d in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#20 0x00007fe104117de0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#21 0x00007fe105089aed in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/libQt5Widgets.so.5
#22 0x00007fe1050e4580 in  () at /usr/lib/libQt5Widgets.so.5
#23 0x00007fe1050e6743 in  () at /usr/lib/libQt5Widgets.so.5
#24 0x00007fe105082e0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#25 0x00007fe10508a581 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#26 0x00007fe104117de0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#27 0x00007fe104666303 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#28 0x00007fe104667e85 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/libQt5Gui.so.5
#29 0x00007fe104645cab in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#30 0x00007fe0f5186390 in  () at /usr/lib/libQt5XcbQpa.so.5
#31 0x00007fe0feb12587 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#32 0x00007fe0feb127f0 in  () at /usr/lib/libglib-2.0.so.0
#33 0x00007fe0feb1289c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#34 0x00007fe10416c70f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#35 0x00007fe10411623a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#36 0x00007fe10411e73c in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#37 0x000000000041c9d2 in  ()
#38 0x00007fe10378b291 in __libc_start_main () at /usr/lib/libc.so.6
#39 0x000000000041cd5a in _start ()

Reported using DrKonqi
Comment 1 Marco Martin 2016-11-29 13:03:03 UTC
Git commit 7195311a1cd8f50686cacbbb5fd5ff6821bfdbb9 by Marco Martin.
Committed on 29/11/2016 at 13:02.
Pushed by mart into branch 'Plasma/5.8'.

check on current comic to be valid

don't crash on invalid config groups when asked.
also, disable the context menu options when no valid comic is loaded

M  +14   -4    applets/comic/comic.cpp
M  +13   -0    applets/comic/comicdata.cpp
M  +5    -0    applets/comic/comicdata.h

https://commits.kde.org/kdeplasma-addons/7195311a1cd8f50686cacbbb5fd5ff6821bfdbb9