Skip to content

KafkaClientProduceFactory.encodeCrc fails with negative newLimit #1315

@bmaidics

Description

@bmaidics

To Reproduce
Steps to reproduce the behavior:

  1. Use emqx benchmark tool with Zilla mqtt-kafka broker example
  2. ./emqtt_bench pub -h localhost -p 1883 -q 0 -c 100 -I 10 -t bench/%i -L 100000
  3. You might need to execute the same command 10+ times to reproduce the crash
java.base/java.nio.Buffer.createLimitException(Buffer.java:395)
java.base/java.nio.Buffer.limit(Buffer.java:369)
java.base/java.nio.ByteBuffer.limit(ByteBuffer.java:1529)
java.base/java.nio.MappedByteBuffer.limit(MappedByteBuffer.java:330)
java.base/java.nio.MappedByteBuffer.limit(MappedByteBuffer.java:73)
io.aklivity.zilla.runtime.binding.kafka/io.aklivity.zilla.runtime.binding.kafka.internal.stream.KafkaClientProduceFactory$KafkaProduceStream$KafkaProduceClient.encodeCrc(KafkaClientProduceFactory.java:2014)
io.aklivity.zilla.runtime.binding.kafka/io.aklivity.zilla.runtime.binding.kafka.internal.stream.KafkaClientProduceFactory$KafkaProduceStream$KafkaProduceClient.doEncodeProduceRequest(KafkaClientProduceFactory.java:1939)
io.aklivity.zilla.runtime.binding.kafka/io.aklivity.zilla.runtime.binding.kafka.internal.stream.KafkaClientProduceFactory$KafkaProduceStream$KafkaProduceClient.doEncodeProduceRequestIfNecessary(KafkaClientProduceFactory.java:1858)
io.aklivity.zilla.runtime.binding.kafka/io.aklivity.zilla.runtime.binding.kafka.internal.stream.KafkaClientProduceFactory$KafkaProduceStream$KafkaProduceClient.doEncodeRequestIfNecessary(KafkaClientProduceFactory.java:1848)
io.aklivity.zilla.runtime.binding.kafka/io.aklivity.zilla.runtime.binding.kafka.internal.stream.KafkaClientProduceFactory$KafkaProduceStream$KafkaProduceClient.onNetworkWindow(KafkaClientProduceFactory.java:1466)
io.aklivity.zilla.runtime.binding.kafka/io.aklivity.zilla.runtime.binding.kafka.internal.stream.KafkaClientProduceFactory$KafkaProduceStream$KafkaProduceClient.onNetwork(KafkaClientProduceFactory.java:1305)
io.aklivity.zilla.runtime.engine/io.aklivity.zilla.runtime.engine.internal.registry.EngineWorker.handleReadInitial(EngineWorker.java:1300)
io.aklivity.zilla.runtime.engine/io.aklivity.zilla.runtime.engine.internal.registry.EngineWorker.handleRead(EngineWorker.java:1235)
io.aklivity.zilla.runtime.engine/io.aklivity.zilla.runtime.engine.internal.concurent.ManyToOneRingBuffer.read(ManyToOneRingBuffer.java:229)
io.aklivity.zilla.runtime.engine/io.aklivity.zilla.runtime.engine.internal.registry.EngineWorker.doWork(EngineWorker.java:843)
org.agrona.core/org.agrona.concurrent.AgentRunner.doWork(AgentRunner.java:304)
org.agrona.core/org.agrona.concurrent.AgentRunner.workLoop(AgentRunner.java:296)
org.agrona.core/org.agrona.concurrent.AgentRunner.run(AgentRunner.java:162)
java.base/java.lang.Thread.run(Thread.java:833)
java.lang.IllegalArgumentException: newLimit < 0: (-1763102846 < 0)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions