[ 
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)

Reply via email to