Bug 495250 - Screencast manager crashes when looking for a desktopFileName
Summary: Screencast manager crashes when looking for a desktopFileName
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: screencasting (other bugs)
Version First Reported In: git master
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 495317 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-10-23 17:15 UTC by Akseli Lahtinen
Modified: 2024-10-25 17:21 UTC (History)
3 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Akseli Lahtinen 2024-10-23 17:15:59 UTC
SUMMARY

Every time I hover my mouse over an entry in icons only task manager, kwin crashes when looking for
 desktopFileName in #
12 KWin::Window::desktopFileName (this=0xbc5ff90) at /home/akseli/Repositories/kde/src/kwin/src/window.h:1241

STEPS TO REPRODUCE
1. Hover mouse over open window in icons only task manager 

OBSERVED RESULT
Immediate crash

EXPECTED RESULT
No crash

SOFTWARE/OS VERSIONS
Operating System: Fedora Linux 40
KDE Plasma Version: 6.2.80
KDE Frameworks Version: 6.8.0
Qt Version: 6.7.2
Kernel Version: 6.11.4-201.fc40.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 15,5 GiB of RAM
Graphics Processor: AMD Radeon RX 6600

ADDITIONAL INFORMATION

Overview works ok.

Backtrace:

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0)
at pthread_kill.c:44
#1  0x00007faaa14a86d3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:78
#2  0x00007faaa144fc4e in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007faaa56945ab in KCrash::defaultCrashHandler (sig=11)
at /home/akseli/Repositories/kde/src/kcrash/src/kcrash.cpp:596
#4  0x00007faaa144fd00 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=0x7fff7bf9c6a0) at /usr/include/qt6/QtCore/qarraydatapointer.h:438
#10 QArrayDataPointer<char16_t>::QArrayDataPointer (this=0x7fff7bf9c6a0, other=...)
at /usr/include/qt6/QtCore/qarraydatapointer.h:40
#11 QString::QString (this=0x7fff7bf9c6a0, other=...) at /usr/include/qt6/QtCore/qstring.h:1186
#12 KWin::Window::desktopFileName (this=0xbc5ff90) at /home/akseli/Repositories/kde/src/kwin/src/window.h:1241
#13 KWin::ScreencastManager::streamWindow
(this=0xad34680, waylandStream=0xbd5c010, winid=<optimized out>, mode=KWin::ScreencastV1Interface::Hidden)
at /home/akseli/Repositories/kde/src/kwin/src/plugins/screencast/screencastmanager.cpp:50
#14 0x00007faaa1bfc8f2 in QtPrivate::QSlotObjectBase::call (this=0xaee8690, r=<optimized out>, a=0x7fff7bf9c7f0)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobjectdefs_impl.h:469
#15 doActivate<false> (sender=0xad6f700, signal_index=5, argv=0x7fff7bf9c7f0)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4086
#16 0x00007faaa1bf2bc7 in QMetaObject::activate
(sender=<optimized out>, m=m@entry=0x7faaa5294340 <KWin::ScreencastV1Interface::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fff7bf9c7f0)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4146
#17 0x00007faaa504f645 in KWin::ScreencastV1Interface::windowScreencastRequested
(this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>)
at /home/akseli/Repositories/kde/build/kwin/src/kwin_autogen/include/moc_screencast_v1.cpp:371
#18 0x00007faaa4c6f2a1 in QtWaylandServer::zkde_screencast_unstable_v1::handle_stream_window
(client=<optimized out>, resource=<optimized out>, stream=187, window_uuid=0xbdbfcf0 "{36d790b1-9fb1-417e-b96c-7761dd9319--Type <RET> for more, q to quit, c to continue without paging--c
11}", pointer=1) at /home/akseli/Repositories/kde/build/kwin/src/wayland/qwayland-server-zkde-screencast-unstable-v1.cpp:262
#19 0x00007faaa0b9b056 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#20 0x00007faaa0b976a0 in ffi_call_int
(cif=cif@entry=0x7fff7bf9ca60, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#21 0x00007faaa0b9a4ee in ffi_call
(cif=cif@entry=0x7fff7bf9ca60, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fff7bf9cb30)
at ../src/x86/ffi64.c:710
#22 0x00007faaa53f6b21 in wl_closure_invoke
(closure=0xbdbfc10, flags=<optimized out>, target=<optimized out>, opcode=1, data=<optimized out>)
at ../../src/wayland/src/connection.c:1236
#23 0x00007faaa53f1aa2 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0xba9b370)
at ../../src/wayland/src/wayland-server.c:460
#24 0x00007faaa53f46d2 in wl_event_loop_dispatch (loop=0xa653a80, timeout=<optimized out>)
at ../../src/wayland/src/event-loop.c:1106
#25 0x00007faaa50080f4 in KWin::Display::dispatchEvents (this=<optimized out>)
at /home/akseli/Repositories/kde/src/kwin/src/wayland/display.cpp:121
#26 0x00007faaa1bfc8f2 in QtPrivate::QSlotObjectBase::call (this=0xae8b030, r=<optimized out>, a=0x7fff7bf9cfd0)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobjectdefs_impl.h:469
#27 doActivate<false> (sender=0xb693740, signal_index=3, argv=0x7fff7bf9cfd0)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4086
#28 0x00007faaa1bf2bc7 in QMetaObject::activate
(sender=sender@entry=0xb693740, m=m@entry=0x7faaa208afa0, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff7bf9cfd0) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qobject.cpp:4146
#29 0x00007faaa1c0a54d in QSocketNotifier::activated (this=this@entry=0xb693740, _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 0x00007faaa1c0ad5b in QSocketNotifier::event (this=0xb693740, e=<optimized out>)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qsocketnotifier.cpp:327
#31 0x00007faaa2d8b218 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0xb693740, e=0x7fff7bf9d120)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3287
#32 0x00007faaa1b96e88 in QCoreApplication::notifyInternal2 (receiver=0xb693740, event=0x7fff7bf9d120)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1142
#33 0x00007faaa1b970ed 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 0x00007faaa1d569c6 in QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0xa58a8a0)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:251
#35 0x00007faaa1d572d4 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 0x00007faaa2963492 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 0x00007faaa1ba3bc3 in QEventLoop::exec (this=this@entry=0x7fff7bf9d2e0, flags=..., flags@entry=...)
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/global/qflags.h:34
#38 0x00007faaa1b9fa7c in QCoreApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/corelib/global/qflags.h:74
#39 0x00007faaa23d66ed in QGuiApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1926
#40 0x00007faaa2d8b189 in QApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.7.2-6.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2555
#41 0x000000000043670c in main (argc=<optimized out>, argv=<optimized out>)
at /home/akseli/Repositories/kde/src/kwin/src/main_wayland.cpp:626
Comment 1 Zamundaaa 2024-10-24 14:34:18 UTC
I've had this happen twice now too
Comment 2 Nate Graham 2024-10-24 22:15:36 UTC
 `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 3 Nate Graham 2024-10-24 22:15:45 UTC
*** Bug 495317 has been marked as a duplicate of this bug. ***
Comment 4 David Edmundson 2024-10-25 08:11:11 UTC
Please confirm if this persists after a clean rebuild
Comment 5 Nate Graham 2024-10-25 17:21:16 UTC
As discussed in chat, a full clean rebuild of everything has fixed this for me just like it did for Akseli.

Task Manager thumbnails are missing now, but that's probably something else.