xpra icon
Bug tracker and wiki

Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#582 closed defect (fixed)

x11 cleanup must still be done in the UI thread

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: minor Milestone: 0.15
Component: server Version:
Keywords: Cc:

Description (last modified by Antoine Martin)

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
    trap.swallow_synced(set_pixmap)
  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...

Change History (4)

comment:1 Changed 4 years ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to Antoine Martin
Priority: majorminor
Status: newassigned

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

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

comment:2 Changed 4 years ago by Antoine Martin

See also #626

comment:3 Changed 4 years ago by Antoine Martin

Resolution: fixed
Status: assignedclosed

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.

comment:4 Changed 4 years ago by 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!

Note: See TracTickets for help on using tickets.