xpra icon
Bug tracker and wiki

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#1248 closed defect (invalid)

Xephyr resizeable window goes into a loop

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 1.0
Component: server Version: trunk
Keywords: x11 Xephyr resize Cc:

Description

Just start Xephyr as a child: --start=Xephyr -resizeable, then it goes into a spin as soon as you try to resize it. Log attached.

Attachments (4)

Xephyr-resize-loop.log (20.5 KB) - added by Antoine Martin 3 years ago.
log of server endless resize loop
Xephyr-resize-loop2.log (24.5 KB) - added by Antoine Martin 3 years ago.
actual ConfigureNotify? loop
rate-limit-corral-resize.patch (2.4 KB) - added by Antoine Martin 3 years ago.
trying to rate limit corral window resizing
Xephyr-resize.patch (2.0 KB) - added by Antoine Martin 3 years ago.
upstream patch

Download all attachments as: .zip

Change History (7)

Changed 3 years ago by Antoine Martin

Attachment: Xephyr-resize-loop.log added

log of server endless resize loop

comment:1 Changed 3 years ago by Antoine Martin

Status: newassigned

Sequence of events from the log sample above:

  • client sends _process_configure_window with the new dimensions
  • updateprop fires the notification, which triggers XpraServer._window_resized_signaled where we correctly detect that the window geometry matches the desktop manager's value (which we just updated from the client)
  • the _do_update_client_geometry sends a ConfigureNotify, which we ignore on the corral window: we only invalidate the pixmap, on the client window we end up in resize_corral_window which is a no-op since the dimensions match

All further events follow the same pattern. That's before the problem occurs.
At some point we stop resizing yet the stream of ConfigureNotify events does not stop: whilst we resize the corral window (up or down), Xephyr is busy resizing its own window to match, and then we try to match this size.. causing the loop:

resize_corral_window() resize from (712, 481) to (705, 480)
resize_corral_window() resize from (705, 480) to (712, 481)
resize_corral_window() resize from (712, 481) to (705, 480)

etc

Maybe #723 would help with this? Or this patch: ephyr: Don't configure window while responding to configure events

Last edited 3 years ago by Antoine Martin (previous) (diff)

Changed 3 years ago by Antoine Martin

Attachment: Xephyr-resize-loop2.log added

actual ConfigureNotify? loop

Changed 3 years ago by Antoine Martin

trying to rate limit corral window resizing

Changed 3 years ago by Antoine Martin

Attachment: Xephyr-resize.patch added

upstream patch

comment:2 Changed 3 years ago by Antoine Martin

Resolution: invalid
Status: assignedclosed

The bug is fixed in Xephyr by applying the patch attached, I have requested its inclusion in a future stable update: Re: ephyr: Don't configure window while responding to configure events

Closing as not an xpra bug.
Follow up ticket: #1249, further Xephyr geometry issues.

comment:3 Changed 3 years ago by Antoine Martin

Milestone: 0.181.0

Milestone renamed

Note: See TracTickets for help on using tickets.