Bug 495317 - 0d7bca07b920319a18007aa6a599f664236b3cc6 makes kwin_wayland crash when hovering over Task Manager tasks
Summary: 0d7bca07b920319a18007aa6a599f664236b3cc6 makes kwin_wayland crash when hoveri...
Status: RESOLVED DUPLICATE of bug 495250
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: master
Platform: Other Linux
: VHI crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2024-10-24 21:51 UTC by Nate Graham
Modified: 2024-10-24 22:15 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nate Graham 2024-10-24 21:51:52 UTC
100% reproducible for me; just hover over a Task Manager task:

#11 QString::QString (this=0x7ffc13c4d9c0, other=...) at /usr/include/qt6/QtCore/qstring.h:1186
#12 KWin::Window::desktopFileName (this=0x31a257e0) at /home/nate/kde/src/kwin/src/window.h:1241
#13 KWin::ScreencastManager::streamWindow
    (this=0x3070f150, waylandStream=0x31253aa0, winid=<optimized out>, mode=KWin::ScreencastV1Interface::Hidden) at /home/nate/kde/src/kwin/src/plugins/screencast/screencastmanager.cpp:50


 `git bisect` says it was this commit:

0d7bca07b920319a18007aa6a599f664236b3cc6 is the first bad commit
commit 0d7bca07b920319a18007aa6a599f664236b3cc6
Author: Marco Martin <notmart@gmail.com>
Date:   Mon Oct 21 17:13:03 2024 +0200

    Double buffer m_tile
    
    Add a new m_requestedTile member that gets set immediately
    with either requestTile() or setQuickTileMode(), at
    XdgToplevelWindow::handleStatesAcknowledged()
    Window::commitTile() will be called and m_tile will be actually
    set only on that step


Going back to 649b3df296cbcae2dce21fbb555ee3796e4e543e (the immediately preceding commit) makes the crash go away.
Comment 1 Nate Graham 2024-10-24 21:52:12 UTC
Full backtrace: 

