Bug 465077

Summary: QtWidgets-based apps crash in QXcbBackingStoreImage::flushPixmap when connecting/disconnecting external screen
Product: [I don't know] kde Reporter: Gábor Katona <katonag>
Component: generalAssignee: Unassigned bugs mailing-list <unassigned-bugs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: katonag, krusader-bugs-null, nate, nicolas.fella, o.malek.cz
Priority: NOR Keywords: drkonqi
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
URL: https://bugreports.qt.io/browse/QTBUG-109226
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Gábor Katona 2023-01-31 09:43:02 UTC
Application: krusader (2.8.0 "A New Day")

Qt Version: 5.15.8
Frameworks Version: 5.102.0
Operating System: Linux 6.1.8-1-default x86_64
Windowing System: X11
Distribution: "openSUSE Tumbleweed"
DrKonqi: 5.26.90 [KCrashBackend]

-- Information about the crash:
When I connect or disconnect an external screen via a USB-C hub to my laptop put to sleep and wake it up, Krusader crashes. The crash happens in about 70-80% of connection changes. As I remember it also happened when the laptop was not sleeping.

The crash can be reproduced every time.

-- Backtrace:
Application: Krusader (krusader), signal: Segmentation fault

[KCrash Handler]
#4  0x00007ff6d6b7aa0d in __memmove_evex_unaligned_erms () from /lib64/libc.so.6
#5  0x00007ff6d30ed3ba in memmove (__len=262112, __src=0x7ff2119fe810, __dest=<optimized out>) at /usr/include/bits/string_fortified.h:36
#6  copy_unswapped (rect=<synthetic pointer>..., img=warning: RTTI symbol for class 'QImage' is not a type
..., dstBytesPerLine=262112, dst=<optimized out>) at qxcbbackingstore.cpp:547
#7  native_sub_image (swap=false, rect=<synthetic pointer>..., src=warning: RTTI symbol for class 'QImage' is not a type
..., dstStride=262112, buffer=0x556c0a822500) at qxcbbackingstore.cpp:590
#8  QXcbBackingStoreImage::flushPixmap (this=0x556c0a822480, region=..., fullRegion=<optimized out>) at qxcbbackingstore.cpp:669
#9  0x00007ff6d30ed9b9 in QXcbBackingStoreImage::flushPixmap (fullRegion=false, region=..., this=0x556c0a822480) at qxcbbackingstore.cpp:627
#10 QXcbBackingStoreImage::put (this=0x556c0a822480, dst=96469013, region=..., offset=...) at qxcbbackingstore.cpp:741
#11 0x00007ff6d30ee2f9 in QXcbBackingStore::flush (this=this@entry=0x7ff6c4009830, window=window@entry=0x556c0ab0e8f0, region=..., offset=...) at /usr/src/debug/qtbase-everywhere-src-5.15.8+kde160/src/plugins/platforms/xcb/qxcbwindow.h:120
#12 0x00007ff6d794d462 in QBackingStore::flush (this=this@entry=0x556c0a972960, region=..., window=0x556c0ab0e8f0, offset=...) at painting/qbackingstore.cpp:252
#13 0x00007ff6d7fb2a7f in QWidgetRepaintManager::flush (this=this@entry=0x556c0a7eba00, widget=0x556c0a7b4630, region=..., widgetTextures=<optimized out>) at kernel/qwidgetrepaintmanager.cpp:1198
#14 0x00007ff6d7fb4609 in QWidgetRepaintManager::flush (this=0x556c0a7eba00) at kernel/qwidgetrepaintmanager.cpp:1096
#15 0x00007ff6d7fb6688 in QWidgetRepaintManager::paintAndFlush (this=0x556c0a7eba00) at kernel/qwidgetrepaintmanager.cpp:1028
#16 0x00007ff6d7fff3e1 in QWidgetWindow::handleResizeEvent (this=0x556c0ab0e8f0, event=0x7ffe1bab5990) at kernel/qwidgetwindow.cpp:841
#17 0x00007ff6d800334b in QWidgetWindow::event (this=0x556c0ab0e8f0, event=0x7ffe1bab5990) at kernel/qwidgetwindow.cpp:322
#18 0x00007ff6d7fa544e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x556c0ab0e8f0, e=0x7ffe1bab5990) at kernel/qapplication.cpp:3640
#19 0x00007ff6d72dc138 in QCoreApplication::notifyInternal2 (receiver=0x556c0ab0e8f0, event=0x7ffe1bab5990) at kernel/qcoreapplication.cpp:1064
#20 0x00007ff6d7777ccc in QGuiApplicationPrivate::processGeometryChangeEvent (e=<optimized out>) at kernel/qguiapplication.cpp:2610
#21 0x00007ff6d774f26c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#22 0x00007ff6d30f814a in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#23 0x00007ff6d5c6ea90 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#24 0x00007ff6d5c6ee48 in ?? () from /lib64/libglib-2.0.so.0
#25 0x00007ff6d5c6eedc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#26 0x00007ff6d7333b66 in QEventDispatcherGlib::processEvents (this=0x556c0a59ab10, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#27 0x00007ff6d72dabab in QEventLoop::exec (this=this@entry=0x7ffe1bab5c10, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#28 0x00007ff6d72e2d16 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#29 0x00007ff6d776ed3c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870
#30 0x00007ff6d7fa53c5 in QApplication::exec () at kernel/qapplication.cpp:2832
#31 0x0000556c09d467d3 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/krusader-2.8.0/app/main.cpp:307
[Inferior 1 (process 3896) detached]

