Bug 396096 - /usr/bin/kwin_wayland asserts: Scene::windowClosed: assert(m_windows.contains(c));
Summary: /usr/bin/kwin_wayland asserts: Scene::windowClosed: assert(m_windows.contains...
Status: RESOLVED DUPLICATE of bug 395732
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: 5.12.5
Platform: Debian testing Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-07-02 14:58 UTC by Bernhard Übelacker
Modified: 2018-07-10 04:42 UTC (History)
1 user (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 Bernhard Übelacker 2018-07-02 14:58:08 UTC
Just tried a plasma wayland session and found following when closing a window.
Might be related to using non default theme (changed it last year because of
a Qt bug).
What looks suspicious is that KWin::ShellClient::destroyClient is twice in the
callstack for the same object.
If there is anything else I can provide, the core file is still there and
all needed debug packages installed.
(Not sure about the component selected for this bug report.)


Core was generated by `/usr/bin/kwin_wayland --xwayland --libinput --exit-with-session=/usr/lib/x86_64'.
Program terminated with signal SIGABRT, Aborted.


(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007fc92210830f in __GI_abort () at abort.c:100
#2  0x00007fc9220ff9da in __assert_fail_base (fmt=0x7fc909213129 <error: Cannot access memory at address 0x7fc909213129>, assertion=assertion@entry=0x7fc925110272 "m_windows.contains(c)", file=file@entry=0x7fc9251102e0 "/build/kwin-posrbs/kwin-5.12.5/scene.cpp", line=line@entry=414, function=function@entry=0x7fc925110480 <KWin::Scene::windowClosed(KWin::Toplevel*, KWin::Deleted*)::__PRETTY_FUNCTION__> "void KWin::Scene::windowClosed(KWin::Toplevel*, KWin::Deleted*)") at assert.c:92
#3  0x00007fc9220ffa52 in __GI___assert_fail (assertion=assertion@entry=0x7fc925110272 "m_windows.contains(c)", file=file@entry=0x7fc9251102e0 "/build/kwin-posrbs/kwin-5.12.5/scene.cpp", line=line@entry=414, function=function@entry=0x7fc925110480 <KWin::Scene::windowClosed(KWin::Toplevel*, KWin::Deleted*)::__PRETTY_FUNCTION__> "void KWin::Scene::windowClosed(KWin::Toplevel*, KWin::Deleted*)") at assert.c:101
#4  0x00007fc92501c81f in KWin::Scene::windowClosed (this=0x5638a2713d60, c=<optimized out>, deleted=0x5638a2ecbd40) at ./scene.cpp:414
#5  0x00007fc9250edc43 in KWin::Scene::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_scene.cpp:98
#6  0x00007fc922cfb195 in QMetaObject::activate (sender=sender@entry=0x5638a2d19c90, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=5, argv=argv@entry=0x7fff3fa8d320) at kernel/qobject.cpp:3767
#7  0x00007fc922cfb867 in QMetaObject::activate (sender=sender@entry=0x5638a2d19c90, m=m@entry=0x7fc92539fc80 <KWin::Toplevel::staticMetaObject>, local_signal_index=local_signal_index@entry=5, argv=argv@entry=0x7fff3fa8d320) at kernel/qobject.cpp:3629
#8  0x00007fc9250e68de in KWin::Toplevel::windowClosed (this=this@entry=0x5638a2d19c90, _t1=<optimized out>, _t1@entry=0x5638a2d19c90, _t2=<optimized out>, _t2@entry=0x5638a2ecbd40) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_toplevel.cpp:718
#9  0x00007fc92508b9ac in KWin::ShellClient::destroyClient (this=0x5638a2d19c90) at ./shell_client.cpp:362
#10 0x00007fc922cfb2af in QtPrivate::QSlotObjectBase::call (a=0x7fff3fa8d490, r=0x5638a2d19c90, this=0x5638a2d20430) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:378
#11 QMetaObject::activate (sender=sender@entry=0x5638a29c21d0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff3fa8d490) at kernel/qobject.cpp:3750
#12 0x00007fc922cfb867 in QMetaObject::activate (sender=sender@entry=0x5638a29c21d0, m=m@entry=0x7fc923124a60 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff3fa8d490) at kernel/qobject.cpp:3629
#13 0x00007fc922cfb90f in QObject::destroyed (this=this@entry=0x5638a29c21d0, _t1=<optimized out>, _t1@entry=0x5638a29c21d0) at .moc/moc_qobject.cpp:214
#14 0x00007fc922d020ca in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:902
#15 0x00007fc924127397 in KWayland::Server::XdgTopLevelV6Interface::~XdgTopLevelV6Interface (this=0x5638a29c21d0, __in_chrg=<optimized out>) at ./src/server/xdgshell_v6_interface_p.h:92
#16 KWayland::Server::XdgTopLevelV6Interface::~XdgTopLevelV6Interface (this=0x5638a29c21d0, __in_chrg=<optimized out>) at ./src/server/xdgshell_v6_interface_p.h:92
#17 0x00007fc922cfbd20 in QObject::event (this=0x5638a29c21d0, e=<optimized out>) at kernel/qobject.cpp:1238
#18 0x00007fc92328e6cc in QApplicationPrivate::notify_helper (this=this@entry=0x5638a260ae80, receiver=receiver@entry=0x5638a29c21d0, e=e@entry=0x7fc8f8006220) at kernel/qapplication.cpp:3732
#19 0x00007fc923295e84 in QApplication::notify (this=0x7fff3fa8e800, receiver=0x5638a29c21d0, e=0x7fc8f8006220) at kernel/qapplication.cpp:3491
#20 0x00007fc922ccb938 in QCoreApplication::notifyInternal2 (receiver=0x5638a29c21d0, event=event@entry=0x7fc8f8006220) at kernel/qcoreapplication.cpp:1050
#21 0x00007fc922cce4cd in QCoreApplication::sendEvent (event=0x7fc8f8006220, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#22 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=52, data=0x5638a2613330) at kernel/qcoreapplication.cpp:1740
#23 0x00007fc91da9f30d in QQuickRenderControlPrivate::windowDestroyed (this=this@entry=0x5638a2e1c300) at items/qquickrendercontrol.cpp:190
#24 0x00007fc91da9f640 in QQuickRenderControlPrivate::windowDestroyed (this=0x5638a2e1c300) at items/qquickrendercontrol.cpp:176
#25 QQuickRenderControl::~QQuickRenderControl (this=0x5638a2e03590, __in_chrg=<optimized out>) at items/qquickrendercontrol.cpp:181
#26 0x00007fc91da9f669 in QQuickRenderControl::~QQuickRenderControl (this=0x5638a2e03590, __in_chrg=<optimized out>) at items/qquickrendercontrol.cpp:184
#27 0x00007fc8d2bfa8ce in Aurorae::Decoration::~Decoration (this=0x5638a29930d0, __in_chrg=<optimized out>) at ./plugins/kdecorations/aurorae/src/aurorae.cpp:273
#28 0x00007fc8d2bfaa09 in Aurorae::Decoration::~Decoration (this=0x5638a29930d0, __in_chrg=<optimized out>) at ./plugins/kdecorations/aurorae/src/aurorae.cpp:280
#29 0x00007fc924f5d176 in KWin::AbstractClient::destroyDecoration (this=0x5638a2d19c90) at ./abstract_client.cpp:1435
#30 0x00007fc92508b9c0 in KWin::ShellClient::destroyClient (this=0x5638a2d19c90) at ./shell_client.cpp:364
#31 0x00007fc922cfb2af in QtPrivate::QSlotObjectBase::call (a=0x7fff3fa8d9f0, r=0x5638a2d19c90, this=0x5638a29a6e10) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:378
#32 QMetaObject::activate (sender=0x5638a2d2a2b0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3750
#33 0x00007fc922cfb867 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7fc92436ee80 <KWayland::Server::Resource::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3629
#34 0x00007fc92412d870 in KWayland::Server::Resource::unbound (this=<optimized out>) at ./obj-x86_64-linux-gnu/src/server/KF5WaylandServer_autogen/EWIEGA46WW/moc_resource.cpp:138
#35 0x00007fc9241064b8 in KWayland::Server::Resource::Private::unbind (r=<optimized out>) at ./src/server/resource.cpp:68
#36 0x00007fc91b08bf82 in destroy_resource (element=element@entry=0x5638a2d2eb30, data=data@entry=0x0, flags=0) at ../src/wayland-server.c:688
#37 0x00007fc91b08bfde in wl_resource_destroy (resource=0x5638a2d2eb30) at ../src/wayland-server.c:705
#38 0x00007fc914415fce in ffi_call_unix64 () at ../src/x86/unix64.S:76
#39 0x00007fc91441593f in ffi_call (cif=cif@entry=0x7fff3fa8dbf0, fn=<optimized out>, rvalue=<optimized out>, rvalue@entry=0x0, avalue=avalue@entry=0x7fff3fa8dcc0) at ../src/x86/ffi64.c:525
#40 0x00007fc91b08fd04 in wl_closure_invoke (closure=closure@entry=0x5638a2fbad80, flags=flags@entry=2, target=<optimized out>, target@entry=0x5638a2d2eb30, opcode=opcode@entry=0, data=<optimized out>, data@entry=0x5638a29c64f0) at ../src/connection.c:996
#41 0x00007fc91b08c33f in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x5638a29c64f0) at ../src/wayland-server.c:420
#42 0x00007fc91b08dd72 in wl_event_loop_dispatch (loop=0x5638a267d560, timeout=timeout@entry=0) at ../src/event-loop.c:641
#43 0x00007fc9240eab7e in KWayland::Server::Display::Private::dispatch (this=<optimized out>) at ./src/server/display.cpp:141
#44 0x00007fc922cfb2af in QtPrivate::QSlotObjectBase::call (a=0x7fff3fa8e180, r=0x5638a267d4c0, this=0x5638a267d780) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:378
#45 QMetaObject::activate (sender=sender@entry=0x5638a267d760, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff3fa8e180) at kernel/qobject.cpp:3750
#46 0x00007fc922cfb867 in QMetaObject::activate (sender=sender@entry=0x5638a267d760, m=m@entry=0x7fc92312cd80 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff3fa8e180) at kernel/qobject.cpp:3629
#47 0x00007fc922d076f8 in QSocketNotifier::activated (this=this@entry=0x5638a267d760, _t1=<optimized out>, _t2=...) at .moc/moc_qsocketnotifier.cpp:136
#48 0x00007fc922d07ac2 in QSocketNotifier::event (this=0x5638a267d760, e=0x7fff3fa8e3f0) at kernel/qsocketnotifier.cpp:266
#49 0x00007fc92328e6cc in QApplicationPrivate::notify_helper (this=this@entry=0x5638a260ae80, receiver=receiver@entry=0x5638a267d760, e=e@entry=0x7fff3fa8e3f0) at kernel/qapplication.cpp:3732
#50 0x00007fc923295e84 in QApplication::notify (this=0x7fff3fa8e800, receiver=0x5638a267d760, e=0x7fff3fa8e3f0) at kernel/qapplication.cpp:3491
#51 0x00007fc922ccb938 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x5638a267d760, event=event@entry=0x7fff3fa8e3f0) at kernel/qcoreapplication.cpp:1050
#52 0x00007fc922d23268 in QCoreApplication::sendEvent (event=0x7fff3fa8e3f0, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#53 QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x5638a265de50) at kernel/qeventdispatcher_unix.cpp:304
#54 0x00007fc922d238e8 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:509
#55 0x00007fc90be70a9d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/KWinQpaPlugin.so
#56 0x00007fc922cc9b6a in QEventLoop::exec (this=this@entry=0x7fff3fa8e5a0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#57 0x00007fc922cd2ed4 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1338
#58 0x00005638a145dd5a in main (argc=<optimized out>, argv=<optimized out>) at ./main_wayland.cpp:830
Comment 1 David Edmundson 2018-07-02 15:06:26 UTC

*** This bug has been marked as a duplicate of bug 395732 ***
Comment 2 Bernhard Übelacker 2018-07-09 21:16:58 UTC
A small addition:
This bug seems more to be the duplicate of bug #395346, where a workaround
was implemented that led to another crash in bug #395732, where the
previous workaround got reverted.

The first bug mentions also [QTBUG-68997].

Therefore if I read the bugs correct there is no workaround anymore in place
and currently the only way to avoid this bug is to wait for Qt 5.12.
Does this qualify #395346 to get reopened?

[QTBUG-68997] https://bugreports.qt.io/browse/QTBUG-68997
Comment 3 Martin Flöser 2018-07-10 04:42:09 UTC
Yes, the solution is to wait for newer Qt. As a workaround use the breeze window decoration