https://bugs.kde.org/show_bug.cgi?id=428361

            Bug ID: 428361
           Summary: kwin sometimes freezes for a brief moment while
                    closing windows
           Product: kwin
           Version: unspecified
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: wayland-generic
          Assignee: kwin-bugs-n...@kde.org
          Reporter: vlad.zahorod...@kde.org
  Target Milestone: ---

SUMMARY
This bug has been annoying me for quite a while. Sometimes, if you close an
application, kwin will freeze and then unfreeze itself shortly after.

I have not found a reliable way to reproduce this freeze.

STEPS TO REPRODUCE
1. Close Firefox

OBSERVED RESULT
There's a 50/50 chance that kwin will freeze for some amount of time.

* thread #1, name = 'kwin_wayland', stop reason = signal SIGSTOP
  * frame #0: 0x00007f9fddf18644
libQt5Core.so.5`std::atomic<QObjectPrivate::Connection*>::load(this=0x0000560d8c692770,
__m=memory_order_relaxed) const at atomic:523:32
    frame #1: 0x00007f9fddf16329 libQt5Core.so.5`QObjectPrivate::Connection*
QAtomicOps<QObjectPrivate::Connection*>::loadRelaxed<QObjectPrivate::Connection*>(_q_value=0x0000560d8c692770)
at qatomic_cxx11.h:239:29
    frame #2: 0x00007f9fddf12efc
libQt5Core.so.5`QBasicAtomicPointer<QObjectPrivate::Connection>::loadRelaxed(this=0x0000560d8c692770)
const at qbasicatomic.h:248:64
    frame #3: 0x00007f9fddf063cd
libQt5Core.so.5`QObjectPrivate::ConnectionData::removeConnection(this=0x0000560d8bcf1010,
c=0x0000560d8d241320) at qobject.cpp:398:103
    frame #4: 0x00007f9fddf0774d
libQt5Core.so.5`QObject::~QObject(this=0x0000560d8c1dbeb0) at
qobject.cpp:1062:41
    frame #5: 0x00007f9fdfa71630
libKWaylandServer.so.5`KWaylandServer::SurfaceInterface::~SurfaceInterface(this=0x0000560d8c1dbeb0)
at surface_interface.cpp:400:37
    frame #6: 0x00007f9fdfa7164c
libKWaylandServer.so.5`KWaylandServer::SurfaceInterface::~SurfaceInterface(this=0x0000560d8c1dbeb0)
at surface_interface.cpp:402:1
    frame #7: 0x00007f9fdfa70eea
libKWaylandServer.so.5`KWaylandServer::SurfaceInterfacePrivate::surface_destroy_resource(this=0x0000560d8c04e910,
(null)=0x0000560d8c1fb490) at surface_interface.cpp:295:12
    frame #8: 0x00007f9fdfaa2602
libKWaylandServer.so.5`QtWaylandServer::wl_surface::destroy_func(client_resource=0x0000560d8bd7c5e0)
at qwayland-server-wayland.cpp:2899:43
    frame #9: 0x00007f9fdf92ee90
libwayland-server.so.0`___lldb_unnamed_symbol21$$libwayland-server.so.0 + 96
    frame #10: 0x00007f9fdf933851
libwayland-server.so.0`___lldb_unnamed_symbol91$$libwayland-server.so.0 + 65
    frame #11: 0x00007f9fdf933d50
libwayland-server.so.0`___lldb_unnamed_symbol101$$libwayland-server.so.0 + 32
    frame #12: 0x00007f9fdf92f020 libwayland-server.so.0`wl_client_destroy + 80
    frame #13: 0x00007f9fdf92f109
libwayland-server.so.0`___lldb_unnamed_symbol23$$libwayland-server.so.0 + 121
    frame #14: 0x00007f9fdf930faa libwayland-server.so.0`wl_event_loop_dispatch
+ 202
    frame #15: 0x00007f9fdf9f1a51
libKWaylandServer.so.5`KWaylandServer::Display::Private::dispatch(this=0x0000560d8ad102d0)
at display.cpp:136:31
    frame #16: 0x00007f9fdf9f1685
libKWaylandServer.so.5`operator(__closure=0x0000560d8b7704a0) at
display.cpp:105:83
    frame #17: 0x00007f9fdf9faef0
libKWaylandServer.so.5`QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void,
KWaylandServer::Display::Private::installSocketNotifier()::<lambda()>
>::call(f=0x0000560d8b7704a0, arg=0x00007fffb748d9f0) &, void **) at
qobjectdefs_impl.h:146:14
    frame #18: 0x00007f9fdf9fa6d7
libKWaylandServer.so.5`QtPrivate::Functor<KWaylandServer::Display::Private::installSocketNotifier()::<lambda()>,
0>::call<QtPrivate::List<>, void>(f=0x0000560d8b7704a0,
(null)=0x0000560d8ad100a0, arg=0x00007fffb748d9f0) &, void *, void **) at
qobjectdefs_impl.h:256:83
    frame #19: 0x00007f9fdf9f8a22
