https://bugs.kde.org/show_bug.cgi?id=479558
Bug ID: 479558 Summary: krfb-virtualmonitor causes kwin_wayland to crash Classification: Plasma Product: kwin Version: git master Platform: Compiled Sources OS: Linux Status: REPORTED Severity: crash Priority: NOR Component: wayland-generic Assignee: kwin-bugs-n...@kde.org Reporter: k...@hexchain.org Target Milestone: --- SUMMARY Launching krfb-virtualmonitor causes kwin_wayland to crash. This is similar to 475296 but the backtrace looks very different, hence opening another bug. STEPS TO REPRODUCE Launch krfb-virtualmonitor, e.g.: krfb-virtualmonitor --name test --scale 1 --port 9876 --password 12345678 --resolution 1920x1080 OBSERVED RESULT krfb-virtualmonitor crashes first and takes kwin_wayland along with it. Backtrace for KWin: #0 KWin::ClientConnection::client() const (this=0x563b91c21d00) at /home/hexchain/kde/src/kwin/src/wayland/clientconnection.cpp:119 #1 0x00007f96a8722087 in KWin::Display::getConnection(wl_client*)::$_0::operator()(KWin::ClientConnection*) const (c=0x563b91c21d00, this=<optimized out>) at /home/hexchain/kde/src/kwin/src/wayland/display.cpp:203 #2 __gnu_cxx::__ops::_Iter_pred<KWin::Display::getConnection(wl_client*)::$_0>::operator()<QList<KWin::ClientConnection*>::const_iterator>(QList<KWin::ClientConnection*>::const_iterator) (__it=..., this=<optimized out>) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/predefined_ops.h:318 #3 std::__find_if<QList<KWin::ClientConnection*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<KWin::Display::getConnection(wl_client*)::$_0> >(QList<KWin::ClientConnection*>::const_iterator, QList<KWin::ClientConnection*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<KWin::Display::getConnection(wl_client*)::$_0>, std::random_access_iterator_tag) (__first=..., __last=..., __pred=...) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algobase.h:2102 #4 std::__find_if<QList<KWin::ClientConnection*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<KWin::Display::getConnection(wl_client*)::$_0> >(QList<KWin::ClientConnection*>::const_iterator, QList<KWin::ClientConnection*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<KWin::Display::getConnection(wl_client*)::$_0>) (__first=..., __last=..., __pred=...) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algobase.h:2117 #5 std::find_if<QList<KWin::ClientConnection*>::const_iterator, KWin::Display::getConnection(wl_client*)::$_0>(QList<KWin::ClientConnection*>::const_iterator, QList<KWin::ClientConnection*>::const_iterator, KWin::Display::getConnection(wl_client*)::$_0) (__first=..., __last=..., __pred=...) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algo.h:3923 #6 KWin::Display::getConnection(wl_client*) (this=0x563b90632510, client=0x563b917ac260) at /home/hexchain/kde/src/kwin/src/wayland/display.cpp:202 #7 0x00007f96a872aafd in KWin::FilteredDisplayPrivate::globalFilterCallback(wl_client const*, wl_global const*, void*) (client=0x563b917ac260, global=0x563b9063d4d0, data=0x563b90632610) at /home/hexchain/kde/src/kwin/src/wayland/filtered_display.cpp:24 #8 0x00007f96a756486c in wl_global_is_visible (global=0x563b9063d4d0, client=0x563b917ac260) at ../../src/wayland/src/wayland-server.c:952 #9 display_get_registry (client=0x563b917ac260, resource=<optimized out>, id=<optimized out>) at ../../src/wayland/src/wayland-server.c:1046 #10 0x00007f96a3f534f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104 #11 0x00007f96a3f4ff5e in ffi_call_int (cif=cif@entry=0x7ffd40a7c860, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673 #12 0x00007f96a3f52b73 in ffi_call (cif=cif@entry=0x7ffd40a7c860, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffd40a7c930) at ../src/x86/ffi64.c:710 #13 0x00007f96a7568923 in wl_closure_invoke (closure=0x563b91d24dd0, flags=<optimized out>, target=<optimized out>, opcode=1, data=<optimized out>) at ../../src/wayland/src/connection.c:1031 #14 0x00007f96a75636bc in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x563b917ac260) at ../../src/wayland/src/wayland-server.c:438 #15 0x00007f96a7566732 in wl_event_loop_dispatch (loop=0x563b9066dda0, timeout=<optimized out>) at ../../src/wayland/src/event-loop.c:1104 #16 0x00007f96a8721b19 in KWin::Display::dispatchEvents() (this=<optimized out>) at /home/hexchain/kde/src/kwin/src/wayland/display.cpp:117 #17 0x00007f96a57beaa9 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd40a7cf00, r=0x563b90632510, this=0x563b90c85280, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobjectdefs_impl.h:469 #18 doActivate<false>(QObject*, int, void**) (sender=0x563b90ad18c0, signal_index=3, argv=0x7ffd40a7cf00) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobject.cpp:4044 #19 0x00007f96a57c7a2a in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (_t3=..., _t2=<optimized out>, _t1=..., this=0x563b90ad18c0) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:193 #20 QSocketNotifier::event(QEvent*) (this=0x563b90ad18c0, e=0x7ffd40a7d010) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qsocketnotifier.cpp:327 #21 0x00007f96a697bf4b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x563b90ad18c0, e=0x7ffd40a7d010) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/widgets/kernel/qapplication.cpp:3290 #22 0x00007f96a5765488 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x563b90ad18c0, event=0x7ffd40a7d010) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qcoreapplication.cpp:1134 #23 0x00007f96a58d3439 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7ffd40a7d010, receiver=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qcoreapplication.cpp:1575 #24 QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x563b90583050) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qeventdispatcher_unix.cpp:251 #25 0x00007f96a58d938b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qeventdispatcher_unix.cpp:467 #26 0x00007f96a63f2ce2 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/gui/platform/unix/qunixeventdispatcher.cpp:27 #27 0x00007f96a576d67e in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=..., this=0x7ffd40a7d1e0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qeventloop.cpp:100 #28 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffd40a7d1e0, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qeventloop.cpp:182 #29 0x00007f96a57690b8 in QCoreApplication::exec() () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/global/qflags.h:74 #30 0x0000563b8f9016e5 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/hexchain/kde/src/kwin/src/main_wayland.cpp:609 EXPECTED RESULT kwin_wayland should not crash (IMHO even when the client is misbehaving). SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.91.90 KDE Frameworks Version: 5.248.0 Qt Version: 6.7.0 KWin e2878e912affcc8f36b07f113e015ae6e3cd942c PipeWire 1.0.0 -- You are receiving this mail because: You are watching all bug changes.