Xpra: Ticket #2592: server crash on SIGINT

Reproducible fairly reliably. Trying to debug #2587: connect an android client (is this relevant?) multiple times, eventually send a SIGINT to the server (control-c).

Traceback (most recent call first):
  File "/usr/lib64/python3.7/site-packages/xpra/gtk_common/error.py", line 116, in Xexit
    Gdk.flush()
  File "/usr/lib64/python3.7/site-packages/xpra/gtk_common/error.py", line 139, in _call
    self.Xexit(need_sync)
  File "/usr/lib64/python3.7/site-packages/xpra/gtk_common/error.py", line 146, in call_synced
    return self._call(True, fun, args, kwargs)
  File "/usr/lib64/python3.7/site-packages/xpra/gtk_common/error.py", line 163, in swallow_synced
    self.call_synced(fun, *args, **kwargs)
  File "/usr/lib64/python3.7/site-packages/xpra/x11/gtk_x11/composite.py", line 54, in do_destroy
    trap.swallow_synced(X11Window.XCompositeUnredirectWindow, self.xid)
  File "/usr/lib64/python3.7/site-packages/xpra/x11/gtk_x11/window_damage.py", line 77, in destroy
    self.do_destroy(win)
  File "/usr/lib64/python3.7/site-packages/xpra/x11/models/core.py", line 307, in do_unmanaged
    self._composite.destroy()
  File "/usr/lib64/python3.7/site-packages/xpra/x11/models/window.py", line 338, in do_unmanaged
    super().do_unmanaged(wm_exiting)
  File "/usr/lib64/python3.7/site-packages/xpra/x11/models/core.py", line 293, in unmanage
    self.emit("unmanaged", exiting)
  File "/usr/lib64/python3.7/site-packages/xpra/x11/gtk_x11/wm.py", line 401, in cleanup
    win.unmanage(True)
  File "/usr/lib64/python3.7/site-packages/xpra/x11/server.py", line 285, in do_cleanup
    self._wm.cleanup()
  File "/usr/lib64/python3.7/site-packages/xpra/server/server_core.py", line 445, in cleanup
    self.do_cleanup()
  File "/usr/lib64/python3.7/site-packages/xpra/server/server_core.py", line 356, in clean_quit
    self.cleanup()
  File "/usr/lib64/python3.7/site-packages/gi/overrides/Gtk.py", line 1630, in main
    return _Gtk_main(*args, **kwargs)
  File "/usr/lib64/python3.7/site-packages/xpra/server/gtk_server_base.py", line 120, in do_run
    Gtk.main()
  File "/usr/lib64/python3.7/site-packages/xpra/server/server_core.py", line 420, in run
    self.do_run()
  File "/usr/lib64/python3.7/site-packages/xpra/scripts/server.py", line 904, in do_run_server
    r = app.run()
  File "/usr/lib64/python3.7/site-packages/xpra/scripts/server.py", line 340, in run_server
    return do_run_server(error_cb, opts, mode, xpra_file, extra_args, desktop_display)
  File "/usr/lib64/python3.7/site-packages/xpra/scripts/main.py", line 448, in run_mode
    return run_server(error_cb, options, mode, script_file, args, current_display)
  File "/usr/lib64/python3.7/site-packages/xpra/scripts/main.py", line 115, in main
    return run_mode(script_file, err, options, args, mode, defaults)
  File "/usr/bin/xpra", line 10, in <module>
    sys.exit(main(sys.argv[0], sys.argv))


Sat, 15 Feb 2020 09:57:15 GMT - Antoine Martin: status changed; resolution set

Reproducible fairly reliably:

Bisecting with python3:

Bisecting with python2 is not possible.. as the bug does not occur.

There is a difference between python2 and python3 when it comes to handling subprocess signals. r25237 fixes the problem by switching from os.setpgrp.

More information here: How to stop python from propagating signals to subprocesses?

See also ticket:2413#comment:1.


Thu, 20 Feb 2020 04:12:37 GMT - Antoine Martin: status changed; resolution deleted

Still crashing, though less reliably??


Mon, 24 Feb 2020 15:25:52 GMT - Antoine Martin:

See also #2476


Sun, 22 Mar 2020 13:01:35 GMT - Antoine Martin: status changed; resolution set

Maybe r25237 really did fix the problem? I'm not seeing the crash any more.


Sat, 23 Jan 2021 05:55:29 GMT - migration script:

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