Skip to content

Conversation

@onebeastchris
Copy link
Member

@onebeastchris onebeastchris commented May 8, 2025

Should fix #5467, fix #5468 (the actual bungee/velocity issues reported on there; the issue on geyser-spigot by the original author seems completely unrelated), fix #5482, fix #5510

These builds will also require using the latest BungeeCord & Velocity builds to properly work!

You can download the new builds here:

TODO:

  • deal with io_uring not being experimental anymore

@onebeastchris onebeastchris added the PR: Needs Testing When a PR needs testing but is currently not under review label May 8, 2025
@MatinHQ
Copy link

MatinHQ commented May 10, 2025

Any ETA when it's get merge into main branch?

@onebeastchris
Copy link
Member Author

As soon as enough people report that it's working! So far, we've had no responses.

@MatinHQ
Copy link

MatinHQ commented May 10, 2025

As soon as enough people report that it's working! So far, we've had no responses.

[00:52:24 ERROR] [/188.214.172.18:18460] Error while ticking RakSessionCodec state=CONNECTED channelActive=true
java.lang.OutOfMemoryError: Cannot reserve 131072 bytes of direct buffer memory (allocated: 4294886160, limit: 4294967296)
        at java.nio.Bits.reserveMemory(Bits.java:178) ~[?:?]
        at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:111) ~[?:?]
        at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:360) ~[?:?]
        at io.netty.buffer.UnpooledDirectByteBuf.allocateDirect(UnpooledDirectByteBuf.java:104) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.UnpooledDirectByteBuf.<init>(UnpooledDirectByteBuf.java:64) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.UnpooledUnsafeDirectByteBuf.<init>(UnpooledUnsafeDirectByteBuf.java:41) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.UnsafeByteBufUtil.newUnsafeDirectByteBuf(UnsafeByteBufUtil.java:687) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AdaptiveByteBufAllocator$DirectChunkAllocator.allocate(AdaptiveByteBufAllocator.java:118) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AdaptivePoolingAllocator$Magazine.newChunkAllocation(AdaptivePoolingAllocator.java:763) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AdaptivePoolingAllocator$Magazine.allocate(AdaptivePoolingAllocator.java:688) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AdaptivePoolingAllocator$Magazine.tryAllocate(AdaptivePoolingAllocator.java:567) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AdaptivePoolingAllocator.allocate(AdaptivePoolingAllocator.java:234) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AdaptivePoolingAllocator.allocate(AdaptivePoolingAllocator.java:220) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AdaptiveByteBufAllocator.newDirectBuffer(AdaptiveByteBufAllocator.java:70) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:188) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:179) ~[Geyser-Standalone.jar:?]
        at io.netty.buffer.AbstractByteBufAllocator.ioBuffer(AbstractByteBufAllocator.java:140) ~[Geyser-Standalone.jar:?]
        at org.cloudburstmc.netty.handler.codec.raknet.common.RakSessionCodec.onTick(RakSessionCodec.java:450) ~[Geyser-Standalone.jar:?]
        at org.cloudburstmc.netty.handler.codec.raknet.common.RakSessionCodec.tryTick(RakSessionCodec.java:405) ~[Geyser-Standalone.jar:?]
        at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) ~[Geyser-Standalone.jar:?]
        at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:162) ~[Geyser-Standalone.jar:?]
        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148) ~[Geyser-Standalone.jar:?]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:141) ~[Geyser-Standalone.jar:?]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507) ~[Geyser-Standalone.jar:?]
        at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180) ~[Geyser-Standalone.jar:?]
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073) ~[Geyser-Standalone.jar:?]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[Geyser-Standalone.jar:?]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[Geyser-Standalone.jar:?]
        at java.lang.Thread.run(Thread.java:1583) [?:?]
[00:52:25 ERROR] [/5.125.216.210:55858] Error while ticking RakSessionCodec state=CONNECTED channelActive=true

Tested that on geyser-standalone and it almost allocated 9GB of ram in 5 minutes with 30 players connected and XMX was 4GB

@onebeastchris
Copy link
Member Author

Can you provide a geyser dump?

@onebeastchris onebeastchris mentioned this pull request May 11, 2025
@onebeastchris
Copy link
Member Author

@MatinHQ should be resolved, thanks for the report.
For other platforms:

@MatinHQ
Copy link

MatinHQ commented May 12, 2025

I tested latest commit it's much better but problem still exist I messaged you on discord for geyser dump for privacy reasons I can't share it here

@astirling
Copy link

This build does not have the LocalServerChannel error, or any other error on load, that I reported

BungeeCord: b1948

In order to support io_uring transport after the 4.2 update, we'd need to separately handle 4.1 and 4.2 event loop group creation
@onebeastchris onebeastchris force-pushed the direct-connection-velocity-netty4.2 branch from bce2866 to 5315749 Compare May 21, 2025 17:19
@onebeastchris onebeastchris merged commit 7c47459 into master May 22, 2025
3 checks passed
@onebeastchris onebeastchris deleted the direct-connection-velocity-netty4.2 branch June 21, 2025 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Needs Testing When a PR needs testing but is currently not under review

Projects

None yet

5 participants