[konsole] [Bug 473602] Konsole crashing when coming back from sleep (upon switching computers on KVM)

Bernhard Übelacker bugzilla_noreply at kde.org
Mon Aug 28 11:05:06 BST 2023


https://bugs.kde.org/show_bug.cgi?id=473602

Bernhard Übelacker <bernhardu at mailbox.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bernhardu at mailbox.org

--- Comment #1 from Bernhard Übelacker <bernhardu at mailbox.org> ---
Hello,
I receive this fault every now and then.
I just found fullscreen processes crashing, therefore as a workaround it helps
to not make windows fullscreen,
instead leave it a little smaller.

I received these crashes either when enabling or disabling one of my two
screens, or when screens wakeup after energy saving.
My setup are two screens of different brand, therefore maybe different reaction
times. Different size but same resolution.
The right screen is the main one, the left currently disabled.

I report this issue some time ago in #461723 and brought this to the attention
of Qt developers
in https://bugreports.qt.io/browse/QTBUG-109226 .
They fixed some flaw, but this issue unfortunately remained active.


I found now again some time for a deeper look and found following before the
crash:
(with modified Qt library to output details of XCB_CONFIGURE_NOTIFY)

> export QT_LOGGING_RULES=qt.qpa.*=true
> gwenview picture.png
> ...
> qt.qpa.events: Event | XCB_CONFIGURE_NOTIFY(22) | sequence: 961 | 4-28-65528-65504
> qt.qpa.xcb: [ QWidgetWindow(0x556124696730, name="MainWindow#1Window") ] creating shared memory 17169384448 bytes for QSize(65528, 65504) depth 24 bits 32
> qt.qpa.xcb: xcb_shm_create_segment() can't be called for size 17169384448, maximumallowed size is 4294967295
> ...
> 10 -- signal=11
> ...
> KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi


This huge resolution of 65528 width and 65504 height I could follow back to an
event XCB_CONFIGURE_NOTIFY
read from the X11 socket /tmp/.X11-unix/X0 in _xcb_in_read.

I suspected this might originate from kwin_x11 - and there function
X11Window::sendSyntheticConfigureNotify could fit.

And below I found m_clientGeometry got negative values for width and heigth,
which looks like it gets interpreted as a 16-bit unsigned int. (-32 == 0xffe0
== 65504).

Should therefore this issue be reassigned to kwin?

> Thread 1 hit Breakpoint 3, KWin::X11Window::sendSyntheticConfigureNotify (this=this at entry=0x557d9d033db0) at ./src/x11window.cpp:3791
> 3791        u.event.border_width = 0;
> (rr) bt
> #0  KWin::X11Window::sendSyntheticConfigureNotify() (this=this at entry=0x557d9d033db0) at ./src/x11window.cpp:3791
> #1  0x00007f9ffab7b961 in KWin::X11Window::updateServerGeometry() (this=this at entry=0x557d9d033db0) at ./src/x11window.cpp:4270
> #2  0x00007f9ffab7fdf9 in KWin::X11Window::moveResizeInternal(QRectF const&, KWin::Window::MoveResizeMode) (this=0x557d9d033db0, rect=<optimized out>, mode=KWin::Window::MoveResizeMode::MoveResize) at ./src/x11window.cpp:4215
> #3  0x00007f9ffaa8626c in KWin::PlacementTracker::restore(QString const&) (this=this at entry=0x7f9fd4011660, key=...) at ./src/placementtracker.cpp:110
> #4  0x00007f9ffab6165a in KWin::Workspace::desktopResized() (this=this at entry=0x557d95264b30) at ./src/workspace.cpp:2251
> ...
> (rr) print this->m_clientGeometry
> $5 = {xp = 4, yp = 28, w = -8, h = -32}
> (rr) print u.event.width
> $6 = 65528
> (rr) print u.event.height
> $7 = 65504
> (rr) list
> 3784        u.event.response_type = XCB_CONFIGURE_NOTIFY;
> 3785        u.event.event = window();
> 3786        u.event.window = window();
> 3787        u.event.x = Xcb::toXNative(m_clientGeometry.x());
> 3788        u.event.y = Xcb::toXNative(m_clientGeometry.y());
> 3789        u.event.width = Xcb::toXNative(m_clientGeometry.width());
> 3790        u.event.height = Xcb::toXNative(m_clientGeometry.height());
> 3791        u.event.border_width = 0;
> 3792        u.event.above_sibling = XCB_WINDOW_NONE;
> 3793        u.event.override_redirect = 0;
> 3794        xcb_send_event(kwinApp()->x11Connection(), true, c.event, XCB_EVENT_MASK_STRUCTURE_NOTIFY, reinterpret_cast<const char *>(&u));


I suspect #464967 and #463475 are open duplicates to this bug.

Another small note: also non-Qt applications like gitk are sometimes affected
and crash with an X error.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the konsole-devel mailing list