#0  __pthread_kill_implementation
    (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007fedea0a86d3 in __pthread_kill_internal (threadid=<optimized out>, signo=11)
    at pthread_kill.c:78
#2  0x00007fedea04fc4e in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007fedee4c55ab in KCrash::defaultCrashHandler (sig=11)
    at /home/nate/kde/src/kcrash/src/kcrash.cpp:596
#4  0x00007fedea04fd00 in <signal handler called> () at /lib64/libc.so.6
#5  std::__atomic_base<int>::fetch_add
    (this=0x8000000000000000, __i=1, __m=std::memory_order::acq_rel)
    at /usr/include/c++/14/bits/atomic_base.h:629
#6  QAtomicOps<int>::ref<int>
    (_q_value=<error reading variable: Cannot access memory at address 0x8000000000000000>)
    at /usr/include/qt6/QtCore/qatomic_cxx11.h:259
#7  QBasicAtomicInteger<int>::ref (this=0x8000000000000000)
    at /usr/include/qt6/QtCore/qbasicatomic.h:47
#8  QArrayData::ref (this=0x8000000000000000) at /usr/include/qt6/QtCore/qarraydata.h:58
#9  QArrayDataPointer<char16_t>::ref (this=0x7ffc13c4d9c0)
    at /usr/include/qt6/QtCore/qarraydatapointer.h:438
#10 QArrayDataPointer<char16_t>::QArrayDataPointer (this=0x7ffc13c4d9c0, other=...)
    at /usr/include/qt6/QtCore/qarraydatapointer.h:40
#11 QString::QString (this=0x7ffc13c4d9c0, other=...) at /usr/include/qt6/QtCore/qstring.h:1186
#12 KWin::Window::desktopFileName (this=0x31a257e0) at /home/nate/kde/src/kwin/src/window.h:1241
#13 KWin::ScreencastManager::streamWindow
    (this=0x3070f150, waylandStream=0x31253aa0, winid=<optimized out>, mode=KWin::ScreencastV1Interface::Hidden) at /home/nate/kde/src/kwin/src/plugins/screencast/screencastmanager.cpp:50
#14 0x00007fedea7fc8f2 in QtPrivate::QSlotObjectBase::call
    (this=0x3075aad0, r=<optimized out>, a=0x7ffc13c4db10)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobjectdefs_impl.h:469
#15 doActivate<false> (sender=0x30706830, signal_index=5, argv=0x7ffc13c4db10)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4086
#16 0x00007fedea7f2bc7 in QMetaObject::activate
    (sender=<optimized out>, m=m@entry=0x7fedee093ee0 <KWin::ScreencastV1Interface::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffc13c4db10)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4146
#17 0x00007fededd99f85 in KWin::ScreencastV1Interface::windowScreencastRequested
    (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>)
    at /home/nate/kde/build/kwin/src/kwin_autogen/include/moc_screencast_v1.cpp:371
#18 0x00007fedede89d01 in QtWaylandServer::zkde_screencast_unstable_v1::handle_stream_window
    (client=<optimized out>, resource=<optimized out>, stream=107, window_uuid=0x31665a20 "{47e65496-0bde-43b5-ae21-e2919ba39fc1}", pointer=1)
    at /home/nate/kde/build/kwin/src/wayland/qwayland-server-zkde-screencast-unstable-v1.cpp:262
#19 0x00007fede9901056 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#20 0x00007fede98fd6a0 in ffi_call_int
    (cif=cif@entry=0x7ffc13c4dd80, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
--Type <RET> for more, q to quit, c to continue without paging--c
#21 0x00007fede99004ee in ffi_call
    (cif=cif@entry=0x7ffc13c4dd80, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffc13c4de50) at ../src/x86/ffi64.c:710
#22 0x00007fedee4b6b21 in wl_closure_invoke
    (closure=0x31665940, flags=<optimized out>, target=<optimized out>, opcode=1, data=<optimized out>) at ../../src/wayland/src/connection.c:1236
#23 0x00007fedee4b1aa2 in wl_client_connection_data
    (fd=<optimized out>, mask=<optimized out>, data=0x3132f2f0)
    at ../../src/wayland/src/wayland-server.c:460
#24 0x00007fedee4b46d2 in wl_event_loop_dispatch (loop=0x301e8210, timeout=<optimized out>)
    at ../../src/wayland/src/event-loop.c:1106
#25 0x00007fededd52574 in KWin::Display::dispatchEvents (this=<optimized out>)
    at /home/nate/kde/src/kwin/src/wayland/display.cpp:121
#26 0x00007fedea7fc8f2 in QtPrivate::QSlotObjectBase::call
    (this=0x306d3ce0, r=<optimized out>, a=0x7ffc13c4e2f0)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobjectdefs_impl.h:469
#27 doActivate<false> (sender=0x304ce530, signal_index=3, argv=0x7ffc13c4e2f0)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4086
#28 0x00007fedea7f2bc7 in QMetaObject::activate
    (sender=sender@entry=0x304ce530, m=m@entry=0x7fedeac8afa0, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc13c4e2f0)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4146
#29 0x00007fedea80a54d in QSocketNotifier::activated
    (this=this@entry=0x304ce530, _t1=..., _t2=<optimized out>, _t3=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:195
#30 0x00007fedea80ad5b in QSocketNotifier::event (this=0x304ce530, e=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qsocketnotifier.cpp:327
#31 0x00007fedebb8b218 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x304ce530, e=0x7ffc13c4e440)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3287
#32 0x00007fedea796e88 in QCoreApplication::notifyInternal2
    (receiver=0x304ce530, event=0x7ffc13c4e440)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1142
#33 0x00007fedea7970ed in QCoreApplication::sendEvent
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1583
#34 0x00007fedea9569c6 in QEventDispatcherUNIXPrivate::activateSocketNotifiers
    (this=this@entry=0x3015a6d0)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:251
#35 0x00007fedea9572d4 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:467
#36 0x00007fedeb563492 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#37 0x00007fedea7a3bc3 in QEventLoop::exec (this=this@entry=0x7ffc13c4e600, flags=...,
    flags@entry=...) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/global/qflags.h:34
#38 0x00007fedea79fa7c in QCoreApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/global/qflags.h:74
#39 0x00007fedeafd66ed in QGuiApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1926
#40 0x00007fedebb8b189 in QApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2555
#41 0x000000000043665c in main (argc=<optimized out>, argv=<optimized out>)
    at /home/nate/kde/src/kwin/src/main_wayland.cpp:626
Comment 2 Nate Graham 2024-10-24 22:15:45 UTC
*** This bug has been marked as a duplicate of bug 495250 ***