xpra icon
Bug tracker and wiki

Opened 7 weeks ago

Last modified 3 weeks ago

#2543 new defect

zombie windows with xpra 3.0.4

Reported by: Thomas Martitz Owned by: Thomas Martitz
Priority: major Milestone: 3.1
Component: server Version: 3.0.x
Keywords: Cc:

Description

Sometimes xpra windows get "stuck". That means the application (in my case Geany) has terminated but its window is still showing. I cannot close the window by any means.

I found this in the server logs when it happened:

Jan 08 10:55:24 tmartitz-pc xpra[17088]: ../../../../../gdk/x11/gdkwindow-x11.c:5579 drawable is not a native X11 window
Jan 08 10:55:31 tmartitz-pc xpra[17088]: ../../../../../gdk/x11/gdkwindow-x11.c:5579 drawable is not a native X11 window
Jan 08 10:55:31 tmartitz-pc xpra[17088]: ../../../../../gdk/x11/gdkwindow-x11.c:5579 drawable is not a native X11 window
Jan 08 10:55:31 tmartitz-pc xpra[17088]: gdk_window_get_screen: assertion 'GDK_IS_WINDOW (window)' failed
Jan 08 10:56:04 tmartitz-pc xpra[17088]: ../../../../../gdk/x11/gdkwindow-x11.c:5579 drawable is not a native X11 window
Jan 08 10:56:04 tmartitz-pc xpra[17088]: gdk_window_get_screen: assertion 'GDK_IS_WINDOW (window)' failed
Jan 08 10:56:04 tmartitz-pc xpra[17088]: ../../../../../gdk/x11/gdkwindow-x11.c:5579 drawable is not a native X11 window
Jan 08 10:56:05 tmartitz-pc xpra[17088]: gdk_window_get_screen: assertion 'GDK_IS_WINDOW (window)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]: ../../../../../gdk/x11/gdkwindow-x11.c:5579 drawable is not a native X11 window
Jan 08 10:56:05 tmartitz-pc xpra[17088]: ../../../../../gdk/x11/gdkwindow-x11.c:5579 drawable is not a native X11 window
Jan 08 10:56:05 tmartitz-pc xpra[17088]: gdk_window_get_screen: assertion 'GDK_IS_WINDOW (window)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3/dist-packages/xpra/x11/gtk_x11/tray.py:285: TypeError: Passing arguments to gi.types.Boxed.__init__() is deprecated. All arguments passed will be ignored.
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   tray_window.invalidate_rect(gdk.Rectangle(width=w, height=h), True)
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3/dist-packages/xpra/x11/gtk_x11/tray.py:285: TypeError: Passing arguments to gi.types.Boxed.__init__() is deprecated. All arguments passed will be ignored.
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   tray_window.invalidate_rect(gdk.Rectangle(width=w, height=h), True)
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3/dist-packages/xpra/server/window/window_source.py:426: Warning: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   self.window = None
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3/dist-packages/xpra/server/window/window_source.py:426: Warning: g_object_set_qdata_full: assertion 'G_IS_OBJECT (object)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   self.window = None
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3/dist-packages/xpra/server/window/window_source.py:426: Warning: g_object_remove_toggle_ref: assertion 'G_IS_OBJECT (object)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   self.window = None
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3/dist-packages/xpra/server/gtk_server_base.py:118: Warning: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   gtk_main()
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3/dist-packages/xpra/server/window/window_source.py:426: Warning: g_object_remove_toggle_ref: couldn't find toggle ref 0x7fbdd48a4370((nil))
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   self.window = None
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3.6/urllib/response.py:37: Warning: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   class addclosehook(addbase):
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3.6/urllib/response.py:37: Warning: g_object_set_qdata_full: assertion 'G_IS_OBJECT (object)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   class addclosehook(addbase):
Jan 08 10:56:05 tmartitz-pc xpra[17088]: Traceback (most recent call last):
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1452, in expire_delayed_region
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.may_send_delayed()
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1616, in may_send_delayed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.do_send_delayed()
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1627, in do_send_delayed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.send_delayed_regions(delayed)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1645, in send_delayed_regions
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.do_send_delayed_regions(dr.damage_time, dr.regions, dr.encoding, dr.options)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_video_source.py", line 737, in do_send_delayed_regions
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     WindowSource.do_send_delayed_regions(self, damage_time, regions, coding, options)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1715, in do_send_delayed_regions
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     send_full_window_update("merged region covers almost the whole window")
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1660, in send_full_window_update
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.process_damage_region(damage_time, 0, 0, ww, wh, actual_encoding, options)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_video_source.py", line 853, in process_damage_region
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     image = self.window.get_image(x, y, w, h)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/x11/models/core.py", line 337, in get_image
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     return self._composite.get_image(x, y, width, height)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/x11/gtk_x11/window_damage.py", line 165, in get_image
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     handle = self.get_contents_handle()
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/x11/gtk_x11/window_damage.py", line 160, in get_contents_handle
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     trap.swallow_synced(self._set_pixmap)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 168, in swallow_synced
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.call_synced(fun, *args, **kwargs)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 151, in call_synced
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     return self._call(True, fun, args, kwargs)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 135, in _call
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     value = fun(*args, **kwargs)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/x11/gtk_x11/composite.py", line 92, in _set_pixmap
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     root = self.client_window.get_screen().get_root_window()
Jan 08 10:56:05 tmartitz-pc xpra[17088]: AttributeError: 'NoneType' object has no attribute 'get_root_window'
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3/dist-packages/xpra/x11/server_keyboard_config.py:482: Warning: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   for modifier in modifiers:
Jan 08 10:56:05 tmartitz-pc xpra[17088]: /usr/lib/python3/dist-packages/xpra/x11/server_keyboard_config.py:482: Warning: g_object_set_qdata_full: assertion 'G_IS_OBJECT (object)' failed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   for modifier in modifiers:
Jan 08 10:56:05 tmartitz-pc xpra[17088]: Traceback (most recent call last):
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1452, in expire_delayed_region
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.may_send_delayed()
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1616, in may_send_delayed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.do_send_delayed()
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1627, in do_send_delayed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.send_delayed_regions(delayed)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1645, in send_delayed_regions
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.do_send_delayed_regions(dr.damage_time, dr.regions, dr.encoding, dr.options)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_video_source.py", line 737, in do_send_delayed_regions
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     WindowSource.do_send_delayed_regions(self, damage_time, regions, coding, options)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1715, in do_send_delayed_regions
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     send_full_window_update("merged region covers almost the whole window")
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1660, in send_full_window_update
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.process_damage_region(damage_time, 0, 0, ww, wh, actual_encoding, options)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_video_source.py", line 853, in process_damage_region
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     image = self.window.get_image(x, y, w, h)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/x11/models/core.py", line 337, in get_image
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     return self._composite.get_image(x, y, width, height)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/x11/gtk_x11/window_damage.py", line 165, in get_image
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     handle = self.get_contents_handle()
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/x11/gtk_x11/window_damage.py", line 160, in get_contents_handle
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     trap.swallow_synced(self._set_pixmap)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 168, in swallow_synced
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.call_synced(fun, *args, **kwargs)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 151, in call_synced
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     return self._call(True, fun, args, kwargs)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 135, in _call
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     value = fun(*args, **kwargs)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/x11/gtk_x11/composite.py", line 92, in _set_pixmap
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     root = self.client_window.get_screen().get_root_window()
Jan 08 10:56:05 tmartitz-pc xpra[17088]: AttributeError: 'NoneType' object has no attribute 'get_root_window'
Jan 08 10:56:05 tmartitz-pc xpra[17088]: Traceback (most recent call last):
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1452, in expire_delayed_region
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.may_send_delayed()
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1616, in may_send_delayed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.do_send_delayed()
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1627, in do_send_delayed
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.send_delayed_regions(delayed)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1645, in send_delayed_regions
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.do_send_delayed_regions(dr.damage_time, dr.regions, dr.encoding, dr.options)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_video_source.py", line 737, in do_send_delayed_regions
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     WindowSource.do_send_delayed_regions(self, damage_time, regions, coding, options)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1715, in do_send_delayed_regions
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     send_full_window_update("merged region covers almost the whole window")
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_source.py", line 1660, in send_full_window_update
Jan 08 10:56:05 tmartitz-pc xpra[17088]:     self.process_damage_region(damage_time, 0, 0, ww, wh, actual_encoding, options)
Jan 08 10:56:05 tmartitz-pc xpra[17088]:   File "/usr/lib/python3/dist-packages/xpra/server/window/window_video_source.py", line 853, in process_damage_region

Attachments (1)

bug-2543.zip (92.5 KB) - added by Thomas Martitz 7 weeks ago.
created by bug report tool

Download all attachments as: .zip

Change History (14)

comment:1 Changed 7 weeks ago by Thomas Martitz

Jan 08 11:01:47 tmartitz-pc xpra[17088]: ../../../../../gdk/x11/gdkwindow-x11.c:5579 drawable is not a native X11 window
Jan 08 11:01:47 tmartitz-pc xpra[17088]: ../../../../../gdk/x11/gdkwindow-x11.c:5579 drawable is not a native X11 window
Jan 08 11:01:47 tmartitz-pc xpra[17088]: gdk_window_get_screen: assertion 'GDK_IS_WINDOW (window)' failed

is added to the log anytime I click in the zombie window.

Changed 7 weeks ago by Thomas Martitz

Attachment: bug-2543.zip added

created by bug report tool

comment:2 Changed 7 weeks ago by Thomas Martitz

Summary: stuck windows with xpra 3.0.4zombie windows with xpra 3.0.4

comment:3 Changed 7 weeks ago by Thomas Martitz

Component: androidserver

comment:4 Changed 7 weeks ago by Antoine Martin

Owner: changed from Antoine Martin to Thomas Martitz

kugel: is this on Ubuntu Bionic?
What do I need to do to reproduce it?
In your server info, I see a 2 geany windows:

>>> winfo[12]
{b'xid': b'0x60000c', b'depth': 24, b'has-alpha': False, b'client-machine': b'tmartitz-pc', b'pid': 21189, b'title': b'*unbenannt - [docsis-puma7] - Geany', b'command': b'', b'shape': {}, b'class-instance': (b'geany', b'Geany'), b'state': (b'_NET_WM_STATE_MAXIMIZED_HORZ', b'_NET_WM_STATE_MAXIMIZED_VERT'), b'bypass-compositor': 0, b'window-type': (b'NORMAL',), b'workspace': 65535, b'strut': {}, b'opacity': -1, b'content-type': b'', b'fullscreen': False, 'focused': 0, b'maximized': True, b'above': False, b'below': False, b'shaded': False, b'skip-taskbar': False, b'skip-pager': False, b'sticky': False, b'size-constraints': {b'position': (0, 0), b'base-size': (0, 0), b'gravity': 1, b'minimum-size': (551, 239)}, b'icon-title': b'*unbenannt - [docsis-puma7] - Geany', b'modal': False, b'set-initial-position': True, b'iconic': False, b'allowed-actions': (b'_NET_WM_ACTION_CLOSE', b'_NET_WM_ACTION_MOVE', b'_NET_WM_ACTION_RESIZE', b'_NET_WM_ACTION_FULLSCREEN', b'_NET_WM_ACTION_MINIMIZE', b'_NET_WM_ACTION_SHADE', b'_NET_WM_ACTION_STICK', b'_NET_WM_ACTION_MAXIMIZE_HORZ', b'_NET_WM_ACTION_MAXIMIZE_VERT', b'_NET_WM_ACTION_CHANGE_DESKTOP', b'_NET_WM_ACTION_ABOVE', b'_NET_WM_ACTION_BELOW'), b'children': (), b'override-redirect': False, b'tray': False, b'size': (1920, 1135), b'client-properties': {b'29d62961dbd46001e4533ae72bb771b06d095565': {b'workspace': 0}}, b'XShm': True, b'geometry': (1920, 292, 1920, 1135), b'grabbed': 0, b'shown': True, b'client-geometry': (1920, 292, 1920, 1135)}
>>> winfo[71]
{b'xid': b'0xc0000c', b'depth': 24, b'has-alpha': False, b'client-machine': b'tmartitz-pc', b'pid': 2964, b'title': b'COMMIT_EDITMSG - /home/tmartitz/gu-psq19.git/DOCSIS_atomp7_build/.git - Geany (neue Instanz)', b'command': b'', b'shape': {}, b'class-instance': (b'geany', b'Geany'), b'state': (b'_NET_WM_STATE_MAXIMIZED_HORZ', b'_NET_WM_STATE_MAXIMIZED_VERT'), b'bypass-compositor': 0, b'window-type': (b'NORMAL',), b'workspace': 65535, b'strut': {}, b'opacity': -1, b'content-type': b'', b'fullscreen': False, b'focused': 0, b'maximized': True, b'above': False, b'below': False, b'shaded': False, b'skip-taskbar': False, b'skip-pager': False, b'sticky': False, b'size-constraints': {b'position': (0, 0), b'base-size': (0, 0), b'gravity': 1, b'minimum-size': (551, 239)}, b'icon-title': b'COMMIT_EDITMSG - /home/tmartitz/gu-psq19.git/DOCSIS_atomp7_build/.git - Geany (neue Instanz)', b'modal': False, b'set-initial-position': True, b'iconic': False, b'allowed-actions': (b'_NET_WM_ACTION_CLOSE', b'_NET_WM_ACTION_MOVE', b'_NET_WM_ACTION_RESIZE', b'_NET_WM_ACTION_FULLSCREEN', b'_NET_WM_ACTION_MINIMIZE', b'_NET_WM_ACTION_SHADE', b'_NET_WM_ACTION_STICK', b'_NET_WM_ACTION_MAXIMIZE_HORZ', b'_NET_WM_ACTION_MAXIMIZE_VERT', b'_NET_WM_ACTION_CHANGE_DESKTOP', b'_NET_WM_ACTION_ABOVE', b'_NET_WM_ACTION_BELOW'), b'children': (), b'override-redirect': False, b'tray': False, b'size': (1920, 1135), b'client-properties': {b'29d62961dbd46001e4533ae72bb771b06d095565': {b'workspace': 0}}, b'XShm': True, b'geometry': (1920, 292, 1920, 1135), b'grabbed': 0, b'shown': True, b'client-geometry': (1920, 292, 1920, 1135)}

