@SamBarker just wanted to let you know I still hit the memlock limit even on a machine with only 4 vCPUs (dedicated Hetzner CCX23).
(May or may not be related to #3103?)
[ERROR] Tests run: 6, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 28.38 s <<< FAILURE! -- in io.kroxylicious.proxy.filter.authorization.AddPartitionsToTxnAuthzIT
[ERROR] io.kroxylicious.proxy.filter.authorization.AddPartitionsToTxnAuthzIT.shouldEnforceAccessToTopics(VersionSpecificVerification)[4] -- Time elapsed: 3.110 s <<< ERROR!
java.lang.IllegalStateException: failed to create a child event loop
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:92)
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:64)
at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:52)
at io.netty.channel.MultiThreadIoEventLoopGroup.<init>(MultiThreadIoEventLoopGroup.java:91)
at io.netty.channel.MultiThreadIoEventLoopGroup.<init>(MultiThreadIoEventLoopGroup.java:54)
at io.kroxylicious.test.client.EventGroupConfig.newGroup(EventGroupConfig.java:71)
at io.kroxylicious.test.client.EventGroupConfig.newBossGroup(EventGroupConfig.java:79)
at io.kroxylicious.test.client.KafkaClient.<init>(KafkaClient.java:85)
at io.kroxylicious.test.client.KafkaClient.<init>(KafkaClient.java:70)
at io.kroxylicious.proxy.filter.authorization.AuthzIT.client(AuthzIT.java:490)
at io.kroxylicious.proxy.filter.authorization.BaseClusterFixture.lambda$authenticatedClients$0(BaseClusterFixture.java:44)
...
at io.kroxylicious.proxy.filter.authorization.BaseClusterFixture.authenticatedClients(BaseClusterFixture.java:42)
at io.kroxylicious.proxy.filter.authorization.AuthzIT.responsesByUser(AuthzIT.java:572)
at io.kroxylicious.proxy.filter.authorization.AuthzIT.verifyApiEqivalence(AuthzIT.java:623)
at io.kroxylicious.proxy.filter.authorization.AuthzIT$Equivalence.verifyBehaviour(AuthzIT.java:251)
at io.kroxylicious.proxy.filter.authorization.AddPartitionsToTxnAuthzIT.shouldEnforceAccessToTopics(AddPartitionsToTxnAuthzIT.java:159)
...
Caused by: java.lang.RuntimeException: failed to allocate memory for io_uring ring; try raising memlock limit (see getrlimit(RLIMIT_MEMLOCK, ...) or ulimit -l): Cannot allocate memory
at io.netty.channel.uring.Native.ioUringSetup(Native Method)
at io.netty.channel.uring.Native.createRingBuffer(Native.java:391)
at io.netty.channel.uring.IoUringIoHandler.<init>(IoUringIoHandler.java:106)
at io.netty.channel.uring.IoUringIoHandler$1.newHandler(IoUringIoHandler.java:697)
at io.netty.channel.SingleThreadIoEventLoop.<init>(SingleThreadIoEventLoop.java:105)
at io.netty.channel.MultiThreadIoEventLoopGroup.newChild(MultiThreadIoEventLoopGroup.java:212)
at io.netty.channel.MultiThreadIoEventLoopGroup.newChild(MultiThreadIoEventLoopGroup.java:198)
at io.netty.channel.MultiThreadIoEventLoopGroup.newChild(MultiThreadIoEventLoopGroup.java:35)
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:88)
... 65 more
2026-01-08_12-02-05_error.log
Originally posted by @piotrpdev in #2802
This is different to the original issue with IOUringIT as this is failure is setting up the test clients (where IO Uring is entirely optional and far less interesting). The client setup code already configures a single thread, so suggests we might be leaking something or parallelising too aggressively. This issue is to find the root cause and see what mitigations we can apply in the test code.
Originally posted by @piotrpdev in #2802
This is different to the original issue with IOUringIT as this is failure is setting up the test clients (where IO Uring is entirely optional and far less interesting). The client setup code already configures a single thread, so suggests we might be leaking something or parallelising too aggressively. This issue is to find the root cause and see what mitigations we can apply in the test code.