Skip to content

Conversation

@hevinhsu
Copy link
Contributor

What changes were proposed in this pull request?

The current code block in EndpointBase.java does not correctly handle custom metadata headers when the header names contain uppercase characters.
This may lead to unexpected behavior when clients send headers with capital letters.

Please describe your PR in detail:

  • Normalize custom metadata header keys to lowercase at the beginning of processing.

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/HDDS-13429

How was this patch tested?

https://github.com/hevinhsu/ozone/actions/runs/16282548652

@ivandika3 ivandika3 added the s3 S3 Gateway label Jul 15, 2025
Copy link
Contributor

@Tejaskriya Tejaskriya left a comment

Choose a reason for hiding this comment

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

Thanks for working on this @hevinhsu , LGTM!

Copy link
Contributor

@ivandika3 ivandika3 left a comment

Choose a reason for hiding this comment

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

Thanks @hevinhsu for the patch. Implementation LGTM. In that case, shall we remove the changes in ProxyServer as discussed in #8733 (comment)?

@hevinhsu
Copy link
Contributor Author

@ivandika3 Thanks for the review. In the current implementation, Jetty ProxyServlet does not modify the case of HTTP headers, so the toLowerCase() logic and related comments no longer exist in ProxyServer.

Jetty’s ProxyServlet also takes care of hop-by-hop headers and other proxy-related concerns.
All I had to do was implement a rewriteTarget method and address the Expect: 100-continue handling issue in Jetty.

If anything needs clarification or additional changes, feel free to let me know.

Copy link
Contributor

@ivandika3 ivandika3 left a comment

Choose a reason for hiding this comment

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

@hevinhsu Thanks for the explanation, yes, you're right. LGTM +1.

@Tejaskriya Tejaskriya merged commit b40c95e into apache:master Jul 16, 2025
42 checks passed
@Tejaskriya
Copy link
Contributor

Thanks for the patch @hevinhsu , and the review @ivandika3

@hevinhsu
Copy link
Contributor Author

Thank @Tejaskriya, @ivandika3 for the review and merge.

@hevinhsu hevinhsu deleted the HDDS-13429 branch July 16, 2025 08:45
errose28 added a commit to errose28/ozone that referenced this pull request Jul 22, 2025
* master: (90 commits)
  HDDS-13308. OM should expose Ratis config for increasing pending write limits (apache#8668)
  HDDS-8903. Add validation for ozone.om.snapshot.db.max.open.files. (apache#8787)
  HDDS-13429. Custom metadata headers with uppercase characters are not supported (apache#8805)
  HDDS-13448. DeleteBlocksCommandHandler thread stop for normal exception (apache#8816)
  HDDS-13346. Intermittent failure in TestCloseContainer#testContainerChecksumForClosedContainer (apache#8771)
  HDDS-13125. Add metrics for monitoring the SST file pruning threads. (apache#8764)
  HDDS-13367. [Docs] User doc for container balancer. (apache#8726)
  HDDS-13200. OM RocksDB Grafana Dashbroad shows no data on all panels (apache#8577)
  HDDS-13428. Recon - Retrigger of build whole NSSummary tree task submission inconsistency. (apache#8793)
  HDDS-13378. [Docs] Add a Production page under Getting Started (apache#8734)
  HDDS-13403. [Docs] Make feature proposal process more visible. (apache#8758)
  HDDS-11797. Remove cyclic dependency between SCMSafeModeManager and SafeModeRules (apache#8782)
  HDDS-13213. KeyDeletingService should limit task size by both key count and serialized size. (apache#8757)
  HDDS-13387. OMSnapshotCreateRequest logs invalid warning about DefaultReplicationConfig (apache#8760)
  HDDS-13405. ozone admin container create runs forever without kinit (apache#8765)
  HDDS-11514. Set optimal default values for delete configurations based on live cluster testing. (apache#8766)
  HDDS-13376. Add server-side limit note to ozone sh snapshot diff --page-size option (apache#8791)
  HDDS-11679. Support multiple S3Gs in MiniOzoneCluster (apache#8733)
  HDDS-13424. Use lsof instead of fuser to find if file is used in AbstractTestChunkManager (apache#8790)
  HDDS-13427. Bump awssdk to 2.31.78 (apache#8792)
  ...
jojochuang pushed a commit to jojochuang/ozone that referenced this pull request Jul 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

s3 S3 Gateway

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants