Xpra: Ticket #2399: stateful sockets (ssl, ssh) cannot be serialized
Causes problems with the proxy server.
Options:
- keep the socket open on the proxy server side and relay all packets using a queue: problem is that this will use CPU time and make the processes more brittle
- somehow get the client to re-open the connection? closing the ssl layer and then re-creating it, so that the handshake will be handled by the proxy instance
Fri, 30 Aug 2019 10:18:33 GMT - totaamwin32: owner, status changed
- owner
changed from Antoine Martin to totaamwin32
- status
changed from new to assigned
Upstream ticket: python.org issue 30829 : 'Cannot serialize socket object' after ssl.wrap_socket.
Tue, 03 Sep 2019 17:20:48 GMT - Antoine Martin: priority changed
- priority
changed from major to critical
On Linux, this manifested itself as a [Errno 32] Broken pipe
exception.
Fixes in:
- r23698 split the fake glib scheduler into its own module
- r23700 + r23701 + r23704 + r23706: proxy instance refactoring
- r23702 split pure proxy instance methods into a separate module (+r23703)
- r23705 proxy server refactoring
- r23707 new threaded implementation, used when needed (ssl, wss or ssh socket type) or when
XPRA_PROXY_INSTANCE_THREADED=1
Example proxy output:
using threaded mode for ssl client connection
started threaded proxy instance
for client ssl socket: 192.168.1.9:14500 <- 192.168.1.9:53892
and server unix-domain socket: <- /run/user/1000/xpra/localhost.localdomain-2
TODO:
- unit test for the queue scheduler module
- ensure there are no leaks: timeout connection, threads, etc
Sun, 08 Sep 2019 09:22:00 GMT - Antoine Martin: status, summary changed; resolution set
- status
changed from assigned to closed
- resolution
set to fixed
- summary
changed from ssl sockets cannot be serialized to stateful sockets (ssl, ssh) cannot be serialized
Updates:
- r23728 move module
- r23730 adds unit tests, found:
- r23729 scheduler bug
- r23731 fixes, + try harder to ensure we always reap proxy instances
- r23734 logging tweaks
Will follow up in #2405 with better unit tests.
Sat, 23 Jan 2021 05:50:15 GMT - migration script:
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2399