Bug 415359 - Division by zero in Manager::resetSlowUpdateTimer()
Summary: Division by zero in Manager::resetSlowUpdateTimer()
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 5.17.4
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL: https://phabricator.kde.org/D26493
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2019-12-19 15:47 UTC by Dennis Schridde
Modified: 2020-01-08 04:36 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 5.17.5
Sentry Crash Report:
vlad.zahorodnii: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dennis Schridde 2019-12-19 15:47:05 UTC
Application: kwin_x11 (5.17.4)

Qt Version: 5.12.5
Frameworks Version: 5.64.0
Operating System: Linux 5.3.16-300.fc31.x86_64 x86_64
Distribution: Fedora 31 (Thirty One)

-- Information about the crash:
- What I was doing when the application crashed:

I activated System Settings > Display and Monitor > Night Colour and then tried to get to Plasma Red Shift to disable it, but KWin is in a crash loop.

-- Backtrace:
Application: KWin (kwin_x11), signal: Floating point exception
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fe2d3fcb940 (LWP 5451))]

Thread 5 (Thread 0x7fe2bf70a700 (LWP 5494)):
#0  0x00007fe2db008b66 in ppoll () at /lib64/libc.so.6
#1  0x00007fe2d9b63249 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /lib64/libQt5Core.so.5
#2  0x00007fe2d9b64344 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#3  0x00007fe2d9b10cfb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#4  0x00007fe2d99693a5 in QThread::exec() () at /lib64/libQt5Core.so.5
#5  0x00007fe2d8613119 in QQmlThreadPrivate::run() () at /lib64/libQt5Qml.so.5
#6  0x00007fe2d996a4f6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007fe2d8ea14e2 in start_thread () at /lib64/libpthread.so.0
#8  0x00007fe2db013693 in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7fe2bffff700 (LWP 5481)):
#0  0x00007fe2d8ea807a in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007fe2d996ff39 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#2  0x00007fe2d997005b in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#3  0x00007fe2d996dcd3 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#4  0x00007fe2d996a4f6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007fe2d8ea14e2 in start_thread () at /lib64/libpthread.so.0
#6  0x00007fe2db013693 in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7fe2c607e700 (LWP 5456)):
#0  0x00007fe2d9b64a23 in QVector<pollfd>::append(pollfd&&) () at /lib64/libQt5Core.so.5
#1  0x00007fe2d9b642e7 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#2  0x00007fe2d9b10cfb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#3  0x00007fe2d99693a5 in QThread::exec() () at /lib64/libQt5Core.so.5
#4  0x00007fe2d7f66f4a in QDBusConnectionManager::run() () at /lib64/libQt5DBus.so.5
#5  0x00007fe2d996a4f6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#6  0x00007fe2d8ea14e2 in start_thread () at /lib64/libpthread.so.0
#7  0x00007fe2db013693 in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7fe2c6d68700 (LWP 5454)):
#0  0x00007fe2db008a6f in poll () at /lib64/libc.so.6
#1  0x00007fe2d988f38a in _xcb_conn_wait () at /lib64/libxcb.so.1
#2  0x00007fe2d9890fea in xcb_wait_for_event () at /lib64/libxcb.so.1
#3  0x00007fe2c6e97ac8 in QXcbEventQueue::run() () at /lib64/libQt5XcbQpa.so.5
#4  0x00007fe2d996a4f6 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007fe2d8ea14e2 in start_thread () at /lib64/libpthread.so.0
#6  0x00007fe2db013693 in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7fe2d3fcb940 (LWP 5451)):
[KCrash Handler]
#6  0x00007fe2dacbfa54 in KWin::ColorCorrect::Manager::resetSlowUpdateTimer() () at /lib64/libkwin.so.5
#7  0x00007fe2dacbfc01 in KWin::ColorCorrect::Manager::resetSlowUpdateStartTimer() () at /lib64/libkwin.so.5
#8  0x00007fe2dacbfe25 in KWin::ColorCorrect::Manager::resetQuickAdjustTimer() () at /lib64/libkwin.so.5
#9  0x00007fe2dacc03b7 in KWin::ColorCorrect::Manager::init() () at /lib64/libkwin.so.5
#10 0x00007fe2d9b3c010 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5
#11 0x00007fe2db0e38dc in QtPrivate::QFunctorSlotObject<KWin::ApplicationX11::performStartup()::{lambda()#2}::operator()() const::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () at /lib64/libkdeinit5_kwin_x11.so
#12 0x00007fe2d9b3c010 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5
#13 0x00007fe2db0e3d7a in QtPrivate::QFunctorSlotObject<KWin::ApplicationX11::performStartup()::{lambda()#2}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () at /lib64/libkdeinit5_kwin_x11.so
#14 0x00007fe2d9b3c010 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5
#15 0x00007fe2da9dd5b7 in KSelectionOwner::Private::claimSucceeded() () at /lib64/libKF5WindowSystem.so.5
#16 0x00007fe2d9b3cce5 in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#17 0x00007fe2da478ad6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#18 0x00007fe2da482150 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#19 0x00007fe2d9b11df8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#20 0x00007fe2d9b66048 in QTimerInfoList::activateTimers() () at /lib64/libQt5Core.so.5
#21 0x00007fe2d9b6446f in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#22 0x00007fe2c6e98f12 in QXcbUnixEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5XcbQpa.so.5
#23 0x00007fe2d9b10cfb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#24 0x00007fe2d9b18a26 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#25 0x00007fe2db0e5648 in kdemain () at /lib64/libkdeinit5_kwin_x11.so
#26 0x00007fe2daf391a3 in __libc_start_main () at /lib64/libc.so.6
#27 0x0000556204ffe0ae in _start ()
[Inferior 1 (process 5451) detached]

Possible duplicates by query: bug 413755, bug 409611.

Reported using DrKonqi
Comment 1 Vlad Zahorodnii 2020-01-07 11:31:20 UTC
Hmm, I thought this crash had been fixed long time ago... If you're able to reproduce the crash, could you please install kwin debug packages and attach a new backtrace to this bug report? (the current one lacks debug symbols)
Comment 2 Dennis Schridde 2020-01-07 11:49:12 UTC
(In reply to Vlad Zahorodnii from comment #1)
> Hmm, I thought this crash had been fixed long time ago... If you're able to
> reproduce the crash, could you please install kwin debug packages and attach
> a new backtrace to this bug report? (the current one lacks debug symbols)

I cannot reproduce on this machine right now.  Maybe Red Hat already deployed a fix to Fedora.  I will reopen, if I manage to reproduce this issue.
Comment 3 Vlad Zahorodnii 2020-01-07 13:31:15 UTC
Git commit 5646c781c88ab0f0427f23102bea889a835bd378 by Vlad Zahorodnii.
Committed on 07/01/2020 at 13:30.
Pushed by vladz into branch 'Plasma/5.17'.

[nightcolor] Fix division by zero

Summary:
If qAbs(targetTemp - m_currentTemp) is less than TEMPERATURE_STEP, then
it will result in a division by zero.

FIXED-IN: 5.17.5

Reviewers: #kwin, apol

Reviewed By: apol

Subscribers: kwin

Tags: #kwin

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

M  +1    -1    colorcorrection/manager.cpp

https://commits.kde.org/kwin/5646c781c88ab0f0427f23102bea889a835bd378
Comment 4 Dennis Schridde 2020-01-08 04:36:50 UTC
(In reply to Vlad Zahorodnii from comment #3)
> Git commit 5646c781c88ab0f0427f23102bea889a835bd378 by Vlad Zahorodnii.

Thanks!