Repository navigation
[SPARK-60987][INFRA] Fix NoClassDefFoundError when running Kafka benchmarks in the benchmark workflow - #60161
Closed
dongjoon-hyun wants to merge 1 commit into
Closed
dongjoon-hyun wants to merge 1 commit into
dongjoon-hyun wants to merge 1 commit into
Conversation
…nchmarks in the benchmark workflow
Member
Author
|
Could you review this PR, @HyukjinKwon ? |
HyukjinKwon
approved these changes
Nov 6, 2026
Member
Author
|
Merge Summary:
Posted by |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
This PR adds the Kafka-related jars to the
--jarsoption ofspark-submitin theRun benchmarksstep of.github/workflows/benchmark.yml:spark-*kafka-0-10*-SNAPSHOT.jar(the main jars ofspark-sql-kafka-0-10andspark-token-provider-kafka-0-10, built byTest/package)curator-testis handled):kafka*.jar(kafka-clients,kafka_2.13,kafka-server,kafka-metadata,kafka-raft,kafka-storage, ...),metrics-core-2.2.0.jar,jopt-simple-*,scala-java8-compat_*,scala-logging_*,jackson-dataformat-csv-*, andcommons-pool2-*.-sourcesand-javadocjars are excluded.The list was derived from
sql-kafka-0-10/Test/dependencyClasspath, keeping only the jars that are not part of the Spark distribution.Why are the changes needed?
RTMKafkaKafkaBenchmarkand the otherRTMKafka*Benchmarkclasses cannot run in the benchmark workflow. Their classes are discovered through*-SNAPSHOT-tests.jar, butkafka-clientsand the other Kafka dependencies are neither in--jarsnor in the Spark distribution, so the JVM fails while loading the class:Because
SPARK_BENCHMARK_FAILFASTdefaults totrue, this fails the whole split. For example, the "Run benchmarks: * (JDK 21, Scala 2.13, 1 out of 64 splits)" job fails this way:Does this PR introduce any user-facing change?
No. This only changes the GitHub Actions benchmark workflow.
How was this patch tested?
Manually verified that each
findpattern matches the required jars (e.g.,kafka-clients-3.9.2.jar,kafka_2.13-3.9.2.jar,spark-sql-kafka-0-10_2.13-5.0.0-SNAPSHOT.jar) against the local build output and Maven repository.The benchmark itself needs to be verified with the
Run benchmarksworkflow in GitHub Actions onorg.apache.spark.sql.kafka010.benchmark.RTMKafkaKafkaBenchmark.Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Sonnet 5.5