Xpra: Ticket #582: x11 cleanup must still be done in the UI thread

Which is more difficult when we exit on a signal..

Found this stacktrace in some automated test samples:

Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/gtk_common/gobject_util.py", line 30, in do_get_property
    return getattr(self, getter)(pspec.name)
  File "/usr/lib64/python2.7/site-packages/xpra/x11/gtk_x11/composite.py", line 205, in do_get_property_contents_handle
  File "/usr/lib64/python2.7/site-packages/xpra/gtk_common/error.py", line 136, in swallow_synced
    self.call_synced(fun, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/xpra/gtk_common/error.py", line 119, in call_synced
    return self._call(True, fun, args, kwargs)
  File "/usr/lib64/python2.7/site-packages/xpra/gtk_common/error.py", line 111, in _call
    raise e
AttributeError: 'NoneType' object has no attribute 'xid'

Which can only occur if self._window is set to None by destroy concurrently with a call to do_get_property_contents_handle...

Thu, 10 Jul 2014 21:27:17 GMT - Antoine Martin: owner, priority, status, description changed

This particular error will no longer be shown as of r6888.

But the underlying issue remains... I am lowering the priority as this only affects exit-on-signal, which makes it less important. See also #626

Sun, 18 Jan 2015 10:55:18 GMT - Antoine Martin:

See also #626

Wed, 29 Apr 2015 08:19:46 GMT - Antoine Martin: status changed; resolution set

A similar problem was solved in r9190, I think that r9194 does the same thing for the regular server process. (not needed for the proxy server code)

Closing, will re-open if this breaks anything.

Tue, 12 May 2015 18:02:16 GMT - Antoine Martin:

Note: as per ticket:626#comment:9, we don't cleanup from the UI thread when we exit from the signal handler... it seems we just can't have everything!

Sat, 23 Jan 2021 05:00:01 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/582