Skip to content

Bump linkedin/iceberg 1.5 version to 1.5.2.17 - #647

Merged
cbb330 merged 4 commits into
linkedin:mainfrom
shanthoosh:iceberg-1.5.2.17-bump
Jul 14, 2026
Merged

Bump linkedin/iceberg 1.5 version to 1.5.2.17 #647
cbb330 merged 4 commits into
linkedin:mainfrom
shanthoosh:iceberg-1.5.2.17-bump

Conversation

@shanthoosh

Copy link
Copy Markdown
Collaborator

Summary

Picks up com.linkedin.iceberg v1.5.2.17 (linkedin/iceberg#254), which propagates the delete file replication factor to ORC delete files.

Adds spark-3.5 sparkitest coverage exercising the configuration through the full OpenHouse stack via SQL: the write.delete-file-replication table property round-trips through the tables service, and merge-on-read DELETE on an ORC table produces ORC position delete files through the replication-aware write path, for both the table property and the spark.sql.iceberg.delete-file-replication session conf routes. Verification is metadata-based (delete_files manifests) because the itest classpath mixes shaded and unshaded iceberg, which breaks ORC position delete reads with a TypeDescription ClassCastException.

Changes

  • Client-facing API Changes
  • Internal API Changes
  • Bug Fixes
  • New Features
  • Performance Improvements
  • Code Style
  • Refactoring
  • Documentation
  • Tests

For all the boxes checked, please include additional details of the changes made in this pull request.

Testing Done

  • Manually Tested on local docker setup. Please include commands ran, and their output.
  • Added new tests for the changes made.
  • Updated existing tests to reflect the changes made.
  • No tests added or updated. Please explain why. If unsure, please feel free to ask for help.
  • Some other form of testing like staging or soak time in production. Please explain.

For all the boxes checked, include a detailed description of the testing done for the changes made in this pull request.

Additional Information

  • Breaking Changes
  • Deprecations
  • Large PR broken into smaller PRs, and PR plan linked in the description.

For all the boxes checked, include additional details of the changes made in this pull request.

… e2e tests

Picks up com.linkedin.iceberg v1.5.2.17 (linkedin/iceberg#254), which
propagates the delete file replication factor to ORC delete files.

Adds spark-3.5 sparkitest coverage exercising the configuration through
the full OpenHouse stack via SQL: the write.delete-file-replication
table property round-trips through the tables service, and merge-on-read
DELETE on an ORC table produces ORC position delete files through the
replication-aware write path, for both the table property and the
spark.sql.iceberg.delete-file-replication session conf routes.
Verification is metadata-based (delete_files manifests) because the
itest classpath mixes shaded and unshaded iceberg, which breaks ORC
position delete reads with a TypeDescription ClassCastException.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
shanthoosh and others added 3 commits July 14, 2026 10:35
…oopFS verification

- Remove explicit "initial-default": null from evolved_dummy_healthy_schema.json
  test resource; Iceberg 1.5.2.17's SchemaParser.defaultFromJson NPEs on explicit
  null defaults. This was root-causing 15+ cascaded failures in TablesServiceTest
  and TablesControllerTest.

- Replace metadata-only assertions in DeleteFileReplicationTestSpark with real
  HadoopFS-based verification that delete files are actually created with the
  configured replication factor, not just that the property round-trips through
  table metadata.

- Add ReplicationTrackingLocalFileSystem, a custom fs.file.impl override that
  disables checksums and records the replication factor requested at file-create
  time (stock RawLocalFileSystem/ChecksumFileSystem silently discard it), since
  local disks have no native replication concept.

- Isolate these two tests into a new deleteFileReplicationTest Gradle task with
  its own JVM/SparkContext, since fs.file.impl is fixed at SparkContext-creation
  time and must not leak into the shared catalogTest suite.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the standalone ReplicationTrackingLocalFileSystem with a small
RawLocalFileSystem subclass nested in the test. Registering the raw
filesystem directly as fs.file.impl keeps ChecksumFileSystem out of the
path entirely, so no checksum disabling is needed; the getFileStatus
synthesis and setReplication override were unused by the assertions and
are dropped. Both public create overloads are still overridden (they
are independent entry points on RawLocalFileSystem), and getScheme()
must be provided since the raw filesystem does not implement it and
Iceberg's locality check calls it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The dedicated deleteFileReplicationTest task is not needed: every
catalogtest class opens its SparkSession in try-with-resources, which
stops the SparkContext when the class finishes, so the replication
tests always build a fresh context and their fs.file.impl override
applies and is discarded with it. Verified by running the full
catalogTest task in one JVM: 64/64 pass including both replication
tests. If a leaked session ever precedes them, the failure is loud
("No file creation was captured"), not a silent false pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@cbb330
cbb330 merged commit 751aff8 into linkedin:main Jul 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants