Delta contrib: a split classloader is reported as a Comet version mismatch
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- Nửa ngày
- Mức phù hợp với người mới
- 62/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- scala, spark
- Lĩnh vực
- data-engineering, documentation
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Scala
- Star
- 1.3k
- Fork
- 414
- Merge trung bình
- 3 ngày 5 giờ
- Pull request đã merge (30 ngày)
- 210
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/datafusion-comet
-
requires-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/datafusion-comet#7583 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
bug priority:medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
apache/datafusion-comet#7559 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
area:writer bug priority:low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/datafusion-comet#7558 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/datafusion-comet#7557 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
`rand` and `randn` with an integer seed fall back to Spark without a fallback reasonCó thể đã có người làm @galaxytemple đã nhận 3 ngày trước. Đang mởrequires-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/datafusion-comet#7479 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của apache/datafusion-comet
Issue tương tự
-
A-api C-bug S-ready-for-human
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
ergoplatform/ergo#2932 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
lichess-org/lila#22454 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
chipsalliance/rocket-chip#3845 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 13 ngày