Are they both dead? Is the geany process dead too?
The second one is maximized, is that expected?
What is your client-side DE?

Version 0, edited 7 weeks ago by Antoine Martin (next)

comment:5 Changed 7 weeks ago by Thomas Martitz

One is dead, one is active. There is only one geany process, that corresponds to the working window. The window titled "COMMIT_EDITMSG - /home/tmartitz/gu-psq19.git/DOCSIS_atomp7_build/.git - Geany (neue Instanz)" is the dead one, it opens when I commit something in git (EDITOR is set to 'geany --display :10 -si'). Sometimes when I close geany to finalize git-commit, the window simply stays alive but git-commit returns just fine.

Yes, maximized is excepted. Actually both should be maximized.

I'm on KDE neon, so yes bionic beaver based.

Is there a workaround to close the zombie window via some xpra server command?

comment:6 Changed 7 weeks ago by Antoine Martin

Yes, maximized is excepted. Actually both should be maximized.

Both are.

Is there a workaround to close the zombie window via some xpra server command?

No, we can't really have conflicting instructions in the server. The X11 server is what drives the xpra server.

drawable is not a native X11 window

This points towards an environment issue, could be caused by some wayland compatibility code in GTK / Qt.
I see that you're running: geany --display :10 -si
The fact that you have to specify the $DISPLAY tells me that you're probably launching geany from an environment which was not created by xpra...
Unless you can also reproduce the bug from an environment created by xpra, I may have to close the ticket as 'invalid' as there's nothing we can do if apps aren't launched using --start= (or --start-child, --start-xxxx etc)
You may be able to workaround the problem by setting the environment variables required to tell geany to not go anywhere near the wayland code. (ie: GDK_BACKEND=x11 and QT_QPA_PLATFORM for Qt apps).

comment:7 Changed 7 weeks ago by Thomas Martitz

Well, my terminal runs under :0, the local xpra server is already started on login. How else should I launch a program under the xpra server, when it already runs?

I thought "DISPLAY=:10 foo" is the appropriate way (foo --display :10 is equivalent for GTK apps)

(this is local xpra btw)

comment:8 Changed 7 weeks ago by Antoine Martin

I thought "DISPLAY=:10 foo" is the appropriate way (foo --display :10 is equivalent for GTK apps)

That only sets the $DISPLAY and not all the other environment variables that xpra normally sets when launching applications. There are a number of workarounds for tookit "features", input devices, etc..
Try this instead:
xpra control :10 start foo

comment:9 Changed 7 weeks ago by Thomas Martitz

Thanks. However, it doesn't block which is needed for my EDITOR / git-commit use-case.

comment:10 Changed 3 weeks ago by Thomas Martitz

The problem just occured with Geany started via 'xpra control :10 start geany'.

Before the window went into zombie it didn't immediately react to key presses anymore. Only after alt+tabbing to another window the keypress were effective.

I.e. I pressed abc in the editor window and nothing happend. Then I used alt+tab to switch to another window (non-xpra) and back to geany. Now abc appeared.

I then closed the geany window, and the process exited. But the window remains up in a zombie state.

comment:11 Changed 3 weeks ago by Antoine Martin

r25121 will avoid dumping the long stacktraces calling get_root_window.
But this will not fix the underlying problem.
It looks like something with the X11 server is getting out of sync, but we already have context checks around all X11 calls: ticket:1475#comment:10.

Can you start your server with:

XPRA_X_SYNC=1 xpra start ...

And see if the problem goes away?

comment:12 Changed 3 weeks ago by Thomas Martitz

XPRA_X_SYNC=1 does not seem to help, it just happened again. Though I'm not on the latest xpra version. My debian package was upgraded to 3.0.5 but AFAICS this does not include the change you mentioned.

I would rather stay on the stable xpra channel. Is there something I can change locally to see if it helps (I'm fluent in python) without going xpra-beta?

comment:13 Changed 3 weeks ago by Antoine Martin

My debian package was upgraded to 3.0.5 but AFAICS this does not include the change you mentioned.

xpra 3.0.6 will be released soon with the change.
Note that this fix will only avoid logging the backtrace, not actually fix anything.

Note: See TracTickets for help on using tickets.