Bug 469707 - KDiff3 bugs trigger kwin crash in updateClientArea()
Summary: KDiff3 bugs trigger kwin crash in updateClientArea()
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (other bugs)
Version First Reported In: 5.27.5
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 469745 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-05-13 16:42 UTC by Matthew Trescott
Modified: 2024-06-28 03:48 UTC (History)
2 users (show)

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


Attachments
Backtrace via coredumpctl (5.84 KB, text/plain)
2023-05-13 16:42 UTC, Matthew Trescott
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Matthew Trescott 2023-05-13 16:42:38 UTC
Created attachment 158912 [details]
Backtrace via coredumpctl

SUMMARY
Some bugs in KDiff3 are able to crash KWin when attempting to close a KDiff3 dialog that is not showing up properly.

STEPS TO REPRODUCE
1. Open KDiff3
2. Start a directory comparison.
3. Pop the "Directory merge" panel out into a separate window (<> icon in upper right corner)
4. Close KDiff3
5. Open KDiff3
6. Start a directory merge
7. The directory merge dialog appears in the Plasma taskbar/task-manager.
8. Hover the cursor over the taskbar entry for the directory merge. Observe that no preview appears.
9. Click the X button in the taskbar tooltip to close the (invisible) directory merge window.
10. Re-focus KDiff3 by clicking on its taskbar entry.
11. The taskbar entry for the directory merge reappears
12. Click the X button in the taskbar tooltip again.
13. If the taskbar entry for the directory merge did not reappear, click the X button in the taskbar tooltip for the merge info dialog.


OBSERVED RESULT
KWin crashes

EXPECTED RESULT
KWin does not crash

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: openSUSE Tumbleweed
(available in About System)
KDE Plasma Version: 5.27.5
KDE Frameworks Version: 5.105.0
Qt Version: 5.15.9

ADDITIONAL INFORMATION
KDiff3 version: 1.10.2
Comment 1 Zamundaaa 2023-05-14 17:15:22 UTC
*** Bug 469745 has been marked as a duplicate of this bug. ***
Comment 2 Nate Graham 2023-05-15 18:01:28 UTC
Pasting backtrace inline for searchability:

