thswlsqls opened a new pull request, #8969:
URL: https://github.com/apache/paimon/pull/8969

   ### Purpose
   
   fix #8968
   
   - `S3MultiPartUpload.uploadPart()` hand-assembles the `UploadPartRequest`, 
bypassing the S3A request factory that `startMultiPartUpload()` already uses.
   - SSE-C requires identical encryption parameters on every part, so S3 
rejects the part upload (HTTP 400). SSE-S3/SSE-KMS/DSSE-KMS are unaffected.
   - `closeForCommit()` uploads a part unconditionally, so every non-empty 
format table file is affected regardless of size. Normal table writes go 
through S3A's `S3ABlockOutputStream`, which already uses the factory.
   - Also relaxes the per-part timeout from the 60s client-level default to the 
intended 15 minutes.
   - Regression from #7187, which kept the helper for initiate/complete/abort.
   
   ### Tests
   
   - Added `S3MultiPartUploadTest`: the built request carries the SSE-C 
parameters, none without encryption, part coordinates unchanged. The SSE-C 
assertion fails against the hand-assembled request.
   - `mvn -pl paimon-filesystems/paimon-s3-impl -Dtest='!S3FileIOTest' clean 
install` — 3 tests passed. `S3FileIOTest` needs Docker/MinIO — covered by CI.
   


-- 
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