Skip to content

Test failures due to RLIMIT_MEMLOCK #3120

@SamBarker

Description

@SamBarker

@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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/investigationInvestigate something & get a conclusiontestRelates to testingtriaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions