[ https://issues.apache.org/jira/browse/KAFKA-17730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chia-Ping Tsai resolved KAFKA-17730. ------------------------------------ Fix Version/s: 4.0.0 Resolution: Fixed trunk: https://github.com/apache/kafka/commit/7275dc129e25c08abc77187ba2a9b144a60c9d92 4.0: https://github.com/chia7712/kafka/commit/95ba356dd759ae6d771e59b701cb255e3dd06ba2 > ReplicaFetcherThreadBenchmark is broken > --------------------------------------- > > Key: KAFKA-17730 > URL: https://issues.apache.org/jira/browse/KAFKA-17730 > Project: Kafka > Issue Type: Bug > Reporter: Mickael Maison > Assignee: PoAn Yang > Priority: Major > Fix For: 4.0.0 > > > Output running this benchmark: > {noformat} > ./jmh.sh ReplicaFetcherThreadBenchmark > running gradlew :jmh-benchmarks:clean :jmh-benchmarks:shadowJar > > Configure project : > Starting build with version 4.0.0-SNAPSHOT (commit id 15594bbb) using Gradle > 8.10, Java 17 and Scala 2.13.15 > Build properties: ignoreFailures=false, maxParallelForks=12, > maxScalacThreads=8, maxTestRetries=0 > Deprecated Gradle features were used in this build, making it incompatible > with Gradle 9.0. > You can use '--warning-mode all' to show the individual deprecation warnings > and determine if they come from your own scripts or plugins. > For more on this, please refer to > https://docs.gradle.org/8.10/userguide/command_line_interface.html#sec:command_line_warnings > in the Gradle documentation. > BUILD SUCCESSFUL in 31s > 96 actionable tasks: 22 executed, 74 up-to-date > gradle build done > running JMH with args: ReplicaFetcherThreadBenchmark > # JMH version: 1.37 > # VM version: JDK 17.0.9, OpenJDK 64-Bit Server VM, 17.0.9+9 > # VM invoker: /Users/mickael/.sdkman/candidates/java/17.0.9-tem/bin/java > # VM options: <none> > # Blackhole mode: compiler (auto-detected, use > -Djmh.blackhole.autoDetect=false to disable) > # Warmup: 5 iterations, 10 s each > # Measurement: 15 iterations, 10 s each > # Timeout: 10 min per iteration > # Threads: 1 thread, will synchronize iterations > # Benchmark mode: Average time, time/op > # Benchmark: > org.apache.kafka.jmh.fetcher.ReplicaFetcherThreadBenchmark.testFetcher > # Parameters: (partitionCount = 100) > # Run progress: 0.00% complete, ETA 00:13:20 > # Fork: 1 of 1 > # Warmup Iteration 1: [2024-10-08 17:32:04,626] WARN The new 'consumer' > rebalance protocol is only supported in KRaft cluster with the new group > coordinator. (kafka.server.KafkaConfig:70) > <failure> > org.apache.kafka.common.errors.NotLeaderOrFollowerException: Error while > fetching partition state for topic-30 > <JMH had finished, but forked VM did not exit, are there stray running > threads? Waiting 24 seconds more...> > Non-finished threads: > Thread[ExpirationReaper--1-ElectLeader,5,main] > at java.base@17.0.9/jdk.internal.misc.Unsafe.park(Native Method) > at > java.base@17.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) > at > java.base@17.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672) > at > java.base@17.0.9/java.util.concurrent.DelayQueue.poll(DelayQueue.java:265) > at > app//org.apache.kafka.server.util.timer.SystemTimer.advanceClock(SystemTimer.java:90) > at > app//kafka.server.DelayedOperationPurgatory.advanceClock(DelayedOperation.scala:418) > at > app//kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper.doWork(DelayedOperation.scala:444) > at > app//org.apache.kafka.server.util.ShutdownableThread.run(ShutdownableThread.java:136) > Thread[ExpirationReaper--1-RemoteFetch,5,main] > at java.base@17.0.9/jdk.internal.misc.Unsafe.park(Native Method) > at > java.base@17.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) > at > java.base@17.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672) > at > java.base@17.0.9/java.util.concurrent.DelayQueue.poll(DelayQueue.java:265) > at > app//org.apache.kafka.server.util.timer.SystemTimer.advanceClock(SystemTimer.java:90) > at > app//kafka.server.DelayedOperationPurgatory.advanceClock(DelayedOperation.scala:418) > at > app//kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper.doWork(DelayedOperation.scala:444) > at > app//org.apache.kafka.server.util.ShutdownableThread.run(ShutdownableThread.java:136) > Thread[ExpirationReaper--1-Fetch,5,main] > at java.base@17.0.9/jdk.internal.misc.Unsafe.park(Native Method) > at > java.base@17.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) > at > java.base@17.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672) > at > java.base@17.0.9/java.util.concurrent.DelayQueue.poll(DelayQueue.java:265) > at > app//org.apache.kafka.server.util.timer.SystemTimer.advanceClock(SystemTimer.java:90) > at > app//kafka.server.DelayedOperationPurgatory.advanceClock(DelayedOperation.scala:418) > at > app//kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper.doWork(DelayedOperation.scala:444) > at > app//org.apache.kafka.server.util.ShutdownableThread.run(ShutdownableThread.java:136) > Thread[ExpirationReaper--1-DeleteRecords,5,main] > at java.base@17.0.9/jdk.internal.misc.Unsafe.park(Native Method) > at > java.base@17.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) > at > java.base@17.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672) > at > java.base@17.0.9/java.util.concurrent.DelayQueue.poll(DelayQueue.java:265) > at > app//org.apache.kafka.server.util.timer.SystemTimer.advanceClock(SystemTimer.java:90) > at > app//kafka.server.DelayedOperationPurgatory.advanceClock(DelayedOperation.scala:418) > at > app//kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper.doWork(DelayedOperation.scala:444) > at > app//org.apache.kafka.server.util.ShutdownableThread.run(ShutdownableThread.java:136) > Thread[ExpirationReaper--1-RemoteListOffsets,5,main] > at java.base@17.0.9/jdk.internal.misc.Unsafe.park(Native Method) > at > java.base@17.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) > at > java.base@17.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672) > at > java.base@17.0.9/java.util.concurrent.DelayQueue.poll(DelayQueue.java:265) > at > app//org.apache.kafka.server.util.timer.SystemTimer.advanceClock(SystemTimer.java:90) > at > app//kafka.server.DelayedOperationPurgatory.advanceClock(DelayedOperation.scala:418) > at > app//kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper.doWork(DelayedOperation.scala:444) > at > app//org.apache.kafka.server.util.ShutdownableThread.run(ShutdownableThread.java:136) > Thread[DestroyJavaVM,5,main] > Thread[ExpirationReaper--1-Produce,5,main] > at java.base@17.0.9/jdk.internal.misc.Unsafe.park(Native Method) > at > java.base@17.0.9/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) > at > java.base@17.0.9/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672) > at > java.base@17.0.9/java.util.concurrent.DelayQueue.poll(DelayQueue.java:265) > at > app//org.apache.kafka.server.util.timer.SystemTimer.advanceClock(SystemTimer.java:90) > at > app//kafka.server.DelayedOperationPurgatory.advanceClock(DelayedOperation.scala:418) > at > app//kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper.doWork(DelayedOperation.scala:444) > at > app//org.apache.kafka.server.util.ShutdownableThread.run(ShutdownableThread.java:136) > JMH benchmarks done > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)