apache / apache/iceberg

[RCK]

Open
#17,896 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
9.2k
Forks
3.5k
Avg merge
2d 16h
Merged PRs (30d)
129

Description

### Apache Iceberg version

1.11.0 (latest release)

### Query engine

Other

### Please describe the bug 🐞

I am running the Apache Iceberg 1.11.0 REST Compatibility Kit (RCK) released 2026 May 20 against my own Iceberg-compatible S3 storage implementation.

Most of the test cases pass successfully. However, two test cases fail because they use hard-coded local absolute paths.

I started the RESTCompatibilityKitSuite with the following system properties:

-Drck.local=false
-Drck.uri=http://192.168.2.106:7946/api/iceberg/default

I expected these settings to make the RCK use the remote REST endpoint instead of local storage. However, the two failing test cases still use local absolute paths.

Is this expected behavior, or is there an additional configuration required to disable local path usage when running RCK against a remote REST endpoint?

> Task :iceberg-open-api:test

Iceberg REST Compatibility Kit > JUnit Jupiter > RESTCompatibilityKitCatalogTests > testLoadTableWithMissingMetadataFile(Path) FAILED
java.nio.file.NoSuchFileException: /var/folders/6l/2yjdpgdd3b9f_06xm3k82w780000gn/T/junit-9961300198311444979/tmp.json -> s3:/lakehouse/metadata/1d10344e-9c80-4000-a472-529a58fda944/1d10344e-9c80-4001-8230-36d70b83f719.metadata.json
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
at java.base/sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:477)
at java.base/sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:266)
at java.base/java.nio.file.Files.move(Files.java:1432)
at org.apache.iceberg.catalog.CatalogTests.testLoadTableWithMissingMetadataFile(CatalogTests.java:1038)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

Iceberg REST Compatibility Kit > JUnit Jupiter > RESTCompatibilityKitViewCatalogTests > createViewWithCustomMetadataLocation() FAILED
java.lang.AssertionError:
Expecting actual:
"s3://lakehouse/metadata/1d103704-ef00-4001-b7c9-de2572f4b6c7/1d103704-ef00-4002-9d74-b676a37d68cd.metadata.json"
to start with:
"file:/var/folders/6l/2yjdpgdd3b9f_06xm3k82w780000gn/T/junit-16014049195541541327/custom-location"
at org.apache.iceberg.view.ViewCatalogTests.createViewWithCustomMetadataLocation(ViewCatalogTests.java:375)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

157 tests completed, 2 failed, 19 skipped

> Task :iceberg-open-api:test FAILED

### Willingness to contribute

- [ ] I can contribute a fix for this bug independently
- [ ] I would be willing to contribute a fix for this bug with guidance from the Iceberg community
- [ ] I cannot contribute a fix for this bug at this time

Contributor guide

Open the contributing guide

Research direction

Start with RESTCompatibilityKitSuite and its rck.local and rck.uri system properties, then inspect CatalogTests.java around testLoadTableWithMissingMetadataFile and ViewCatalogTests.java around createViewWithCustomMetadataLocation. Reproduce the two failures against the remote endpoint and determine whether configuration or test behavior is responsible; done means the expected remote-mode behavior is established and both tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.