MartijnVisser opened a new pull request, #29823:
URL: https://github.com/apache/flink/pull/29823

   ## What is the purpose of the change
   
   flink-s3-fs-hadoop bundles Hadoop 3.3.4, which fails on Java 23 and later 
with `getSubject is not supported` (HADOOP-19212). hadoop-aws 3.4 requires AWS 
SDK v2, so this moves the S3 filesystems to Hadoop 3.4.3 and flink-s3-fs-hadoop 
to SDK v2. It continues #27026 by @ctrlaltdilj and builds on #29821, whose 
commit is included until that one is merged.
   
   ## Brief change log
   
     - The S3 delegation token carries SDK-independent credentials, and each 
plugin creates the STS client with its own SDK.
     - flink-s3-fs-hadoop uses SDK v2 for the recoverable writer. The FileSink 
state format stays version 1, so flink-s3-fs-native can still restore it 
(FLINK-40943).
     - The recoverable writer rejects S3 part checksums 
(`fs.s3a.create.checksum.algorithm`, `fs.s3a.checksum.generation`), because the 
state doesn't store them.
     - Common SDK v1 credentials provider names are mapped to SDK v2.
     - flink-s3-fs-presto stays on SDK v1 and no longer bundles hadoop-aws, the 
Analytics Accelerator and Netty.
     - The classic S3A input stream stays the default.
     - Docs and NOTICE files updated, including the third-party code that Netty 
embeds.
   
   ## Verifying this change
   
     - Unit tests for each plugin's STS client, the SDK v1 provider mapping 
(resolved through Hadoop's `CredentialProviderListFactory`) and the version 1 
serializer bytes. An ArchUnit test keeps the token classes SDK-free.
     - The module tests and the recoverable writer ITCases against SeaweedFS 
pass on Java 17, 21 (`-Pjava21-target`) and 25. On Java 25 the HA ITCases now 
pass, while master fails them. `HadoopS3FileSystemBehaviorITCase` fails one 
recursive-delete test on SeaweedFS; master fails two.
     - The license checker reports no severe issues.
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): yes
     - The public API, i.e., is any changed class annotated with 
`@Public(Evolving)`: no
     - The serializers: no, the version 1 bytes are unchanged and pinned by a 
test
     - The runtime per-record code paths (performance sensitive): no
     - Anything that affects deployment or recovery: JobManager (and its 
components), Checkpointing, Kubernetes/Yarn, ZooKeeper: yes, the FileSink 
recovery path of flink-s3-fs-hadoop moves to AWS SDK v2
     - The S3 file system connector: yes
   
   ## Documentation
   
     - Does this pull request introduce a new feature? no
     - If yes, how is the feature documented? not applicable
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes (please specify the tool below)
   
   Generated-by: Claude Code (Claude Opus 5.5)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to