Xpra: Ticket #2670: xpra upgrade crashes and destroys sessions

Using client:

2020-03-23 14:14:16,233 Xpra GTK3 client version 4.0-r25739 64-bit

And running these commands from inside "Xpra-Python3-x86_64_4.0-r25739\xpra_cmd" attach ssh://user@ip/200 --ssh="plink -ssh -agent" --modal-windows=no --title="@title@ on @hostname@/@server-display@" session

$ xpra update 2
$ xpra update 20
$ xpra update 200
$ # And then I remember that displays without `:` work only on one specific case that I asked you to do a long time ago, then
$ xpra update :2
$ xpra update :20
$ xpra update :200

Gives:

───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: /run/user/1000/xpra/display-:2-$TIMESTAMP.log
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ 2020-03-23 14:01:43,545 created unix domain socket '/run/user/1000/xpra/usr-precision-t3620-2'
   2   │ 2020-03-23 14:01:43,545 created unix domain socket '/run/xpra/usr-precision-t3620-2'
   3   │ 2020-03-23 14:01:43,620 pointer device emulation using XTest
   4   │ 2020-03-23 14:01:43,669 serving html content from '/usr/share/xpra/www'
   5   │ 2020-03-23 14:01:43,676 xvfb pid=21682
   6   │ 2020-03-23 14:01:43,677 found previous Xpra instance
   7   │ 2020-03-23 14:01:49,462 Warning: OpenGL support check failed:
   8   │ 2020-03-23 14:01:49,462  unknown error
   9   │ 2020-03-23 14:01:49,938 Error: cannot start the seamless server
  10   │ Traceback (most recent call last):
  11   │   File "/usr/lib/python3/dist-packages/xpra/scripts/server.py", line 850, in do_run_server
  12   │     app.server_init()
  13   │   File "/usr/lib/python3/dist-packages/xpra/x11/server.py", line 223, in server_init
  14   │     X11ServerBase.server_init(self)
  15   │   File "/usr/lib/python3/dist-packages/xpra/x11/x11_server_core.py", line 105, in server_init
  16   │     self.x11_init()
  17   │   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 193, in __exit__
  18   │     trap.Xexit()
  19   │   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 125, in Xexit
  20   │     raise XError(get_X_error(error))
  21   │ xpra.gtk_common.error.XError: XError: BadWindow (invalid Window parameter)
  22   │ 2020-03-23 14:01:49,939 XError: BadWindow (invalid Window parameter)
  23   │ 2020-03-23 14:01:49,939
  24   │ 2020-03-23 14:01:49,981 killing xvfb with pid 21682
  25   │ 2020-03-23 14:01:49,982 removing socket '/run/user/1000/xpra/usr-precision-t3620-2'
  26   │ 2020-03-23 14:01:49,982 removing socket '/run/xpra/usr-precision-t3620-2'
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: /run/user/1000/xpra/display-:20-$TIMESTAMP.log
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ 2020-03-23 14:01:46,878 created unix domain socket '/run/user/1000/xpra/usr-precision-t3620-20'
   2   │ 2020-03-23 14:01:46,878 created unix domain socket '/run/xpra/usr-precision-t3620-20'
   3   │ 2020-03-23 14:01:46,952 pointer device emulation using XTest
   4   │ 2020-03-23 14:01:46,991 serving html content from '/usr/share/xpra/www'
   5   │ 2020-03-23 14:01:47,000 xvfb pid=28250
   6   │ 2020-03-23 14:01:47,001 found previous Xpra instance
   7   │ 2020-03-23 14:01:47,653 Warning: OpenGL support check failed:
   8   │ 2020-03-23 14:01:47,653  unknown error
   9   │ 2020-03-23 14:01:48,188 Error: cannot start the seamless server
  10   │ Traceback (most recent call last):
  11   │   File "/usr/lib/python3/dist-packages/xpra/scripts/server.py", line 850, in do_run_server
  12   │     app.server_init()
  13   │   File "/usr/lib/python3/dist-packages/xpra/x11/server.py", line 223, in server_init
  14   │     X11ServerBase.server_init(self)
  15   │   File "/usr/lib/python3/dist-packages/xpra/x11/x11_server_core.py", line 105, in server_init
  16   │     self.x11_init()
  17   │   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 193, in __exit__
  18   │     trap.Xexit()
  19   │   File "/usr/lib/python3/dist-packages/xpra/gtk_common/error.py", line 125, in Xexit
  20   │     raise XError(get_X_error(error))
  21   │ xpra.gtk_common.error.XError: XError: BadWindow (invalid Window parameter)
  22   │ 2020-03-23 14:01:48,189 XError: BadWindow (invalid Window parameter)
  23   │ 2020-03-23 14:01:48,189
  24   │ 2020-03-23 14:01:48,230 killing xvfb with pid 28250
  25   │ 2020-03-23 14:01:48,230 removing socket '/run/user/1000/xpra/usr-precision-t3620-20'
  26   │ 2020-03-23 14:01:48,230 removing socket '/run/xpra/usr-precision-t3620-20'
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: /run/user/1000/xpra/display-:200-$TIMESTAMP.log
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ 2020-03-23 14:01:48,893 created unix domain socket '/run/user/1000/xpra/usr-precision-t3620-200'
   2   │ 2020-03-23 14:01:48,894 created unix domain socket '/run/xpra/usr-precision-t3620-200'
   3   │ 2020-03-23 14:01:48,970 pointer device emulation using XTest
   4   │ 2020-03-23 14:01:49,005 serving html content from '/usr/share/xpra/www'
   5   │ 2020-03-23 14:01:49,013 xvfb pid=21257
   6   │ 2020-03-23 14:01:49,014 found previous Xpra instance
   7   │ 2020-03-23 14:01:49,662 Warning: OpenGL support check failed:
   8   │ 2020-03-23 14:01:49,663  unknown error
   9   │ 2020-03-23 14:01:50,012 Warning: failed to load the mdns publisher
  10   │ 2020-03-23 14:01:50,012  No module named 'avahi'
  11   │ 2020-03-23 14:01:50,012  either install the 'python-avahi' module
  12   │ 2020-03-23 14:01:50,012  or use the 'mdns=no' option
  13   │ 2020-03-23 14:01:50,023 D-Bus notification forwarding is available
  14   │
  15   │ (Xpra:8740): Gtk-CRITICAL **: gtk_widget_realize: assertion 'widget->priv->anchored || GTK_IS_INVISIBLE (widget)' failed
  16   │ 2020-03-23 14:01:50,052 printer forwarding enabled using pdf and postscript
  17   │ 2020-03-23 14:01:50,052 Warning: cannot watch for application menu changes without pyinotify:
  18   │ 2020-03-23 14:01:50,052  No module named 'pyinotify'
  19   │ 2020-03-23 14:01:50,084 xpra is ready.
  20   │ 2020-03-23 14:01:50,084 xpra GTK3 X11 version 3.0.8-r25722 64-bit
  21   │ 2020-03-23 14:01:50,343  uid=1000 (usr), gid=1000 (usr)
  22   │ 2020-03-23 14:01:50,344  running with pid 8740 on Linux Ubuntu 16.04 xenial
  23   │ 2020-03-23 14:01:50,344  connected to X11 display :200 with 24 bit colors
  24   │ 2020-03-23 14:01:51,021 Warning: icon is quite large (273 KB):
  25   │ 2020-03-23 14:01:51,021  '/usr/share/pixmaps/com.visualstudio.code.insiders.png'
  26   │ 2020-03-23 14:01:51,583 Warning: remote clipboard request timed out
  27   │ 2020-03-23 14:01:51,583  request id 0, selection=CLIPBOARD, target=TARGETS
  28   │ 2020-03-23 14:01:52,004 62.7GB of system memory
  29   │ 2020-03-23 14:07:10,993 New unix-domain connection received
  30   │ 2020-03-23 14:07:10,993  on '/run/user/1000/xpra/usr-precision-t3620-200'
  31   │ 2020-03-23 14:07:10,995 Handshake complete; enabling connection
  32   │ 2020-03-23 14:07:11,009  automatic picture encoding enabled, also available:
  33   │ 2020-03-23 14:07:11,009   h264, vp9, vp8, png, png/P, png/L, rgb24, rgb32, jpeg
  34   │ 2020-03-23 14:07:11,011 Python/GTK3 Microsoft Windows 10 aero client version 4.0-r25739 64-bit
