Mickael Maison created KAFKA-17730:
--------------------------------------

             Summary: ReplicaFetcherThreadBenchmark is broken
                 Key: KAFKA-17730
                 URL: https://issues.apache.org/jira/browse/KAFKA-17730
             Project: Kafka
          Issue Type: Bug
            Reporter: Mickael Maison


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)

Reply via email to