-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
isGSOSupported incorrect value on some Android devices #4446
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I was debugging issues with slow (or completely stuck) streams on some Android devices that we are experiencing with quic-go in production on anytype. After disabling UDP optimizations by using basicConn, the problems were resolved, so I began investigating different syscalls in
sys_conn_oob.go
.isGSOSupported
returns true on the problematic device, so I tried to disable it by setting the OS environment variableQUIC_GO_DISABLE_GSO=1
, and it helped. According to the Linux manual pages, theUDP_SEGMENT
socket option may return 0 if it is disabled. Currently, in the Linux implementation, only the error is checked. This check only verifies whether the Linux kernel recognizes this socket option (kernels >=4.18 should recognize it). The Android device I tested has a kernel version of4.14.180-perf+
, but it appears to recognize this socket option and returns 0.Also there are no errors on writePacket, so isGSOError is never called.
More device info:
The text was updated successfully, but these errors were encountered: