Skip to content
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

UDP package failed to send back from the ssserver #1408

Open
jackli0127 opened this issue Jan 13, 2024 · 4 comments
Open

UDP package failed to send back from the ssserver #1408

jackli0127 opened this issue Jan 13, 2024 · 4 comments

Comments

@jackli0127
Copy link

image

shadowsocks-rust verison: v.1.17.1
OS version: Centos 9 Stream or Ubuntu 20.4

We upgraded our Shadowsocks from shadowsocks-libev 3.3.4 on CentOS 7 to shadowsocks-rust 1.17.1 on CentOS Stream 9 and Ubuntu 20.4, and then I found a large number of errors in the ssserver log as attached, which resulted in the loss of video during our users' Zoom meeting.

If I deploy shadowsocks-libev 3.3.5 on CentOS Stream 9 or Ubuntu 20.04, the same error messages are found. However, if I deploy shadowsocks-libev 3.3.4, both the log messages and our meeting video return to normal.

Any ideas on how to resolve the problem? Thanks!

@database64128
Copy link
Contributor

It seems like an MTU misconfiguration somewhere in your network. You didn't discover the issue with shadowsocks-libev because it didn't bother with disabling IP fragmentation.

@jackli0127
Copy link
Author

However, even when I configure a smaller MTU value on the network interface or in the ss-server parameters (shadowsocks-libev 3.3.5), I still encounter this error message.

The error only occurs when using the UDP protocol, and even UDP packets of 500 bytes fail to send

@zonyitoo
Copy link
Collaborator

EMSGSIZE should only occurs when packet size is greater than MTU. But interestingly that those ~500 bytes packets still fails.

The error was reported here:

warn!(
"udp failed to send back {} bytes to client {}, from target {}, error: {}",
data.len(),
self.peer_addr,
addr,
err
);

And you may also try to comment these lines and see if EMSGSIZE goes away:

if let Err(err) = set_disable_ip_fragmentation(addr_family, &socket) {
warn!("failed to disable IP fragmentation, error: {}", err);
}

@nasaboy
Copy link

nasaboy commented Mar 26, 2024

I've also encountered this error, but it doesn't seem to have much impact

2024-03-26T17:14:38.953329076+08:00  WARN tokio-runtime-worker ThreadId(02) shadowsocks_service::server::udprelay: udp failed to send back 1455 bytes to client [::ffff:223.*.*.*]:6753, from target 122.10.255.159:8130, error: Message too long (os error 90)
2024-03-26T17:18:19.833890636+08:00  WARN tokio-runtime-worker ThreadId(03) shadowsocks_service::server::udprelay: udp failed to send back 1455 bytes to client [::ffff:223.*.*.*]:14735, from target 122.10.255.159:8130, error: Message too long (os error 90)
2024-03-26T17:19:53.901777502+08:00  WARN tokio-runtime-worker ThreadId(03) shadowsocks_service::server::udprelay: udp failed to send back 1455 bytes to client [::ffff:223.*.*.*]:14735, from target 122.10.255.159:8130, error: Message too long (os error 90)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants