xpra icon
Bug tracker and wiki

Opened 6 years ago

Closed 6 years ago

#310 closed defect (fixed)

OR windows can go awol

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: blocker Milestone: 0.9
Component: server Version: trunk
Keywords: Cc: onlyjob@…

Description

Reproducible using gnome-terminal: simply move through the drop down menus quickly until one of them goes missing.
A "the window (...) is not composited!?" message shows up in the logs.

This a server issue and re-connecting the client does not solve the problem..

Change History (8)

comment:1 Changed 6 years ago by Antoine Martin

Here is a full debug log of such an instance (removing some pointer-position packets for readability):

016 call_setup() ended
017 found transient_for=<gtk.gdk.Window object at 0x1bfd780 (GdkWindow at 0x1842d80)>, xid=0x800006L
017 testing model <WindowModel object at 0x1bfd7d0 (wimpiggy+window+WindowModel at 0x1752900)>: 0x800006L
018 found match, window id=1
018 window_types=['_NET_WM_WINDOW_TYPE_DROPDOWN_MENU']
019 will process ui packet pointer-position
019 window_types=['_NET_WM_WINDOW_TYPE_DROPDOWN_MENU']
020 will process ui packet pointer-position
020 new_window(new-override-redirect, <OverrideRedirectWindowModel object at 0x1d91aa0 (wimpiggy+window+OverrideRedirectWindowModel at 0x17514c0)>, 10, 78, 53, 201, 124, ('transient-for', 'window-type'), None) metadata={'transient-for': 1, 'window-type': ['_NET_WM_WINDOW_TYPE_DROPDOWN_MENU']}
027 will process ui packet pointer-position
028 process non-ui packet damage-sequence
029 record_latency: took 4.4 ms round trip (4.4 just for echo), 0.0 for decoding of 2730 pixels, 1169 bytes sent over the network in 3.7 ms (3.7 ms for echo)
031 will process ui packet pointer-position
033 do_unmanaged(False) damage_forward_handle=112, composite=<CompositeHelper object at 0x1d91af0 (wimpiggy+composite+CompositeHelper at 0x1751760)>
033 invalidating named pixmap
035 invalidating named pixmap
035 invalidating named pixmap
042 will process ui packet pointer-position
047 will process ui packet pointer-position
050 process non-ui packet damage-sequence
050 record_latency: took 1.6 ms round trip (1.5 just for echo), 0.0 for decoding of 945 pixels, 783 bytes sent over the network in 1.0 ms (1.0 ms for echo)
051 do_wimpiggy_child_map_event(<AdHocStruct object, contents: {'delivered_to': <gtk.gdk.Window object at 0x1ab7410 (GdkWindow at 0x1697ea0)>, 'send_event': 0, 'override_redirect': 1, 'window': <gtk.gdk.Window object at 0x1d91b40 (GdkWindow at 0x1c755a0)>, 'serial': 2758L, 'type': 19, 'display': <gtk.gdk.Display object at 0x1955320 (GdkDisplayX11 at 0x19ee210)>}>)
051 Discovered new override-redirect window: 0x80004eL (tray=None)
051 new window 0x80004eL - 8388686
051 CompositeHelper.__init__(<gtk.gdk.Window object at 0x1d91b40 (GdkWindow at 0x1c755a0)>,False)
052 _call(True,<built-in function XGetWindowProperty>,(<gtk.gdk.Window object at 0x1d91b40 (GdkWindow at 0x1c755a0)>, 'WM_TRANSIENT_FOR', 'WINDOW'),{}) WM_TRANSIENT_FOR
052 Missing property WM_TRANSIENT_FOR (window)
052 call_setup() adding event receiver
053 invalidating named pixmap
053 _call(True,<bound method OverrideRedirectWindowModel.setup of <OverrideRedirectWindowModel object at 0x1d91aa0 (wimpiggy+window+OverrideRedirectWindowModel at 0x1751760)>>,(),{}) window already unmapped
053 cannot manage 8388686: window already unmapped
053 invalidating named pixmap
056 do_wimpiggy_child_map_event(<AdHocStruct object, contents: {'delivered_to': <gtk.gdk.Window object at 0x1ab7410 (GdkWindow at 0x1697ea0)>, 'send_event': 0, 'override_redirect': 1, 'window': <gtk.gdk.Window object at 0x1d91b90 (GdkWindow at 0x1c75360)>, 'serial': 2777L, 'type': 19, 'display': <gtk.gdk.Display object at 0x1955320 (GdkDisplayX11 at 0x19ee210)>}>)
056 Discovered new override-redirect window: 0x80003fL (tray=None)
056 new window 0x80003fL - 8388671
056 CompositeHelper.__init__(<gtk.gdk.Window object at 0x1d91b90 (GdkWindow at 0x1c75360)>,False)
057 call_setup() adding event receiver
057 invalidating named pixmap
058 refreshing named pixmap
058 call_setup() ended
058 found transient_for=<gtk.gdk.Window object at 0x1bfd780 (GdkWindow at 0x1842d80)>, xid=0x800006L
059 testing model <WindowModel object at 0x1bfd7d0 (wimpiggy+window+WindowModel at 0x1752900)>: 0x800006L
059 found match, window id=1
059 window_types=['_NET_WM_WINDOW_TYPE_DROPDOWN_MENU']
059 window_types=['_NET_WM_WINDOW_TYPE_DROPDOWN_MENU']
059 new_window(new-override-redirect, <OverrideRedirectWindowModel object at 0x1d91d70 (wimpiggy+window+OverrideRedirectWindowModel at 0x174fe00)>, 12, 1, 53, 238, 133, ('transient-for', 'window-type'), None) metadata={'transient-for': 1, 'window-type': ['_NET_WM_WINDOW_TYPE_DROPDOWN_MENU']}
060 will process ui packet pointer-position
063 will process ui packet pointer-position
087 process non-ui packet damage-sequence
088 record_latency: took 4.7 ms round trip (4.7 just for echo), 2.0 for decoding of 31654 pixels, 7118 bytes sent over the network in 2.1 ms (2.0 ms for echo)
089 process non-ui packet damage-sequence
089 record_latency: took 5.5 ms round trip (5.4 just for echo), 0.0 for decoding of 2562 pixels, 1195 bytes sent over the network in 4.7 ms (4.6 ms for echo)
152 will process ui packet pointer-position
155 process non-ui packet damage-sequence
155 record_latency: took 5.6 ms round trip (5.5 just for echo), 0.0 for decoding of 273 pixels, 121 bytes sent over the network in 4.6 ms (4.5 ms for echo)
343 will process ui packet pointer-position
346 do_unmanaged(False) damage_forward_handle=121, composite=<CompositeHelper object at 0x1d91c80 (wimpiggy+composite+CompositeHelper at 0x174f780)>
347 invalidating named pixmap
348 invalidating named pixmap
349 invalidating named pixmap
353 will process ui packet pointer-position
355 BaseWindowModel.composite_configure_event(<CompositeHelper object at 0x1d91af0 (wimpiggy+composite+CompositeHelper at 0x17514c0)>,<AdHocStruct object, contents: {'delivered_to': <gtk.gdk.Window object at 0x1d91b40 (GdkWindow at 0x1c755a0)>, 'send_event': 0, 'height': 156, 'width': 284, 'window': <gtk.gdk.Window object at 0x1d91b40 (GdkWindow at 0x1c755a0)>, 'y': 53, 'x': 38, 'serial': 2979L, 'border_width': 0, 'type': 22, 'display': <gtk.gdk.Display object at 0x1955320 (GdkDisplayX11 at 0x19ee210)>}>)
355 invalidating named pixmap
355 invalidating named pixmap
356 do_wimpiggy_child_map_event(<AdHocStruct object, contents: {'delivered_to': <gtk.gdk.Window object at 0x1ab7410 (GdkWindow at 0x1697ea0)>, 'send_event': 0, 'override_redirect': 1, 'window': <gtk.gdk.Window object at 0x1d91b40 (GdkWindow at 0x1c755a0)>, 'serial': 2979L, 'type': 19, 'display': <gtk.gdk.Display object at 0x1955320 (GdkDisplayX11 at 0x19ee210)>}>)
356 found existing model <class 'wimpiggy.window.OverrideRedirectWindowModel'> (but no longer managed!) for 0x80004eL
359 will process ui packet pointer-position
369 will process ui packet pointer-position
375 invalidating named pixmap
376 will process ui packet pointer-position
377 the window <OverrideRedirectWindowModel object at 0x1d91aa0 (wimpiggy+window+OverrideRedirectWindowModel at 0x1751760)> is not composited!?