Reported using DrKonqi
Comment 1 Gábor Katona 2023-02-08 19:16:21 UTC
Created attachment 156084 [details]
New crash information added by DrKonqi

krusader (2.8.0 "A New Day") using Qt 5.15.8

Krusader crash when connecting external screen via usb-c dock

-- Backtrace (Reduced):
#5  0x00007efe206373ba in memmove (__len=262112, __src=0x7ef95d9fe810, __dest=<optimized out>) at /usr/include/bits/string_fortified.h:36
#8  QXcbBackingStoreImage::flushPixmap (this=0x55ea709d3e60, region=..., fullRegion=<optimized out>) at qxcbbackingstore.cpp:669
#9  0x00007efe206379b9 in QXcbBackingStoreImage::flushPixmap (fullRegion=false, region=..., this=0x55ea709d3e60) at qxcbbackingstore.cpp:627
#10 QXcbBackingStoreImage::put (this=0x55ea709d3e60, dst=79691797, region=..., offset=...) at qxcbbackingstore.cpp:741
#11 0x00007efe206382f9 in QXcbBackingStore::flush (this=this@entry=0x7efe10009c60, window=window@entry=0x55ea70836e30, region=..., offset=...) at /usr/src/debug/qtbase-everywhere-src-5.15.8+kde160/src/plugins/platforms/xcb/qxcbwindow.h:120
Comment 2 Nate Graham 2023-05-02 18:03:32 UTC
*** Bug 465146 has been marked as a duplicate of this bug. ***
Comment 3 Nate Graham 2023-05-02 18:03:40 UTC
Almost certainly a Qt bug.
Comment 4 Nate Graham 2023-05-02 18:03:49 UTC
*** Bug 467419 has been marked as a duplicate of this bug. ***
Comment 5 Nate Graham 2023-05-02 18:03:52 UTC
*** Bug 469264 has been marked as a duplicate of this bug. ***
Comment 6 Gábor Katona 2023-05-02 18:09:18 UTC
Thank you for checking. Should I file a Qt bug report, or is it better, if you or someone similarly competent file the bug based on the crash reports? If needed, I can produce such crash reports several times a week. Unfortunately.
Comment 7 Gábor Katona 2023-05-03 09:44:13 UTC
I think this Qt bug is the same: https://bugreports.qt.io/browse/QTBUG-109226
Comment 8 Nate Graham 2023-05-05 06:24:26 UTC
Looks like it, yeah. I see that it's already fixed in more recent versions of Qt.
Comment 9 Nicolas Fella 2023-10-04 10:34:38 UTC

*** This bug has been marked as a duplicate of bug 473602 ***