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

            Bug ID: 436367
           Summary: kwin_wayland crashes occasionally when enabling
                    monitor
           Product: kwin
           Version: 5.21.4
          Platform: openSUSE RPMs
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: wayland-generic
          Assignee: kwin-bugs-n...@kde.org
          Reporter: alo...@gmx-topmail.de
  Target Milestone: ---

SUMMARY

I was running a Wayland session with an external monitor connected and the
laptop lid closed, so the external monitor was the only output. When I opened
the lid, kwin_wayland aborted.

STEPS TO REPRODUCE
1. Connect external screen
2. Close lid
3. Open lid

OBSERVED RESULT

kwin_wayland aborts and crashes.

EXPECTED RESULT

kwin_wayland continues running.


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 5.21.4
KDE Frameworks Version: 5.81.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION

I got the same crash in a slightly different situation as well [1]. There, the
laptop monitor was black when I opened the lid, and the crash happened when I
tried to enable the internal monitor from system settings.

Backtrace:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x00007f1cac700914 in __GI_abort () at abort.c:100
#2  0x00007f1cac700749 in __assert_fail_base
    (fmt=0x7f1ca5ee5554 "%s%s%s:%u: %s%sZusicherung »%s« nicht erfüllt.\n%n",
assertion=0x7f1cacc65750 "0 && \"Couldn't find current GLX or EGL
context.\\n\"", file=0x7f1cacc65829 "../src/dispatch_common.c", line=858,
function=<optimized out>) at assert.c:92
#3  0x00007f1cac70f9b6 in __GI___assert_fail
    (assertion=assertion@entry=0x7f1cacc65750 "0 && \"Couldn't find current GLX
or EGL context.\\n\"", file=file@entry=0x7f1cacc65829
"../src/dispatch_common.c", line=line@entry=858,
function=function@entry=0x7f1cacc65c80 <__PRETTY_FUNCTION__.0.lto_priv.0>
"epoxy_get_proc_address") at assert.c:101
#4  0x00007f1cacc41df7 in epoxy_get_proc_address
    (name=0x7f1cacc4c139 <entrypoint_strings.lto_priv+9849> "glDeleteProgram")
at ../src/dispatch_common.c:858
#5  0x00007f1cacbf105a in epoxy_glDeleteProgram_resolver () at
src/gl_generated_dispatch.c:81668
#6  epoxy_glDeleteProgram_global_rewrite_ptr (program=30) at
src/gl_generated_dispatch.c:49458
#7  0x00007f1ca4bcba40 in
QScopedPointerDeleter<KWin::GLShader>::cleanup(KWin::GLShader*)
(pointer=0x564d95405b40)
    at /usr/include/qt5/QtCore/qscopedpointer.h:52
#8  QScopedPointerDeleter<KWin::GLShader>::cleanup(KWin::GLShader*)
(pointer=0x564d95405b40)
    at /usr/include/qt5/QtCore/qscopedpointer.h:52
#9  QScopedPointer<KWin::GLShader, QScopedPointerDeleter<KWin::GLShader>
>::~QScopedPointer()
    (this=0x564d953d0838, this=<optimized out>) at
/usr/include/qt5/QtCore/qscopedpointer.h:107
#10 KWin::LanczosFilter::~LanczosFilter() (this=0x564d953d0810, this=<optimized
out>)
    at
/usr/src/debug/kwin5-5.21.4-1.2.x86_64/plugins/scenes/opengl/lanczosfilter.cpp:47
#11 0x00007f1ca4bd6cd0 in KWin::LanczosFilter::~LanczosFilter()
(this=0x564d953d0810, this=<optimized out>)
    at
/usr/src/debug/kwin5-5.21.4-1.2.x86_64/plugins/scenes/opengl/lanczosfilter.cpp:47
#12 operator() (__closure=0x564d951c8ee0)
    at
/usr/src/debug/kwin5-5.21.4-1.2.x86_64/plugins/scenes/opengl/scene_opengl.cpp:1042
#13 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void,
KWin::SceneOpenGL2::performPaintWindow(KWin::EffectWindowImpl*, int, const
QRegion&, KWin::WindowPaintData&)::<lambda()> >::call (arg=<optimized out>,
f=...)
    at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146
#14
QtPrivate::Functor<KWin::SceneOpenGL2::performPaintWindow(KWin::EffectWindowImpl*,
int, const QRegion&, KWin::WindowPaintData&)::<lambda()>,
0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...)
    at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256
#15
QtPrivate::QFunctorSlotObject<KWin::SceneOpenGL2::performPaintWindow(KWin::EffectWindowImpl*,
int, const QRegion&, KWin::WindowPaintData&)::<lambda()>, 0, QtPrivate::List<>,
void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
(which=<optimized out>, this_=0x564d951c8ed0, r=<optimized out>, a=<optimized
out>, ret=<optimized out>)
    at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443
#16 0x00007f1cae1e2c17 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7ffca5e27b50, r=0x564d9432c0a0, this=0x564d951c8ed0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#17 doActivate<false>(QObject*, int, void**) (sender=0x564d93d79c10,
signal_index=4, argv=0x7ffca5e27b50)
    at kernel/qobject.cpp:3886
#18 0x00007f1cae1e2c17 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7ffca5e27c30, r=0x564d93d79c10, this=0x564d93d67840)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#19 doActivate<false>(QObject*, int, void**) (sender=0x564d93c57360,
signal_index=3, argv=0x7ffca5e27c30, 
    argv@entry=0x0) at kernel/qobject.cpp:3886
#20 0x00007f1cae1dbf60 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=sender@entry=0x564d93c57360, m=m@entry=0x7f1cadebe100,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at
kernel/qobject.cpp:3946
#21 0x00007f1cadc67a30 in KWin::Platform::screensQueried()
(this=this@entry=0x564d93c57360)
    at
