Bug 443268 - Crash in KIdleTimePoller on logout
Summary: Crash in KIdleTimePoller on logout
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: git master
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-03 18:30 UTC by Zamundaaa
Modified: 2021-10-04 13:23 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zamundaaa 2021-10-03 18:30:14 UTC
#0  0x00007fec63634a4c in  () at /usr/lib/libQt5Core.so.5
#1  0x00007fec63634e4e in QObject::disconnectImpl(QObject const*, void**, QObject const*, void**, QMetaObject const*) () at /usr/lib/libQt5Core.so.5
#2  0x0000555c73f46427 in QObject::disconnect<void (KWaylandServer::IdleInterface::*)(), void (KWin::KWinIdleTimePoller::*)()>(QtPrivate::FunctionPointer<void (KWaylandServer::IdleInterface::*)()>::Object const*, void (KWaylandServer::IdleInterface::*)(), QtPrivate::FunctionPointer<void (KWin::KWinIdleTimePoller::*)()>::Object const*, void (KWin::KWinIdleTimePoller::*)())
    (slot=(void (KWin::KWinIdleTimePoller::*)(KWin::KWinIdleTimePoller * const)) 0x555c73f460d0 <KWin::KWinIdleTimePoller::onInhibitedChanged()>, receiver=0x555c752ba770, signal=
    (void (KWaylandServer::IdleInterface::*)(KWaylandServer::IdleInterface * const)) 0x7fec64199ac0 <KWaylandServer::IdleInterface::inhibitedChanged()>, sender=<optimized out>) at /usr/include/qt/QtCore/qobject.h:380
#3  KWin::KWinIdleTimePoller::unloadPoller() (this=0x555c752ba770) at /home/xaver/kde/src/kwin/src/plugins/idletime/poller.cpp:42
#4  0x00007fec64f9e528 in KIdleTimePrivate::unloadCurrentSystem() (this=0x555c751d99c0) at /home/xaver/kde/src/kidletime/src/kidletime.cpp:259
#5  0x00007fec64f9e581 in KIdleTime::~KIdleTime() (this=0x555c752c4380, __in_chrg=<optimized out>) at /home/xaver/kde/src/kidletime/src/kidletime.cpp:95
#6  0x00007fec64f9e645 in KIdleTime::~KIdleTime() (this=0x555c752c4380, __in_chrg=<optimized out>) at /home/xaver/kde/src/kidletime/src/kidletime.cpp:92
#7  KIdleTimeHelper::~KIdleTimeHelper() (this=<optimized out>, __in_chrg=<optimized out>) at /home/xaver/kde/src/kidletime/src/kidletime.cpp:30
#8  (anonymous namespace)::Q_QGS_s_globalKIdleTime::Holder::~Holder() (this=<optimized out>, __in_chrg=<optimized out>)
    at /home/xaver/kde/src/kidletime/src/kidletime.cpp:37
#9  0x00007fec62af14a7 in __run_exit_handlers () at /usr/lib/libc.so.6
#10 0x00007fec62af164e in  () at /usr/lib/libc.so.6
#11 0x00007fec62ad9b2c in __libc_start_main () at /usr/lib/libc.so.6
#12 0x0000555c73f242ae in _start ()
Comment 1 Bug Janitor Service 2021-10-04 08:16:09 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1489
Comment 2 Méven Car 2021-10-04 09:28:23 UTC
Git commit 85fb0e7c43d893ce8352cb39f8a047037c64d4d2 by Méven Car.
Committed on 04/10/2021 at 08:24.
Pushed by meven into branch 'master'.

IdleTimePoller: Fix a crash at shutdown

Currently, kwin crashes at shutdown because the idle poller plugin is unloaded when exit handlers are run, after the waylandServer() is destroyed. This results in null dereferencing.

M  +3    -1    src/plugins/idletime/poller.cpp

https://invent.kde.org/plasma/kwin/commit/85fb0e7c43d893ce8352cb39f8a047037c64d4d2