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..
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..
The workaround is in r3071. In the review, I found more problems:
Will test and close this ticket. This may need backports too.
But... we have lost tooltips (#262 related?), as can be easily seen by running filelight
which makes heavy use of them. Bummer!
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).
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.
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.
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/310