Native Iceberg write silently falls back on Iceberg 1.12: ManifestFiles.read(ManifestFile, FileIO) was removed
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
Research direction
Start in IcebergReflection.scala at probeExecutorReflection and readDataFilesFromManifest, the two places named in the issue. Check the Iceberg 1.12 ManifestFiles.read signature and how the table's partition specs are available; then run the Iceberg write path with the 1.12 runtime. Done means native writes no longer fall back and the executor reflection probe resolves successfully.
Written by the indexing model from the issue text.
Description
Describe the bug
With iceberg-spark-runtime 1.12.0 every native Iceberg write falls back, logging only:
Comet cannot accelerate IcebergWriteExec because: executor-side Iceberg reflection did not resolve:
NoSuchMethodException: org.apache.iceberg.ManifestFiles.read(org.apache.iceberg.ManifestFile,org.apache.iceberg.io.FileIO)
Iceberg 1.12.0 removed the public 2-arg overload (javap on iceberg-spark-runtime-3.5_2.12):
1.11.0: public static ManifestReader<DataFile> read(ManifestFile, FileIO)
public static ManifestReader<DataFile> read(ManifestFile, FileIO, Map<Integer, PartitionSpec>)
1.12.0: public static ManifestReader<DataFile> read(ManifestFile, FileIO, Map<Integer, PartitionSpec>)
Comet resolves the 2-arg form in two places in IcebergReflection.scala: the executor probe
(probeExecutorReflection, line 1836 on main) and readDataFilesFromManifest (line 2004). The
native Iceberg scan still works on 1.12.
Steps to reproduce
Any rewrite_data_files or INSERT into an Iceberg table with spark.comet.iceberg.write.enabled=true
and iceberg-spark-runtime 1.12.0 on the classpath. The plan has no CometIcebergWrite, and the
WARN above is the only signal.
Expected behavior
Native writes work on Iceberg 1.12. The 3-arg read(manifest, io, specsById) is public on every
version Comet supports, and passing the table's specs() (or a single-entry map for the stamped
specId) would work on 1.5.2 through 1.12.
Additional context
Comet 1.1.0, Spark 3.5.6. Works on Iceberg 1.11.0. The Spark profiles in spark/pom.xml pin
1.5.2 / 1.8.1 / 1.10.0 / 1.11.0, so no CI profile covers 1.12; adding one would have caught this.
Related: #4871, #5308, #5649, #7040.
- Dominant language
- Scala
- Stars
- 1.3k
- Forks
- 405
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 329
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/datafusion-comet
-
area:ci enhancement priority:low requires-triage
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
apache/datafusion-comet#7319 · 1 comment ·
Maintainers usually reply within 1 day
-
area:ci bug priority:low requires-triage
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
apache/datafusion-comet#7315 ·
Maintainers usually reply within 1 day
-
bug priority:low
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
apache/datafusion-comet#7176 ·
Maintainers usually reply within 1 day
-
docs: update Scala comments that reference the removed iceberg-writes.md pagePossibly taken A pull request linked to this issue is open or already merged. Openenhancement
Difficulty 1/5 1-3 hours Newbie friendliness 83/100
apache/datafusion-comet#7101 ·
Maintainers usually reply within 1 day
-
requires-triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
apache/datafusion-comet#7001 ·
Maintainers usually reply within 1 day
All issues in apache/datafusion-comet
Similar issues
-
area:build priority:P2 status:backlog
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
KD5UJC-XYZ/scarab#648 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
lichess-org/lila#22324 · 3 comments ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
canton-network/splice#8142 ·
Maintainers usually reply within 1 day
-
Users who join a new meeting at the same moment: one sometimes gets "Ops, something went wrong" because bbb-web drops their registration (race on `Meeting.userCustomData`)Possibly taken @antobinary claimed this 1 day ago. Openmodule: core
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
bigbluebutton/bigbluebutton#26318 · 1 comment ·
Maintainers usually reply within 1 day