Skip to content

CI: Lock REST Fixture to 1.10.1#3240

Merged
geruh merged 2 commits intoapache:mainfrom
Fokko:lock-rest
Apr 15, 2026
Merged

CI: Lock REST Fixture to 1.10.1#3240
geruh merged 2 commits intoapache:mainfrom
Fokko:lock-rest

Conversation

@Fokko
Copy link
Copy Markdown
Contributor

@Fokko Fokko commented Apr 14, 2026

With the new Jetty upgrade in apache/iceberg#10837 we're running into the following:

Failing CI: https://github.com/apache/iceberg-python/actions/runs/24416422109/job/71326697962

Malformed request: {
"message":"Suspicious Path Character",
"url":"http://rest:8181/v1/namespaces/default%1Ftest_positional_mor_deletes_v2/tables/branch_without_5?snapshots=all",
"status":"400"
}

The namespace-seperator has been introduced afther the 1.10.x branch (#2826), so it isn't out in public, meaning the Spark integration tests are not respecting this config. This requires us to downgrade for now.

I think disallowing the default (%1F) separator is problematic, since it might break compatibility.

Rationale for this change

Are these changes tested?

Are there any user-facing changes?

With the new Jetty upgrade in apache/iceberg#10837 we're running into the following:

Failing CI: https://github.com/apache/iceberg-python/actions/runs/24416422109/job/71326697962

```json
Malformed request: {
"message":"Suspicious Path Character",
"url":"http://rest:8181/v1/namespaces/default%1Ftest_positional_mor_deletes_v2/tables/branch_without_5?snapshots=all",
"status":"400"
}
```

The `namespace-seperator` has been introduced afther the 1.10.x branch (apache#2826),
so it isn't out in public, meaning the Spark integration tests are not respecting this config. This requires us to downgrade for now.

I think disallowing the default (`%1F`) separator is problematic, since it might break compatibility.
@Fokko Fokko requested review from kevinjqliu and nastra April 14, 2026 20:30
@geruh
Copy link
Copy Markdown
Member

geruh commented Apr 15, 2026

Thanks for raising this Fokko!

Looks like in the upgrade Jetty 12 is rejecting %1f in URL path, and the spark container uses the latest iceberg release 1.10.1 that hard codes that character for multi level namespaces. Looks like provision was failing because the branch target reference like this DELETE FROM {identifier}.branch_without_5 gets read as a multi-levl ns before reaching spark catalog.

Pinning works but now maybe we should skip the test_rest_custom_namespace_separator since 1.10.1 doesn't advertise the separator in the config call anymore.

WDYT @Fokko?

@Fokko
Copy link
Copy Markdown
Contributor Author

Fokko commented Apr 15, 2026

Pinning works but now maybe we should skip the test_rest_custom_namespace_separator since 1.10.1 doesn't advertise the separator in the config call anymore.

@geruh In PyIceberg the separator is configurable: #2826 So we can reinstate the test again once 1.11.0 is out. I see that forgot to git add that specific test file 🤣

@Fokko Fokko requested a review from geruh April 15, 2026 12:50
Copy link
Copy Markdown
Member

@geruh geruh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome thanks for the fix Fokko!! I'll follow up to pin the SHAs mentioned by zizmor

@geruh geruh merged commit 03bbbe3 into apache:main Apr 15, 2026
14 of 15 checks passed
smaheshwar-pltr pushed a commit to smaheshwar-pltr/iceberg-python that referenced this pull request Apr 19, 2026
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.

3 participants