libKWaylandServer.so.5`QtPrivate::QFunctorSlotObject<KWaylandServer::Display::Private::installSocketNotifier()::<lambda()>,
0, QtPrivate::List<>, void>::impl(which=1, this_=0x0000560d8b770490,
r=0x0000560d8ad100a0, a=0x00007fffb748d9f0, ret=0x0000000000000000) at
qobjectdefs_impl.h:443:49
    frame #20: 0x00007f9fdded252f
libQt5Core.so.5`QtPrivate::QSlotObjectBase::call(this=0x0000560d8b770490,
r=0x0000560d8ad100a0, a=0x00007fffb748d9f0) at qobjectdefs_impl.h:398:57
    frame #21: 0x00007f9fddf15778 libQt5Core.so.5`void
doActivate<false>(sender=0x0000560d8b6ba760, signal_index=3,
argv=0x00007fffb748d9f0) at qobject.cpp:3886:30
    frame #22: 0x00007f9fddf0ecd9
libQt5Core.so.5`QMetaObject::activate(sender=0x0000560d8b6ba760,
m=0x00007f9fde2b2380, local_signal_index=0, argv=0x00007fffb748d9f0) at
qobject.cpp:3946:26
    frame #23: 0x00007f9fddf1f530
libQt5Core.so.5`QSocketNotifier::activated(this=0x0000560d8b6ba760, _t1=(sockfd
= 7), _t2=Read, _t3=QPrivateSignal @ 0x00007fffb748d9df) at
moc_qsocketnotifier.cpp:178:26
    frame #24: 0x00007f9fddf1f077
libQt5Core.so.5`QSocketNotifier::event(this=0x0000560d8b6ba760,
e=0x00007fffb748df40) at qsocketnotifier.cpp:302:23
    frame #25: 0x00007f9fded9fd2b
libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=0x0000560d8acb7340,
receiver=0x0000560d8b6ba760, e=0x00007fffb748df40) at qapplication.cpp:3632:31
    frame #26: 0x00007f9fded9d069
libQt5Widgets.so.5`QApplication::notify(this=0x00007fffb748e2d0,
receiver=0x0000560d8b6ba760, e=0x00007fffb748df40) at qapplication.cpp:2972:31
    frame #27: 0x00007f9fddec0255
libQt5Core.so.5`QCoreApplication::notifyInternal2(receiver=0x0000560d8b6ba760,
event=0x00007fffb748df40) at qcoreapplication.cpp:1063:24
    frame #28: 0x00007f9fddec0cac
libQt5Core.so.5`QCoreApplication::sendEvent(receiver=0x0000560d8b6ba760,
event=0x00007fffb748df40) at qcoreapplication.cpp:1458:27
    frame #29: 0x00007f9fddf520ed
libQt5Core.so.5`QEventDispatcherUNIXPrivate::activateSocketNotifiers(this=0x0000560d8acc60d0)
at qeventdispatcher_unix.cpp:304:36
    frame #30: 0x00007f9fddf52f15
libQt5Core.so.5`QEventDispatcherUNIX::processEvents(this=0x0000560d8accf610,
flags=(i = 36)) at qeventdispatcher_unix.cpp:511:50
    frame #31: 0x00007f9fd8fb251c
KWinQpaPlugin.so`QUnixEventDispatcherQPA::processEvents(this=0x0000560d8accf610,
flags=(i = 36)) at qunixeventdispatcher.cpp:63:67
    frame #32: 0x00007f9fddebc917
libQt5Core.so.5`QEventLoop::processEvents(this=0x00007fffb748e100, flags=(i =
36)) at qeventloop.cpp:139:68
    frame #33: 0x00007f9fddebcc79
libQt5Core.so.5`QEventLoop::exec(this=0x00007fffb748e100, flags=(i = 0)) at
qeventloop.cpp:232:22
    frame #34: 0x00007f9fddec0aee libQt5Core.so.5`QCoreApplication::exec() at
qcoreapplication.cpp:1371:36
    frame #35: 0x00007f9fde405184 libQt5Gui.so.5`QGuiApplication::exec() at
qguiapplication.cpp:1867:34
    frame #36: 0x00007f9fded9ca35 libQt5Widgets.so.5`QApplication::exec() at
qapplication.cpp:2824:33
    frame #37: 0x0000560d89b5d417 kwin_wayland`main(argc=3,
argv=0x00007fffb748e538) at main_wayland.cpp:702:18
    frame #38: 0x00007f9fdd542152 libc.so.6`__libc_start_main + 242
    frame #39: 0x0000560d89b53c9e kwin_wayland`_start + 46

EXPECTED RESULT
No freeze.

SOFTWARE/OS VERSIONS
KDE Plasma Version: git master
KDE Frameworks Version: git master
Qt Version: 5.15.2 (built from source code)

ADDITIONAL INFORMATION
This might be a Qt bug, not sure.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to