-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
added io_uring support #3646
added io_uring support #3646
Conversation
In other PRs, done to PandaSpigot and Paper, it was mentioned that compression wouldn't work together with this. Hopefully netty works in a way our native decompress doesn't attempt to do it in the place where io_uring is doing its stuff Related to security concerns in those PRs, the security problem is apparantly related to unsafe code using io_uring. Whether bungee or paper are using io_uring, we do not contribute unsafe code, so I do not think that security is a reason to not accept this PR. |
You'd think it'd be immediately noticeable if compression didn't work... |
yes should be noticeable lmao |
In these PRs it's mentioned that compressed packets can't be decoded. I would also check if it's safe to use io_uring in terms of exploits etc. |
i tested all cases and got no issues or exception everything was stable for me in any case |
what you mean with exploits? |
Chunk packets are compressed, so if this was the case (and assuming Outfluencer tested joining a normal Spigot server with default config) this PR just wouldn't work. Sounds like an issue with those other PRs, which is irrelevant |
I did |
I just looked some topics up, so I'm curious if it's even relevant in our scenario. If there are no problems with packets etc. I volunteer to test it of course. :) |
When using io_uring on bukkit side too, I'm getting disconnected with: Exception Connecting: DecoderException : net.md_5.bungee.protocol.BadPacketException: Uncompressed size 2 is less than threshold 512 @ io.netty.handler.codec.MessageToMessageDecoder:98 |
irrelevant for us, thats a problem of the vanilla impl and not a problem of bungeecord Do you create a custom spigot/bukkit server to test it there? |
That's right, I used this implementation: hpfxd/PandaSpigot#129 or PaperMC/Paper#9141 |
yes because the panda and paper spigot impls are broken, that has nothing to do with bungeecord at all, please tell us if you find any issues with this enabled and normal software like (vanilla/spigot/paper) |
I don't see any issues, but I don't use pure BungeeCord. Some benchmarks would be awesome, I'm not sure if it improves performance. |
I think using this option makes the server vulnerable to some kind of attacks, probably some packet spam and the attacked netty thread is being lagged out. |
Just seeing that in the log doesn't make a server vulnerable. |
Dropping all players from this netty thread (I believe) I think it means that the server is vulnerable. 😕 |
You can also spam the netty thread with nio or epoll |
I think it's not so vulnerable, I didn't see that with nio/epoll. Spamming the thread is only my guess. My guess is the netty thread is being lagged out earlier than it would be in nio/epoll. |
Packet limiter didn't fix the issue. |
Is it unfixable? |
io_uring is still experimental, but its now possible to activate it with the -Dbungee.io_uring=true argument
Maybe someone would like to test io_uring for performace or any issues