[...]
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────


Mon, 23 Mar 2020 12:53:32 GMT - Antoine Martin: status changed

We shouldn't kill the vfb.

How do I reproduce this? If you can reproduce it, can you try: xpra upgrade :2 -d all?


Mon, 23 Mar 2020 13:07:14 GMT - stdedos:

xpra start :2 --start=gnome-terminal
xpra start :20 --start=gnome-terminal
xpra attach :2

and, inside xpra:

xpra update :20
xpra update :2

If you cannot replicate, I'll try to replicate again


Mon, 23 Mar 2020 13:27:46 GMT - Antoine Martin:

and, inside xpra: xpra update :2

I've just done it 10 times in a row, on Xenial and on Fedora 31. No X11 errors here.


Tue, 24 Mar 2020 15:21:52 GMT - stdedos:

I cannot replicate it with

Xpra GTK3 client version 4.0-r25747 64-bit Xpra GTK3 X11 server version 3.0.8-r25747 64-bit

Due to your cadence these days I guess I'll perform multiple of those updates; feel free to handle it as you wish.


Tue, 24 Mar 2020 16:55:46 GMT - Antoine Martin: owner, status changed

Updates:

The problem is that v3 is doing this: killing xvfb with pid 28250. Trunk (v4) is not affected because this had already been fixed: r24836.