#0  0x0000000000000000 in  ()
#1  0x00007f1dbff1ce5d in KWin::Workspace::updateClientArea() (this=<optimized out>) at /usr/src/debug/kwin-5.27.5/src/workspace.cpp:2368
#2  0x00007f1dbff08af4 in KWin::Workspace::removeWindow(KWin::Window*) (this=0x558c78e1f590, window=<optimized out>) at /usr/src/debug/kwin-5.27.5/src/workspace.cpp:893
#3  0x00007f1dbe525232 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff4f784320, r=0x558c78e1f590, this=0x558c790a8ca0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#4  doActivate<false>(QObject*, int, void**) (sender=0x558c78b252f0, signal_index=4, argv=0x7fff4f784320) at kernel/qobject.cpp:3923
#5  0x00007f1dbe51de2f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=<optimized out>, m=m@entry=0x7f1dc01caf00 <KWin::WaylandServer::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff4f784320) at kernel/qobject.cpp:3983
#6  0x00007f1dbfda5442 in KWin::WaylandServer::windowRemoved(KWin::Window*) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin-5.27.5/build/src/kwin_autogen/EWIEGA46WW/moc_wayland_server.cpp:189
#7  0x00007f1dbfee25e0 in KWin::WaylandServer::removeWindow(KWin::Window*) (this=0x558c78b252f0, c=<optimized out>) at /usr/src/debug/kwin-5.27.5/src/wayland_server.cpp:729
#8  0x00007f1dbff410ad in KWin::XdgSurfaceWindow::destroyWindow() (this=0x558c7a18f870) at /usr/src/debug/kwin-5.27.5/src/xdgshellwindow.cpp:309
#9  0x00007f1dbe525232 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff4f784440, r=0x558c7a18f870, this=0x558c7a1193a0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#10 doActivate<false>(QObject*, int, void**) (sender=0x558c7a1fa080, signal_index=3, argv=0x7fff4f784440) at kernel/qobject.cpp:3923
#11 0x00007f1dc000e297 in KWaylandServer::XdgPopupInterface::~XdgPopupInterface() (this=0x558c7a1fa080, this=<optimized out>) at /usr/src/debug/kwin-5.27.5/src/wayland/xdgshell_interface.cpp:687
#12 0x00007f1dc000e775 in non-virtual thunk to KWaylandServer::XdgPopupInterfacePrivate::xdg_popup_destroy_resource(QtWaylandServer::xdg_popup::Resource*) () at /usr/src/debug/kwin-5.27.5/src/wayland/xdgshell_interface_p.h:187
#13 0x00007f1dc00536a4 in QtWaylandServer::xdg_popup::destroy_func(wl_resource*) (client_resource=<optimized out>) at /usr/src/debug/kwin-5.27.5/build/src/wayland/qwayland-server-xdg-shell.cpp:1754
#14 0x00007f1dbcdaad27 in destroy_resource (element=0x558c7a433680, data=data@entry=0x0, flags=0) at ../src/wayland-server.c:732
#15 0x00007f1dbcdaca31 in wl_resource_destroy (resource=<optimized out>) at ../src/wayland-server.c:749
#16 0x00007f1dbb7048d2 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#17 0x00007f1dbb70124f in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:673
#18 0x00007f1dbb703e96 in ffi_call (cif=cif@entry=0x7fff4f784720, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fff4f7847f0) at ../src/x86/ffi64.c:710
#19 0x00007f1dbcda80a8 in wl_closure_invoke (closure=closure@entry=0x558c7a52eea0, target=<optimized out>, target@entry=0x558c7a433680, opcode=opcode@entry=0, data=<optimized out>, data@entry=0x558c79ecb140, flags=2) at ../src/connection.c:1025
#20 0x00007f1dbcdac408 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at ../src/wayland-server.c:438
#21 0x00007f1dbcdaae62 in wl_event_loop_dispatch (loop=0x558c78b7adc0, timeout=<optimized out>) at ../src/event-loop.c:1027
#22 0x00007f1dbffbcac5 in KWaylandServer::Display::dispatchEvents() (this=<optimized out>) at /usr/src/debug/kwin-5.27.5/src/wayland/display.cpp:114
#23 0x00007f1dbe525232 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff4f784e00, r=0x558c78b7aa80, this=0x558c790fef70) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#24 doActivate<false>(QObject*, int, void**) (sender=0x558c7923b440, signal_index=3, argv=0x7fff4f784e00) at kernel/qobject.cpp:3923
#25 0x00007f1dbe51de2f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x558c7923b440, m=m@entry=0x7f1dbe7c6860, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff4f784e00)
    at kernel/qobject.cpp:3983
#26 0x00007f1dbe52852f in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x558c7923b440, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178
#27 0x00007f1dbe528d35 in QSocketNotifier::event(QEvent*) (this=0x558c7923b440, e=<optimized out>) at kernel/qsocketnotifier.cpp:302
#28 0x00007f1dbd9a51ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#29 0x00007f1dbe4ec978 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x558c7923b440, event=0x7fff4f784f00) at kernel/qcoreapplication.cpp:1064
#30 0x00007f1dbe5432c3 in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x558c78b18200) at kernel/qeventdispatcher_unix.cpp:304
#31 0x00007f1dbe543787 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511
#32 0x0000558c788430dd in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:63
#33 0x00007f1dbe4eb40b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff4f785090, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#34 0x00007f1dbe4f38a0 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#35 0x0000558c78766f6a in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin-5.27.5/src/main_wayland.cpp:628
Comment 3 David Edmundson 2024-05-29 10:32:27 UTC
This bug is a crash report that is over a year old without any activity, as our software is always changing, the information in this ticket is unlikely to still be useful.

If this issue is still reproducible in a newer version of kwin (5.27.5 or 6.0) please reopen this ticket with a bumped version number or it will be closed in 30 days.
Comment 4 Bug Janitor Service 2024-06-13 03:47:08 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 5 Bug Janitor Service 2024-06-28 03:48:02 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!