Xpra: Ticket #2554: UDP broke

Reported on the mailing list: UDP connection issues.

Original ticket: #639, see also #1669.

Bisecting:

So the bug comes from the switch to python3.



Sun, 19 Jan 2020 08:34:18 GMT - Antoine Martin: status changed

First, debugging the 3.0 branch with python2 (different regression..):

r24977 is reverted in 24991.


Now, for the python3 bug.


Sun, 19 Jan 2020 12:22:05 GMT - Antoine Martin:

Lots of network debug improvements:

And UDP improvements:


With a python3 server and packet logging:

and switch to async mode:

accept() enabling asynchronous packet reception

On the client side it sometimes failed to receive anything at all, but if it does get something, it always fails when trying to parse the udp-control packet, with an error like this one:

Error: received uninterpretable nonsense: invalid packet header byte 801000001919913911710011245991111101161141111080672727102192: '3830313030303030' read buffer='801000001919913911710011245991111101161141111080672727102192' (60 bytes)
 packet no 69 data: '801000001919913911710011245991111101161141111080672727102192'

(not sending the udp-control packet "fixes" things)


Sun, 19 Jan 2020 13:33:11 GMT - Antoine Martin: attachment set

this "fixes" things but is not correct


Sun, 19 Jan 2020 14:07:14 GMT - Antoine Martin: status changed; resolution set

Fixed in r25007: the code that forces the synchronous flag to False for udp-control packets was duplicating the logic slightly wrong.

Backport to v3.0.x in r25008.


Sat, 23 Jan 2021 05:54:24 GMT - migration script:

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