Use pooled netty allocator instead of default adaptive allocator (#1570)

This commit is contained in:
chris
2025-05-08 12:30:55 +02:00
committed by GitHub
parent 063065b21a
commit 1ad1f3b215

View File

@@ -29,6 +29,7 @@ import com.velocitypowered.proxy.network.netty.SeparatePoolInetNameResolver;
import com.velocitypowered.proxy.protocol.netty.GameSpyQueryHandler; import com.velocitypowered.proxy.protocol.netty.GameSpyQueryHandler;
import io.netty.bootstrap.Bootstrap; import io.netty.bootstrap.Bootstrap;
import io.netty.bootstrap.ServerBootstrap; import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.PooledByteBufAllocator;
import io.netty.channel.Channel; import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelFutureListener;
@@ -116,6 +117,11 @@ public final class ConnectionManager {
bootstrap.group(this.bossGroup, this.workerGroup); bootstrap.group(this.bossGroup, this.workerGroup);
} }
// Restore allocator used before Netty 4.2 due to oom issues with the adaptive allocator
if (System.getProperty("io.netty.allocator.type") == null) {
bootstrap.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
}
final int binds = server.getConfiguration().isEnableReusePort() final int binds = server.getConfiguration().isEnableReusePort()
? ((MultithreadEventExecutorGroup) this.workerGroup).executorCount() : 1; ? ((MultithreadEventExecutorGroup) this.workerGroup).executorCount() : 1;