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

服务端升级到shadowsocks-rust v1.15.0之后,客户端shadowsocks-android v5.3.1-preview不能使用 #2966

Closed
qwerttvv opened this issue Dec 17, 2022 · 18 comments

Comments

@qwerttvv
Copy link

ss用的是chacha20-ietf-poly1305,sip003是cloak,没敢裸连测试。其他不变,之前服务端版本v1.14.3没有使用问题。

另外目前服务端v1.15.0,客户端shadowsocks-rust v1.15.0-alpha.9,其它不变,使用是正常的

@qwerttvv qwerttvv added the bug label Dec 17, 2022
@madeye
Copy link
Contributor

madeye commented Dec 17, 2022

It should be a bug in the latest shadowsocks-rust. I saw a segfault of ss-rust on the server after enabling plugin. @zonyitoo

@zonyitoo
Copy link

zonyitoo commented Dec 17, 2022

That was strange. How can I reproduce? Could you provide more detail about sslocal? @qwerttvv

I saw a segfault of ss-rust on the server after enabling plugin.

Hmm, please provide more detail about ssserver, too.

v1.15.0 is nearly identical to v1.15.0-alpha.9.

@zonyitoo
Copy link

https://github.com/shadowsocks/shadowsocks-rust/actions/runs/3717954160/jobs/6305787076

It probably related to some bugs introduced from the latest nightly Rust. Please change toolchain to stable Rust. shadowsocks-rust is able to be compiled with stable Rust since 1.64.

@zonyitoo
Copy link

@dev4u Please remove features armv8 neon and use stable Rust toolchain.

zonyitoo added a commit to shadowsocks/shadowsocks-rust that referenced this issue Dec 17, 2022
zonyitoo added a commit to shadowsocks/shadowsocks-rust that referenced this issue Dec 17, 2022
@qwerttvv
Copy link
Author

客户端v1.15.0-alpha.9配合服务端v1.14.3或v1.15.0都是可用的…原因未知,我只是编译路由器固件时用了新版客户端……

服务端升级到v1.15.1之后,客户端shadowsocks-android v5.3.1-preview可以使用了

@zonyitoo
Copy link

Good. shadowsocks-android should also upgrade the build script. ping @dev4u

@Mygod
Copy link
Contributor

Mygod commented Dec 17, 2022

It probably related to some bugs introduced from the latest nightly Rust. Please change toolchain to stable Rust. shadowsocks-rust is able to be compiled with stable Rust since 1.64.

It's about time. 👍

@dev4u
Copy link
Contributor

dev4u commented Dec 19, 2022

Good. shadowsocks-android should also upgrade the build script. ping @dev4u

@zonyitoo 不好意思,前几天身体不舒服。我整理一下PR上去。

dev4u added a commit to dev4u/shadowsocks-android that referenced this issue Dec 19, 2022
- submodule shadowsocks-rust
- build scripts as suggested: shadowsocks#2966 (comment)
dev4u added a commit to dev4u/shadowsocks-android that referenced this issue Dec 19, 2022
- submodule shadowsocks-rust
- build scripts as suggested: shadowsocks#2966 (comment)
madeye pushed a commit that referenced this issue Dec 20, 2022
- submodule shadowsocks-rust
- build scripts as suggested: #2966 (comment)
@Mygod
Copy link
Contributor

Mygod commented Dec 20, 2022

@zonyitoo So armv8 neon is removed for now? Do you have a link to the rust stabilization timeline of these features? Not sure why they need to take such a long time to stabilize such a trivial feature.

@zonyitoo
Copy link

@Mygod
Copy link
Contributor

Mygod commented Dec 20, 2022

So they would be enabled already? And there had been no reason to build shadowsocks-rust on nightly since this February?

@zonyitoo
Copy link

zonyitoo commented Dec 20, 2022

Rust-Crypto's libraries removes armv8 and neon since v0.10: shadowsocks/shadowsocks-crypto@bae4a37 .

armv8 = ["aes-gcm/armv8", "aes/armv8", "aes-gcm-siv/armv8"]
neon = ["chacha20/neon"]

The ghash crate removes armv8 since this commit: RustCrypto/universal-hashes@636772c .

chacha20 still require neon feature to be set explicitly: RustCrypto/stream-ciphers@6217574 .

aes removes armv8 right after aarch64 intrinsic stablized.

I couldn't remember why we still need nightly after Feb. :(

@Mygod
Copy link
Contributor

Mygod commented Dec 20, 2022

Shouldn't the neon flag be kept/enabled then?

@zonyitoo
Copy link

Shouldn't the neon flag be kept/enabled then?

Yes, I think we should. NEON is required for standard ARMv8 implementations: https://developer.arm.com/documentation/den0024/a/AArch64-Floating-point-and-NEON .

But why they still kept the neon feature? I should open an issue.

@zonyitoo
Copy link

Well, they know: RustCrypto/stream-ciphers#310 . Maybe the only reason is for keeping MSRV unchanged in the current version.

@Mygod
Copy link
Contributor

Mygod commented Dec 20, 2022

Great. So let's add it (back) to shadowsocks-crypto?

zonyitoo added a commit to shadowsocks/shadowsocks-crypto that referenced this issue Dec 20, 2022
@zonyitoo
Copy link

zonyitoo commented Dec 20, 2022

chacha20 with neon didn't release yet. I will keep my eyes on them.

@Mygod
Copy link
Contributor

Mygod commented Dec 20, 2022

Maybe we could send them a friendly reminder. :)

EDIT: Done.

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

No branches or pull requests

5 participants