Jordan Whited
Jordan Whited
Tailscale is slow: `wg: Failed to write packets to TUN device: write /dev/net/tun: invalid argument`
``` [pid 15864] write(11, "\0\0\0\0\0\0\0\0\0\0E\0\5\0\320\10@\0@\6\260\206dn\220&da\\s\24Q"..., 1290) = 1290 [pid 15826] write(11, "\1\1(\0\330\4\24\0\20\0E\0\t\330\320\t@\0@\6\253\255dn\220&da\\s\24Q"..., 2530) = -1 EINVAL (Invalid argument) ``` The writes towards the TUN appear to return EINVAL when length...
Tailscale is slow: `wg: Failed to write packets to TUN device: write /dev/net/tun: invalid argument`
> > After some digging, so far it looks likely that the culprit is [gregkh/linux@e269d79](https://github.com/gregkh/linux/commit/e269d79c7d35aa3808b1f3c1737d63dab504ddc8) and the fix is [gregkh/linux@89add40](https://github.com/gregkh/linux/commit/89add40066f9ed9abe5f7f886fe5789ff7e0c50e) > > Next up, verify this. > > Applying this...
Tailscale is slow: `wg: Failed to write packets to TUN device: write /dev/net/tun: invalid argument`
https://github.com/jwhited/tun-einval-repro contains a simplified reproduction of the issue. This writes a GSO_TCPv4 packet to a TUN device w/GSO=1240 and 2 equal length segments. 6.10.2 ``` jwhited@i5-12400-1:~$ uname -a && sudo...
Tailscale is slow: `wg: Failed to write packets to TUN device: write /dev/net/tun: invalid argument`
Update: We don't believe there is a simple workaround available as the buggy kernel commit results in EINVAL for GSO where all segments are equal in length. We had previously...
> Was just thinking [@jwhited](https://github.com/jwhited), shouldn't this error out regardless of which process owns the port you are trying to use? As in, if an existing process is consuming port...