Delta contrib: a split classloader is reported as a Comet version mismatch
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- Medio día
- Aptitud para principiantes
- 62/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- scala, spark
Línea de trabajo
Start in spark/src/main/scala/org/apache/comet/rules/CometScanContrib.scala, in firstClaimFrom, where every LinkageError gets the same version-skew warning. Check ContribServices for the similar provider-loading message. Done means NoClassDefFoundError and ClassNotFoundException produce a message naming the missing class and suggesting --packages or --jars, while other linkage errors keep the existing wording. Also update docs/source/user-guide/latest/delta.md to require all jars on the same classloader.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
When delta-spark is loaded with --packages while Comet and the Delta contrib jar are on extraClassPath, Delta ends up in a child classloader that Comet's classes can't see. The contrib's scan hook then throws NoClassDefFoundError: org/apache/spark/sql/delta/DeltaParquetFileFormat. CometScanContrib.firstClaimFrom catches every LinkageError the same way and logs:
Contrib scan handler ... failed with java.lang.NoClassDefFoundError, indicating it was built
against a different version of Comet's internals than is on the classpath now; declining it
and continuing with Comet's built-in handling
The query then runs on Spark's reader. The jars all match, so the message names the wrong cause, and since the fallback is silent, that log line is the only hint the user gets.
Found in #5882 (comment).
Steps to reproduce
- Spark 4.1.3, Comet 1.2.0 (
comet-spark-spark4.1_2.13) andcomet-contrib-delta-sparkonspark.driver.extraClassPathandspark.executor.extraClassPath. - Add delta-spark 4.3.1 with
--packages io.delta:delta-spark_2.13:4.3.1, plus the usual Delta session extension and catalog settings andspark.comet.scan.delta.enabled=true. - Read any Delta table. The plan has no
CometDeltaNativeScan, and the driver log shows the warning above.
With all jars on extraClassPath the same read plans CometDeltaNativeScan.
Expected behavior
- For
NoClassDefFoundErrororClassNotFoundException, the warning names the missing class and says it isn't visible from the classloader that loaded Comet, mentioning--packagesor--jarsas the likely cause. The version-skew wording stays forNoSuchMethodError,AbstractMethodErrorand the other linkage errors, where it fits. - The Delta user guide (
docs/source/user-guide/latest/delta.md) states that Comet, the contrib jar anddelta-sparkhave to be on the same classloader, for example all onspark.{driver,executor}.extraClassPath. It currently only says the contrib jar goes "on the classpath, alongsidedelta-spark".
Additional context
The catch is in spark/src/main/scala/org/apache/comet/rules/CometScanContrib.scala (firstClaimFrom). ContribServices has similar "built against a different Comet or Spark version" wording for provider loading failures, which may deserve the same split.
- Lenguaje dominante
- Scala
- Estrellas
- 1.3k
- Forks
- 414
- Merge medio
- 3 d 5 h
- PR fusionados (30 d)
- 210
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/datafusion-comet
-
requires-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/datafusion-comet#7583 ·
Los mantenedores suelen responder en 2 días
-
bug priority:medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
apache/datafusion-comet#7559 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
area:writer bug priority:low
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/datafusion-comet#7558 ·
Los mantenedores suelen responder en 2 días
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/datafusion-comet#7557 ·
Los mantenedores suelen responder en 2 días
-
`rand` and `randn` with an integer seed fall back to Spark without a fallback reasonPosiblemente ocupada @galaxytemple la tomó hace 3 días. Abiertorequires-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/datafusion-comet#7479 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 2 días
Todos los issues de apache/datafusion-comet
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
chipsalliance/rocket-chip#3845 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
Los mantenedores suelen responder en 13 días
-
gesticulate: the `FastInfoset` suffix is written `fast-infoset`, not the registered `fastinfoset`Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
propensive/soundness#2437 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ergoplatform/ergo#2918 ·
Los mantenedores suelen responder en 3 días