/usr/src/debug/kwin5-5.21.4-1.2.x86_64/build/kwin_autogen/EWIEGA46WW/moc_platform.cpp:359
#22 0x00007f1ca6752242 in KWin::DrmBackend::enableOutput(KWin::DrmOutput*,
bool)
    (this=0x564d93c57360, output=<optimized out>, enable=<optimized out>)
    at
/usr/src/debug/kwin5-5.21.4-1.2.x86_64/plugins/platforms/drm/drm_backend.cpp:521
#23 0x00007f1ca676176c in KWin::DrmOutput::atomicEnable() (this=<optimized
out>)
    at
/usr/src/debug/kwin5-5.21.4-1.2.x86_64/plugins/platforms/drm/drm_output.cpp:488
#24 0x00007f1cadd22980 in
KWin::Platform::requestOutputsChange(KWaylandServer::OutputConfigurationInterface*)
    (this=0x564d93c57360, config=0x564d95b74d90) at
/usr/src/debug/kwin5-5.21.4-1.2.x86_64/platform.cpp:135
#25 0x00007f1cae1e2c17 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7ffca5e27e90, r=0x564d93c225d0, this=0x564d93c541d0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#26 doActivate<false>(QObject*, int, void**) (sender=0x564d93c540e0,
signal_index=4, argv=argv@entry=0x7ffca5e27e90)
    at kernel/qobject.cpp:3886
#27 0x00007f1cae1dbf60 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=<optimized out>, m=m@entry=0x7f1cace503c0
<KWaylandServer::OutputManagementInterface::staticMetaObject>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffca5e27e90)
at kernel/qobject.cpp:3946
#28 0x00007f1cacd63e7f in
KWaylandServer::OutputManagementInterface::configurationChangeRequested(KWaylandServer::OutputConfigurationInterface*)
(this=<optimized out>, _t1=<optimized out>)
    at
/usr/src/debug/kwayland-server-5.21.4-1.2.x86_64/build/src/server/KWaylandServer_autogen/EWIEGA46WW/moc_outputmanagement_interface.cpp:136
#29 0x00007f1ca98e242d in ffi_call_unix64 () at ../src/x86/unix64.S:106
#30 0x00007f1ca98de4f9 in ffi_call_int
    (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>,
avalue=<optimized out>, closure=<optimized out>)
    at ../src/x86/ffi64.c:669
#31 0x00007f1caa3db005 in wl_closure_invoke
(closure=closure@entry=0x564d9648ec10, target=<optimized out>, 
    target@entry=0x564d954ed3a0, opcode=opcode@entry=5, data=<optimized out>, 
    data@entry=0x564d94ac23d0, flags=<optimized out>) at src/connection.c:1018
#32 0x00007f1caa3deedc in wl_client_connection_data (fd=<optimized out>,
mask=<optimized out>, data=<optimized out>)
    at src/wayland-server.c:432
#33 0x00007f1caa3ddad2 in wl_event_loop_dispatch (loop=0x564d93c46000,
timeout=timeout@entry=0)
    at src/event-loop.c:1027
#34 0x00007f1cacd78866 in KWaylandServer::Display::dispatchEvents()
(this=<optimized out>)
    at
/usr/src/debug/kwayland-server-5.21.4-1.2.x86_64/src/server/display.cpp:107
#35 0x00007f1cae1e2c17 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7ffca5e286e0, r=0x564d93c50430, this=0x564d9488efc0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#36 doActivate<false>(QObject*, int, void**) (sender=0x564d9499b730,
signal_index=3, argv=argv@entry=0x7ffca5e286e0)
    at kernel/qobject.cpp:3886
#37 0x00007f1cae1dbf60 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=sender@entry=0x564d9499b730, m=m@entry=0x7f1cae491a60,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffca5e286e0)
at kernel/qobject.cpp:3946
#38 0x00007f1cae1e60bf in QSocketNotifier::activated(QSocketDescriptor,
QSocketNotifier::Type, QSocketNotifier::QPrivateSignal)
(this=this@entry=0x564d9499b730, _t1=..., _t2=<optimized out>, _t3=...) at
.moc/moc_qsocketnotifier.cpp:178
#39 0x00007f1cae1e68bb in QSocketNotifier::event(QEvent*) (this=0x564d9499b730,
e=0x7ffca5e287f0)
    at kernel/qsocketnotifier.cpp:302
#40 0x00007f1cad1b3aff in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=<optimized out>, receiver=0x564d9499b730, e=0x7ffca5e287f0) at
kernel/qapplication.cpp:3632
#41 0x00007f1cae1ac13a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    (receiver=0x564d9499b730, event=0x7ffca5e287f0) at
kernel/qcoreapplication.cpp:1063
#42 0x00007f1cae20109b in
QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x564d93c00e40)
    at kernel/qeventdispatcher_unix.cpp:304
#43 0x00007f1cae2014f3 in
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511
#44 0x0000564d92461c1d in
QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:63
#45 0x00007f1cae1aab7b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=this@entry=0x7ffca5e28980, flags=..., flags@entry=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#46 0x00007f1cae1b2db0 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#47 0x00007f1cae60da9c in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1867
#48 0x00007f1cad1b3a75 in QApplication::exec() () at
kernel/qapplication.cpp:2824
#49 0x0000564d9240552c in main(int, char**) (argc=<optimized out>,
argv=0x7ffca5e28bc0)
    at /usr/src/debug/kwin5-5.21.4-1.2.x86_64/main_wayland.cpp:788

[1] https://bugs.kde.org/show_bug.cgi?id=435941#c1

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

Reply via email to