r25767 backports this fix, and here's what it looks like now:

$ XPRA_FAKE_X11_INIT_ERROR=1 xpra upgrade :2 --no-daemon
2020-03-24 23:54:41,890 created unix domain socket '/run/user/1000/xpra/desktop-eth0-2'
2020-03-24 23:54:41,890 created unix domain socket '/run/xpra/desktop-eth0-2'
2020-03-24 23:54:41,971 pointer device emulation using XTest
2020-03-24 23:54:42,011 serving html content from '/usr/share/xpra/www'
2020-03-24 23:54:42,021 xvfb pid=833956
2020-03-24 23:54:42,022 found previous Xpra instance
2020-03-24 23:54:42,022 Error: cannot start the seamless server
Traceback (most recent call last):
  File "/usr/lib64/python3.7/site-packages/xpra/scripts/server.py", line 850, in do_run_server
    app.server_init()
  File "/usr/lib64/python3.7/site-packages/xpra/x11/server.py", line 223, in server_init
    X11ServerBase.server_init(self)
  File "/usr/lib64/python3.7/site-packages/xpra/x11/x11_server_core.py", line 106, in server_init
    self.x11_init()
  File "/usr/lib64/python3.7/site-packages/xpra/x11/server.py", line 246, in x11_init
    X11ServerBase.x11_init(self)
  File "/usr/lib64/python3.7/site-packages/xpra/x11/x11_server_core.py", line 125, in x11_init
    raise Exception("fake x11 init error")
Exception: fake x11 init error
2020-03-24 23:54:42,023 fake x11 init error
2020-03-24 23:54:42,023
2020-03-24 23:54:42,024 exiting: not cleaning up Xvfb
2020-03-24 23:54:42,024 removing socket '/run/user/1000/xpra/desktop-eth0-2'
2020-03-24 23:54:42,024 removing socket '/run/xpra/desktop-eth0-2'

TIL: exiting: not cleaning up Xvfb


Wed, 25 Mar 2020 16:23:00 GMT - Antoine Martin: status changed; resolution set


Sat, 23 Jan 2021 05:57:39 GMT - migration script:

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