I think the problem comes from here:

found existing model (...) for (...)

Which comes from r2304 and our attempts at dealing with gtkperf more gracefully..

comment:2 Changed 6 years ago by Antoine Martin

Owner: changed from Antoine Martin to Antoine Martin
Status: newassigned

The workaround is in r3071.
In the review, I found more problems:

  • handlers not getting disconnected: fixed in r3070
  • window unmanage code not firing when setup fails: fixed in r3069

Will test and close this ticket. This may need backports too.

comment:3 Changed 6 years ago by onlyjob

Cc: onlyjob@… added

comment:4 Changed 6 years ago by Antoine Martin

But... we have lost tooltips (#262 related?), as can be easily seen by running filelight which makes heavy use of them. Bummer!

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

comment:5 in reply to:  4 Changed 6 years ago by onlyjob

Replying to totaam:

But... we have lost tooltips (#262 related?), as can be easily seen by running filelight which makes heavy use of them. Bummer!


I'm testing r3072 and I see tooltips in filelight... They were disappearing after some time but from the first quick try I couldn't reproduce that in r3072 so it could become a bit better (if it's not my wishful thinking).

comment:6 Changed 6 years ago by Antoine Martin

r3116 fixes the tooltips: it was opengl not notifying us of mouse motion events.

So maybe this ticket can be closed after all? Feedback welcome.

comment:7 Changed 6 years ago by onlyjob

Looks like tooltips were broken only in opengl mode (that's why I couldn't reproduce as I was trying with "--opengl=no").

It appears to works well with r3118 so I think this bug can be closed. Thanks.

comment:8 Changed 6 years ago by Antoine Martin

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.