Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HADOOP-18708. AWS SDK V2 - Implement CSE #6164

Open
wants to merge 6 commits into
base: trunk
Choose a base branch
from

Conversation

ahmarsuhail
Copy link
Contributor

@ahmarsuhail ahmarsuhail commented Oct 9, 2023

Description of PR

This adds in CSE back in back in.

Also adds a new CSEMaterials class which will allow you set different key types (RSA, AES or KMS), which can be extended to allow uses to specify their own keys. That work can be done separately.

This was previously part of #5767 which had been reviewed but had some other changes as well and had fallen quite behind. Closed that PR in favour of this.

How was this patch tested?

Tested in eu-west-1 with mvn -Dparallel-tests -DtestsThreadCount=16 clean verify and scale tests enabled.

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 40s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 28s Maven dependency ordering for branch
+1 💚 mvninstall 34m 16s trunk passed
+1 💚 compile 18m 1s trunk passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 compile 16m 12s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 4m 42s trunk passed
+1 💚 mvnsite 1m 43s trunk passed
+1 💚 javadoc 1m 22s trunk passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 29s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 44s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 36m 17s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 1m 7s Maven dependency ordering for patch
+1 💚 mvninstall 0m 48s the patch passed
+1 💚 compile 18m 28s the patch passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 javac 18m 28s the patch passed
+1 💚 compile 17m 49s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 javac 17m 49s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 43s /results-checkstyle-root.txt root: The patch generated 1 new + 14 unchanged - 0 fixed = 15 total (was 14)
+1 💚 mvnsite 1m 39s the patch passed
+1 💚 javadoc 1m 23s the patch passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 37s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 45s hadoop-project has no data from spotbugs
+1 💚 shadedclient 37m 1s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 42s hadoop-project in the patch passed.
+1 💚 unit 3m 13s hadoop-aws in the patch passed.
+1 💚 asflicense 1m 8s The patch does not generate ASF License warnings.
230m 48s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/1/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux 1fdab0d54d37 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / d787b91
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/1/testReport/
Max. process+thread count 556 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/1/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

configureClientBuilder(S3AsyncClient.builder(), parameters, conf, bucket).httpClientBuilder(
httpClientBuilder);

if (!parameters.isClientSideEncryptionEnabled()) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

We need to do this because currently if you try to do a ranged GET with multipart enabled, it fails. This is intentional, as the SDK team is working on adding "automatic multipart download" for a GET to the async client, and this capability is disabled till then.

When we build the S3EncryptionClient we configure and pass in a S3AsyncClient. Under the hood, S3EC uses the S3Async client for all it's encryption related operations (eg: GET). And so if we pass in a client with multipartEnabled, all GETs will start failing.

The impact of this that if you're using CSE, there's no multipart mode, so you copies become slower again.

A workaround can be to create a new async client with multipart disabled. So we have two async clients, one with MPU enable, one with disabled. and share underlying HTTP client b/w the two async clients, so it shouldn't have too much of an impact.

I'll make that change if required, once I have more clarity from SDK team on when ranged GETs become available in multipart mode.

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 40s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 28s Maven dependency ordering for branch
+1 💚 mvninstall 34m 13s trunk passed
+1 💚 compile 17m 48s trunk passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 compile 17m 2s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 4m 47s trunk passed
+1 💚 mvnsite 1m 39s trunk passed
+1 💚 javadoc 1m 22s trunk passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 30s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 46s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 37m 14s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 1m 1s Maven dependency ordering for patch
+1 💚 mvninstall 0m 50s the patch passed
+1 💚 compile 17m 58s the patch passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 javac 17m 58s the patch passed
+1 💚 compile 17m 5s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 javac 17m 5s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 34s /results-checkstyle-root.txt root: The patch generated 3 new + 14 unchanged - 0 fixed = 17 total (was 14)
+1 💚 mvnsite 1m 43s the patch passed
+1 💚 javadoc 1m 24s the patch passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 31s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 41s hadoop-project has no data from spotbugs
+1 💚 shadedclient 37m 43s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 33s hadoop-project in the patch passed.
+1 💚 unit 2m 58s hadoop-aws in the patch passed.
+1 💚 asflicense 1m 7s The patch does not generate ASF License warnings.
231m 12s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/2/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux 183e5617e23a 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 2313d91
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/2/testReport/
Max. process+thread count 558 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/2/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

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

Looks good, but we need the new jar to be optional.

One possibility here would to make CSEMaterials a parameter in S3ClientCreationParameters, and when encyption is used switch to a new client factory, one which creates encrypting clients internally, if there's a classload/binding problem, that'll be reported, but the default impl is nicely isolated and s3afs code simpler.


S3ClientFactory clientFactory = ReflectionUtils.newInstance(s3ClientFactoryClass, conf);
s3Client = clientFactory.createS3Client(getUri(), parameters);
createS3AsyncClient(clientFactory, parameters);

Copy link
Contributor

Choose a reason for hiding this comment

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

given its a new jar, any way we can isolate this stuff?

@@ -575,6 +579,12 @@ public void testS3SpecificSignerOverride() throws Exception {
.describedAs("Custom STS signer not called").isTrue();
}

private void unsetClientSideConfiguration(Configuration conf) {
Copy link
Contributor

Choose a reason for hiding this comment

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

change name. e.g unsetEncryption

<dependency>
<groupId>software.amazon.encryption.s3</groupId>
<artifactId>amazon-s3-encryption-client-java</artifactId>
<scope>compile</scope>
Copy link
Contributor

Choose a reason for hiding this comment

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

we need this to be scoped as provided, with matching changes in the code

* @param cseMaterials cse key and type to use
* @return S3EncryptionClient
*/
S3Client createS3EncryptionClient(S3AsyncClient s3AsyncClient, S3Client s3Client,
Copy link
Contributor

Choose a reason for hiding this comment

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

  1. have an EncryptionClientCreationParameters with CSEMaterials part of it
  2. can we actually use a subclass of the default factory which does support encryption.

* @return S3EncryptionClient
*/
S3Client createS3EncryptionClient(S3AsyncClient s3AsyncClient, S3Client s3Client,
CSEMaterials cseMaterials);
Copy link
Contributor

Choose a reason for hiding this comment

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

add default throws new UnsupportedOperationException(). i've already got a separate implementation for HBoss and this patch breaks it right now

@ahmarsuhail
Copy link
Contributor Author

@steveloughran thanks for the review, isolated all encryption stuff to a new client factory which makes things much cleaner now.

Test latest changes in eu-west-1 with fs.s3a.encryption.algorithm = CSE-KMS and scale tests enabled.

@ahmarsuhail
Copy link
Contributor Author

This is the first time I'm working with a provided scope. In the code I throw throw unavailable(uri, ENCRYPTION_CLIENT_CLASSNAME, null, "No encryption client available"); if EncryptionClient class is not present, but how do I verify that this works? I'm guessing I have to package it up and then test via CLI..is that correct/is there any other way?

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 25s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 16m 0s Maven dependency ordering for branch
+1 💚 mvninstall 23m 33s trunk passed
+1 💚 compile 10m 32s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 compile 8m 48s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 2m 24s trunk passed
+1 💚 mvnsite 1m 23s trunk passed
+1 💚 javadoc 1m 12s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 15s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 41s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 21m 27s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 1m 14s Maven dependency ordering for patch
+1 💚 mvninstall 0m 36s the patch passed
+1 💚 compile 9m 30s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javac 9m 30s the patch passed
+1 💚 compile 9m 16s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 javac 9m 16s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 2m 25s /results-checkstyle-root.txt root: The patch generated 7 new + 14 unchanged - 0 fixed = 21 total (was 14)
+1 💚 mvnsite 1m 20s the patch passed
+1 💚 javadoc 1m 8s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 14s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 33s hadoop-project has no data from spotbugs
+1 💚 shadedclient 24m 24s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 28s hadoop-project in the patch passed.
+1 💚 unit 2m 37s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 49s The patch does not generate ASF License warnings.
150m 26s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/3/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux eb63ecdbcded 4.15.0-212-generic #223-Ubuntu SMP Tue May 23 13:09:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / a262aed
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/3/testReport/
Max. process+thread count 764 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/3/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 26s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 16m 25s Maven dependency ordering for branch
+1 💚 mvninstall 23m 19s trunk passed
+1 💚 compile 11m 37s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 compile 10m 38s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 3m 4s trunk passed
+1 💚 mvnsite 1m 23s trunk passed
+1 💚 javadoc 1m 9s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 19s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 41s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
-1 ❌ shadedclient 37m 47s branch has errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 58s Maven dependency ordering for patch
+1 💚 mvninstall 0m 36s the patch passed
-1 ❌ compile 4m 48s /patch-compile-root-jdkUbuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04.
-1 ❌ javac 4m 48s /patch-compile-root-jdkUbuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04.
-1 ❌ compile 0m 14s /patch-compile-root-jdkPrivateBuild-1.8.0_382-8u382-ga-1~20.04.1-b05.txt root in the patch failed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05.
-1 ❌ javac 0m 14s /patch-compile-root-jdkPrivateBuild-1.8.0_382-8u382-ga-1~20.04.1-b05.txt root in the patch failed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05.
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 0m 26s /buildtool-patch-checkstyle-root.txt The patch fails to run checkstyle in root
-1 ❌ mvnsite 0m 30s /patch-mvnsite-hadoop-project.txt hadoop-project in the patch failed.
-1 ❌ javadoc 0m 29s /patch-javadoc-hadoop-project-jdkUbuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04.txt hadoop-project in the patch failed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04.
-1 ❌ javadoc 0m 27s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04.
-1 ❌ javadoc 0m 18s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_382-8u382-ga-1~20.04.1-b05.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05.
-1 ❌ spotbugs 0m 27s /patch-spotbugs-hadoop-project.txt hadoop-project in the patch failed.
-1 ❌ shadedclient 26m 55s patch has errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 0m 29s /patch-unit-hadoop-project.txt hadoop-project in the patch failed.
-1 ❌ unit 0m 28s /patch-unit-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
+0 🆗 asflicense 0m 29s ASF License check generated no output?
152m 47s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/4/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux 141f5e0b1f9f 4.15.0-212-generic #223-Ubuntu SMP Tue May 23 13:09:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / e8e27b7
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/4/testReport/
Max. process+thread count 739 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/4/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 39s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 16m 26s Maven dependency ordering for branch
+1 💚 mvninstall 37m 34s trunk passed
+1 💚 compile 17m 55s trunk passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 compile 17m 5s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 4m 34s trunk passed
+1 💚 mvnsite 1m 45s trunk passed
+1 💚 javadoc 1m 28s trunk passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 26s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 50s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 37m 54s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 1m 9s Maven dependency ordering for patch
+1 💚 mvninstall 0m 52s the patch passed
+1 💚 compile 18m 20s the patch passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 javac 18m 20s the patch passed
+1 💚 compile 17m 35s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 javac 17m 35s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 48s /results-checkstyle-root.txt root: The patch generated 3 new + 15 unchanged - 0 fixed = 18 total (was 15)
+1 💚 mvnsite 1m 45s the patch passed
+1 💚 javadoc 1m 22s the patch passed with JDK Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 35s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 43s hadoop-project has no data from spotbugs
+1 💚 shadedclient 36m 35s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 38s hadoop-project in the patch passed.
+1 💚 unit 3m 5s hadoop-aws in the patch passed.
+1 💚 asflicense 1m 10s The patch does not generate ASF License warnings.
238m 9s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/5/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux 7dcc69513a14 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 1dc57cd
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20+8-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/5/testReport/
Max. process+thread count 554 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/5/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@steveloughran
Copy link
Contributor

This is the first time I'm working with a provided scope. In the code I throw throw unavailable(uri, ENCRYPTION_CLIENT_CLASSNAME, null, "No encryption client available"); if EncryptionClient class is not present, but how do I verify that this works? I'm guessing I have to package it up and then test via CLI..is that correct/is there any other way?

You can add a rule to the enforcer plugin to ban imports except in managed places, the way we do for mapreduce.

@steveloughran steveloughran changed the title HADOOP-18708. Adds in support for client side encryption. HADOOP-18708. AWS SDK V2 - Implement CSE Nov 14, 2023
@steveloughran
Copy link
Contributor

...oh and cloudstore storediag is some implicit validation.

@@ -32,12 +32,12 @@
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.http.apache.ProxyConfiguration;
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
import software.amazon.awssdk.thirdparty.org.apache.http.client.utils.URIBuilder;
Copy link
Contributor

Choose a reason for hiding this comment

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

this stops people building docker images with more minimal packaging than the bundle.jar; something we had to fix before.

@@ -170,6 +171,15 @@ public static IOException translateException(@Nullable String operation,
operation,
StringUtils.isNotEmpty(path)? (" on " + path) : "",
exception);

// Exceptions from encryption client are wrapped in S3EncryptionClientException, so unwrap.
if (exception instanceof S3EncryptionClientException) {
Copy link
Contributor

Choose a reason for hiding this comment

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

this will make the new library mandatory. need some more work here, such as simply looking a class details of nested exception. should also go into org.apache.hadoop.fs.s3a.impl.ErrorTranslation
with a unit test

@ahmarsuhail ahmarsuhail force-pushed the HADOOP-18708-implement-cse branch from 1dc57cd to ef3534e Compare November 23, 2023 11:52
@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 31s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 13s Maven dependency ordering for branch
+1 💚 mvninstall 33m 1s trunk passed
+1 💚 compile 17m 33s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 compile 15m 44s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 4m 28s trunk passed
+1 💚 mvnsite 1m 28s trunk passed
+1 💚 javadoc 1m 9s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 18s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 42s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 36m 1s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 1m 1s Maven dependency ordering for patch
+1 💚 mvninstall 0m 45s the patch passed
+1 💚 compile 17m 10s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javac 17m 10s the patch passed
+1 💚 compile 16m 15s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 javac 16m 15s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 31s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 0 fixed = 19 total (was 16)
+1 💚 mvnsite 1m 25s the patch passed
+1 💚 javadoc 1m 8s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 18s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 35s hadoop-project has no data from spotbugs
+1 💚 shadedclient 36m 39s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 31s hadoop-project in the patch passed.
+1 💚 unit 2m 57s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 59s The patch does not generate ASF License warnings.
219m 48s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/6/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux 44278d49fb71 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / ef3534e
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/6/testReport/
Max. process+thread count 715 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/6/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@ahmarsuhail
Copy link
Contributor Author

thanks @steveloughran , addressed review comments

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 6m 56s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 4 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 23s Maven dependency ordering for branch
+1 💚 mvninstall 21m 22s trunk passed
+1 💚 compile 9m 15s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 compile 9m 6s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 2m 34s trunk passed
+1 💚 mvnsite 0m 54s trunk passed
+1 💚 javadoc 0m 39s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 0s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 27s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 22m 18s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 54s Maven dependency ordering for patch
+1 💚 mvninstall 0m 28s the patch passed
+1 💚 compile 9m 33s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javac 9m 33s the patch passed
+1 💚 compile 9m 20s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 javac 9m 20s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 2m 21s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 1 fixed = 19 total (was 17)
+1 💚 mvnsite 0m 51s the patch passed
+1 💚 javadoc 0m 37s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 40s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 18s hadoop-project has no data from spotbugs
+1 💚 shadedclient 22m 6s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 17s hadoop-project in the patch passed.
+1 💚 unit 2m 5s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 30s The patch does not generate ASF License warnings.
144m 6s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/8/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux c3beab9f74fe 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / a262468
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/8/testReport/
Max. process+thread count 651 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/8/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 31s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 32s Maven dependency ordering for branch
+1 💚 mvninstall 32m 42s trunk passed
+1 💚 compile 18m 45s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 compile 16m 50s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 4m 37s trunk passed
+1 💚 mvnsite 1m 28s trunk passed
+1 💚 javadoc 1m 11s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 19s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 42s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 35m 44s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 1m 0s Maven dependency ordering for patch
+1 💚 mvninstall 0m 44s the patch passed
+1 💚 compile 16m 9s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javac 16m 9s the patch passed
+1 💚 compile 16m 5s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 javac 16m 5s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 17s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 0 fixed = 19 total (was 16)
+1 💚 mvnsite 1m 26s the patch passed
+1 💚 javadoc 1m 9s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 20s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 31s hadoop-project has no data from spotbugs
+1 💚 shadedclient 37m 25s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 30s hadoop-project in the patch passed.
+1 💚 unit 2m 53s hadoop-aws in the patch passed.
+1 💚 asflicense 1m 0s The patch does not generate ASF License warnings.
221m 2s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/7/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux 8d1b731fc87a 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / afc077d
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/7/testReport/
Max. process+thread count 721 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/7/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 22s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 4 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 22s Maven dependency ordering for branch
+1 💚 mvninstall 21m 23s trunk passed
+1 💚 compile 10m 2s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 compile 8m 52s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 2m 23s trunk passed
+1 💚 mvnsite 0m 52s trunk passed
+1 💚 javadoc 0m 39s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 42s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 24s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 22m 4s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 52s Maven dependency ordering for patch
+1 💚 mvninstall 0m 28s the patch passed
+1 💚 compile 9m 51s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javac 9m 51s the patch passed
+1 💚 compile 8m 49s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 javac 8m 49s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 2m 20s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 1 fixed = 19 total (was 17)
+1 💚 mvnsite 0m 51s the patch passed
+1 💚 javadoc 0m 34s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 41s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 18s hadoop-project has no data from spotbugs
+1 💚 shadedclient 22m 2s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 18s hadoop-project in the patch passed.
+1 💚 unit 2m 9s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 33s The patch does not generate ASF License warnings.
136m 31s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/9/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux c096b10fc64a 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 43e8308
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/9/testReport/
Max. process+thread count 555 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/9/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 19s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 4 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 25s Maven dependency ordering for branch
+1 💚 mvninstall 22m 6s trunk passed
+1 💚 compile 10m 16s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 compile 8m 32s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 checkstyle 2m 20s trunk passed
+1 💚 mvnsite 0m 47s trunk passed
+1 💚 javadoc 0m 38s trunk passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 42s trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 23s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 22m 18s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 1m 0s Maven dependency ordering for patch
+1 💚 mvninstall 0m 28s the patch passed
+1 💚 compile 9m 57s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javac 9m 57s the patch passed
+1 💚 compile 8m 26s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+1 💚 javac 8m 26s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 2m 9s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 1 fixed = 19 total (was 17)
+1 💚 mvnsite 0m 47s the patch passed
+1 💚 javadoc 0m 32s the patch passed with JDK Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 42s the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
+0 🆗 spotbugs 0m 18s hadoop-project has no data from spotbugs
+1 💚 shadedclient 22m 15s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 20s hadoop-project in the patch passed.
+1 💚 unit 2m 21s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 37s The patch does not generate ASF License warnings.
137m 26s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/10/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux b79479ced5d2 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 43e8308
Default Java Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.20.1+1-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/10/testReport/
Max. process+thread count 689 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/10/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

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

updated review.

I think we are going to have to look hard at the bundle.jar and what we can do there w.r.t going to something leaner with all we need (inc all transitive dependencies *except SLF4J) and nothing we don't. some "hadoop-aws-bundle" jar in its own module

docs will need updating for this

@@ -188,6 +188,7 @@
<surefire.fork.timeout>900</surefire.fork.timeout>
<aws-java-sdk.version>1.12.565</aws-java-sdk.version>
<aws-java-sdk-v2.version>2.20.160</aws-java-sdk-v2.version>
<amazon-s3-encryption-client-java.version>3.1.0</amazon-s3-encryption-client-java.version>
Copy link
Contributor

Choose a reason for hiding this comment

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

so this isn't in the big bundle? what does it depend on transitively?

@@ -106,6 +110,24 @@ public static IOException maybeExtractIOException(String path, Throwable thrown)

}

/**
* Extracts the underlying exception from an S3EncryptionClientException.
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: wrong class named

*/
public static SdkException maybeExtractSdkException(SdkException exception) {
SdkException extractedException = exception;
if (exception.toString().contains(ENCRYPTION_CLIENT_EXCEPTION)) {
Copy link
Contributor

Choose a reason for hiding this comment

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

  1. should this be in the classname, or is it one of those things which gets passed down as strings?
  2. also include check for cause being instanceof SdkException so class cast problems don't lose stack trace of any other problem

@steveloughran
Copy link
Contributor

@ahmarsuhail can you rebase this and we can merge in to branch-3.4. thanks

@ahmarsuhail ahmarsuhail force-pushed the HADOOP-18708-implement-cse branch from 43e8308 to 2a0407a Compare February 22, 2024 13:50
@ahmarsuhail
Copy link
Contributor Author

rebased, testing in progress.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 22s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 22s Maven dependency ordering for branch
+1 💚 mvninstall 20m 35s trunk passed
+1 💚 compile 9m 23s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 compile 9m 2s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+1 💚 checkstyle 2m 29s trunk passed
+1 💚 mvnsite 0m 53s trunk passed
+1 💚 javadoc 0m 45s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 46s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+0 🆗 spotbugs 0m 26s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 21m 21s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 58s Maven dependency ordering for patch
-1 ❌ mvninstall 0m 9s /patch-mvninstall-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
-1 ❌ compile 8m 48s /patch-compile-root-jdkUbuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.
-1 ❌ javac 8m 48s /patch-compile-root-jdkUbuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.
-1 ❌ compile 8m 44s /patch-compile-root-jdkPrivateBuild-1.8.0_392-8u392-ga-1~20.04-b08.txt root in the patch failed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08.
-1 ❌ javac 8m 44s /patch-compile-root-jdkPrivateBuild-1.8.0_392-8u392-ga-1~20.04-b08.txt root in the patch failed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08.
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 2m 28s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 1 fixed = 19 total (was 17)
-1 ❌ mvnsite 0m 20s /patch-mvnsite-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
-1 ❌ javadoc 0m 20s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.
-1 ❌ javadoc 0m 21s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_392-8u392-ga-1~20.04-b08.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08.
+0 🆗 spotbugs 0m 21s hadoop-project has no data from spotbugs
-1 ❌ spotbugs 0m 21s /patch-spotbugs-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
+1 💚 shadedclient 21m 7s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 18s hadoop-project in the patch passed.
-1 ❌ unit 0m 21s /patch-unit-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
131m 43s
Subsystem Report/Notes
Docker ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/11/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux c20937c47b10 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 2a0407a
Default Java Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/11/testReport/
Max. process+thread count 552 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/11/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 21s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 14s Maven dependency ordering for branch
+1 💚 mvninstall 21m 23s trunk passed
+1 💚 compile 9m 59s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 compile 8m 58s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+1 💚 checkstyle 2m 22s trunk passed
+1 💚 mvnsite 0m 52s trunk passed
+1 💚 javadoc 0m 42s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 46s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+0 🆗 spotbugs 0m 25s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 21m 31s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 56s Maven dependency ordering for patch
-1 ❌ mvninstall 0m 10s /patch-mvninstall-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
-1 ❌ compile 8m 57s /patch-compile-root-jdkUbuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.
-1 ❌ javac 8m 57s /patch-compile-root-jdkUbuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.
-1 ❌ compile 8m 20s /patch-compile-root-jdkPrivateBuild-1.8.0_392-8u392-ga-1~20.04-b08.txt root in the patch failed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08.
-1 ❌ javac 8m 20s /patch-compile-root-jdkPrivateBuild-1.8.0_392-8u392-ga-1~20.04-b08.txt root in the patch failed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08.
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 2m 19s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 1 fixed = 19 total (was 17)
-1 ❌ mvnsite 0m 21s /patch-mvnsite-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
-1 ❌ javadoc 0m 20s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.
-1 ❌ javadoc 0m 19s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_392-8u392-ga-1~20.04-b08.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08.
+0 🆗 spotbugs 0m 20s hadoop-project has no data from spotbugs
-1 ❌ spotbugs 0m 19s /patch-spotbugs-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
+1 💚 shadedclient 20m 40s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 25s hadoop-project in the patch passed.
-1 ❌ unit 0m 27s /patch-unit-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
+1 💚 asflicense 0m 40s The patch does not generate ASF License warnings.
132m 47s
Subsystem Report/Notes
Docker ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/12/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux cb551d89a4ec 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 1b820bb
Default Java Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/12/testReport/
Max. process+thread count 634 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/12/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@ahmarsuhail
Copy link
Contributor Author

Tested in eu-west-1, with fs.s3a.encryption.algorithm = CSE-KMS, fs.s3a.encryption.enabled = true, and fs.s3a.scale.test.enabled = true.

Seeing a few failures:

[ERROR]   ITestS3ACommitterFactory.testEverything:115->testInvalidFileBinding:165 Expected a org.apache.hadoop.fs.s3a.commit.PathCommitException to be thrown, but got the result: : FileOutputCommitter{PathOutputCommitter{context=TaskAttemptContextImpl{JobContextImpl{jobId=job_202402220694_0010}; taskId=attempt_202402220694_0010_m_000000_0, status=''}; org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter@3f226b07}; outputPath=s3a://ahmarsu-test-aws-s3a/fork-00010/test/testEverything, workPath=s3a://ahmarsu-test-aws-s3a/fork-00010/test/testEverything/_temporary/1/_temporary/attempt_202402220694_0010_m_000000_0, algorithmVersion=1, skipCleanup=false, ignoreCleanupFailures=false}
[ERROR] Errors:
[ERROR]   ITestS3AContractVectoredRead.testEOFRanges416Handling[Buffer type : array] » EOF End of file reached before reading fully.
[ERROR]   ITestS3AContractVectoredRead.testEOFRanges416Handling[Buffer type : direct] » EOF End of file reached before reading fully.
[ERROR]   ITestConnectionTimeouts.testGeneratePoolTimeouts:131->lambda$testGeneratePoolTimeouts

Suspect the vectoreIO failures are intermittent, and ITestConnectionTimeouts.testGeneratePoolTimeouts is cause the S3 Encryption client is using the async client, so the error is probably different. But will investigate and fix accordingly asap.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 32s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 43s Maven dependency ordering for branch
+1 💚 mvninstall 32m 55s trunk passed
+1 💚 compile 17m 37s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 compile 18m 10s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+1 💚 checkstyle 4m 42s trunk passed
+1 💚 mvnsite 1m 24s trunk passed
+1 💚 javadoc 1m 11s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 43s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+0 🆗 spotbugs 0m 37s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 35m 47s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 1m 3s Maven dependency ordering for patch
-1 ❌ mvninstall 0m 15s /patch-mvninstall-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
-1 ❌ compile 16m 43s /patch-compile-root-jdkUbuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.
-1 ❌ javac 16m 43s /patch-compile-root-jdkUbuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.
-1 ❌ compile 17m 12s /patch-compile-root-jdkPrivateBuild-1.8.0_392-8u392-ga-1~20.04-b08.txt root in the patch failed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08.
-1 ❌ javac 17m 12s /patch-compile-root-jdkPrivateBuild-1.8.0_392-8u392-ga-1~20.04-b08.txt root in the patch failed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08.
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 31s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 1 fixed = 19 total (was 17)
-1 ❌ mvnsite 0m 34s /patch-mvnsite-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
-1 ❌ javadoc 0m 39s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04.
-1 ❌ javadoc 1m 4s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_392-8u392-ga-1~20.04-b08.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08.
+0 🆗 spotbugs 0m 32s hadoop-project has no data from spotbugs
-1 ❌ spotbugs 0m 32s /patch-spotbugs-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
+1 💚 shadedclient 35m 19s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 32s hadoop-project in the patch passed.
-1 ❌ unit 0m 33s /patch-unit-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
+1 💚 asflicense 0m 58s The patch does not generate ASF License warnings.
220m 16s
Subsystem Report/Notes
Docker ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/13/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux 3c0f53ce60c6 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 1b820bb
Default Java Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/13/testReport/
Max. process+thread count 750 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/13/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 34s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 27s Maven dependency ordering for branch
+1 💚 mvninstall 33m 29s trunk passed
+1 💚 compile 20m 25s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 compile 17m 17s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+1 💚 checkstyle 4m 17s trunk passed
+1 💚 mvnsite 1m 31s trunk passed
+1 💚 javadoc 1m 14s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 20s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+0 🆗 spotbugs 0m 41s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 35m 45s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 1m 4s Maven dependency ordering for patch
+1 💚 mvninstall 0m 51s the patch passed
+1 💚 compile 18m 23s the patch passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javac 18m 23s the patch passed
+1 💚 compile 17m 26s the patch passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+1 💚 javac 17m 26s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 18s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 1 fixed = 19 total (was 17)
+1 💚 mvnsite 1m 28s the patch passed
+1 💚 javadoc 1m 10s the patch passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 17s the patch passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+0 🆗 spotbugs 0m 35s hadoop-project has no data from spotbugs
+1 💚 shadedclient 34m 24s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 37s hadoop-project in the patch passed.
+1 💚 unit 3m 2s hadoop-aws in the patch passed.
+1 💚 asflicense 1m 4s The patch does not generate ASF License warnings.
226m 13s
Subsystem Report/Notes
Docker ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/14/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux 30b29bcb51ae 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 665cf0f
Default Java Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/14/testReport/
Max. process+thread count 681 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/14/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 21s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 18s Maven dependency ordering for branch
+1 💚 mvninstall 19m 53s trunk passed
+1 💚 compile 9m 44s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 compile 9m 51s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+1 💚 checkstyle 2m 22s trunk passed
+1 💚 mvnsite 1m 6s trunk passed
+1 💚 javadoc 0m 48s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 46s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+0 🆗 spotbugs 0m 23s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 23m 4s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 53s Maven dependency ordering for patch
+1 💚 mvninstall 0m 30s the patch passed
+1 💚 compile 8m 32s the patch passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javac 8m 32s the patch passed
+1 💚 compile 8m 9s the patch passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+1 💚 javac 8m 9s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 2m 0s /results-checkstyle-root.txt root: The patch generated 3 new + 16 unchanged - 1 fixed = 19 total (was 17)
+1 💚 mvnsite 1m 5s the patch passed
+1 💚 javadoc 0m 53s the patch passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 1m 0s the patch passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+0 🆗 spotbugs 0m 26s hadoop-project has no data from spotbugs
+1 💚 shadedclient 19m 59s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 24s hadoop-project in the patch passed.
+1 💚 unit 2m 27s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 43s The patch does not generate ASF License warnings.
135m 55s
Subsystem Report/Notes
Docker ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/15/artifact/out/Dockerfile
GITHUB PR #6164
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle
uname Linux d1eb7f583029 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 30acceb
Default Java Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/15/testReport/
Max. process+thread count 552 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6164/15/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

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

just reviewed again.

@@ -1149,6 +1150,17 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>software.amazon.encryption.s3</groupId>
Copy link
Contributor

Choose a reason for hiding this comment

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

is this going to get into bundle.jar?

public static SdkException maybeExtractSdkException(SdkException exception) {
SdkException extractedException = exception;
if (exception.toString().contains(ENCRYPTION_CLIENT_EXCEPTION)
&& exception.getCause() instanceof SdkException) {
Copy link
Contributor

Choose a reason for hiding this comment

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

lets put this at the top and return null immediately; lines up for adding more probes.

@ahmarsuhail ahmarsuhail force-pushed the HADOOP-18708-implement-cse branch from 30acceb to eb56cbf Compare March 7, 2024 10:15
@ahmarsuhail
Copy link
Contributor Author

Thanks @steveloughran . While looking at the test failures, I found a couple of issues with S3 Encryption Client, opened aws/amazon-s3-encryption-client-java#200 and aws/amazon-s3-encryption-client-java#201 there.

ITestS3AContractVectoredRead.testEOFRanges416Handling fails because S3EC does not throw an exception is range is greater than EOF.

ITestConnectionTimeouts.testGeneratePoolTimeouts fails because S3EC uses the async client to make requests, and the error thrown on a timeout is different. S3Client will throw

software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request
Caused by: software.amazon.awssdk.thirdparty.org.apache.http.conn.ConnectTimeoutException
Caused by: java.net.SocketTimeoutException: connect timed out

which gets translated to ConnectTimeoutException in S3AUtils.translateInterruptedException(). But AsynClient throws:

software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: 
Caused by: java.lang.Throwable: Acquire operation took longer than the configured maximum time.
Causes by: java.util.concurrent.TimeoutException: Acquire operation took longer than 10 milliseconds.

which currently doesn't get translated properly, so need to add some handling there.

Will wait for the fixes to S3EC, and then update error translation + address comments.

Also asked about adding it to bundle. Looking at S3EC dependencies, I think it may cause us some issues, but not sure:

[INFO] +- software.amazon.encryption.s3:amazon-s3-encryption-client-java:jar:3.1.1:provided
[INFO] |  +- software.amazon.awssdk:s3:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:aws-xml-protocol:jar:2.20.38:provided
[INFO] |  |  |  \- software.amazon.awssdk:aws-query-protocol:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:protocol-core:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:arns:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:profiles:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:crt-core:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:sdk-core:jar:2.20.38:provided
[INFO] |  |  |  \- org.reactivestreams:reactive-streams:jar:1.0.3:provided
[INFO] |  |  +- software.amazon.awssdk:auth:jar:2.20.38:provided
[INFO] |  |  |  \- software.amazon.eventstream:eventstream:jar:1.0.1:provided
[INFO] |  |  +- software.amazon.awssdk:http-client-spi:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:regions:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:annotations:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:utils:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:aws-core:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:metrics-spi:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:json-utils:jar:2.20.38:provided
[INFO] |  |  |  \- software.amazon.awssdk:third-party-jackson-core:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:endpoints-spi:jar:2.20.38:provided
[INFO] |  |  +- software.amazon.awssdk:apache-client:jar:2.20.38:provided
[INFO] |  |  \- software.amazon.awssdk:netty-nio-client:jar:2.20.38:provided
[INFO] |  +- joda-time:joda-time:jar:2.8.1:provided
[INFO] |  \- commons-logging:commons-logging:jar:1.2:provided

What do you think?

@steveloughran
Copy link
Contributor

java.util.concurrent.TimeoutException

easily added to the check

ITestS3AContractVectoredRead.testEOFRanges416Handling fails because S3EC does not throw an exception is range is greater than EOF.

just less data? not ideal.

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

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

commented. nice to see our tests catching bugs in the sdk bits. they should make it part of the nightlies (hint, hint,...)

going to need some doc updates on

  • how to use in installations "add more stuff"
  • how to use in downstream builds

wonder if a hadoop-aws-cse module should be added as a pom-only dependency for that

* This class is for storing information about key type and corresponding key
* to be used for client side encryption.
*/
public class CSEMaterials {
Copy link
Contributor

Choose a reason for hiding this comment

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

does this stuff get passed through delegation tokens? as they can be used to pass encryption secrets into a cluster


import static org.apache.hadoop.fs.s3a.impl.InstantiationIOException.unavailable;

public class EncryptionS3ClientFactory extends DefaultS3ClientFactory {
Copy link
Contributor

Choose a reason for hiding this comment

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

javadocs, which include mentioning that this needs the cse on the runtime

size).build();
size);

if (isLast) {
Copy link
Contributor

Choose a reason for hiding this comment

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

add this as a param to pass down to WriteOperationHelper and let the factory do the work

.withCSEKeyType(CSEMaterials.CSEKeyType.KMS)
.withKmsKeyId(kmsKeyId);

clientFactory = ReflectionUtils.newInstance(EncryptionS3ClientFactory.class, conf);
Copy link
Contributor

Choose a reason for hiding this comment

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

so if encryption is set, no custom client factory (done in places for unit tests) work. proposed: warn if cse is enabled and the value of (s3ClientFactoryClass is not the default

the other way would be to choose the default client factory based on the encryption flag, so tests will always override it (the documentation will have to cover it). I think I prefer that

@@ -1034,6 +1035,21 @@ private void bindAWSClient(URI name, boolean dtEnabled) throws IOException {
S3_CLIENT_FACTORY_IMPL, DEFAULT_S3_CLIENT_FACTORY_IMPL,
S3ClientFactory.class);

S3ClientFactory clientFactory;
CSEMaterials cseMaterials = null;
Copy link
Contributor

Choose a reason for hiding this comment

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

this stuff MUST pick up what is in EncryptionSecrets (which you can extend but MUST NOT use any aws sdk classes). this is what gets passed round with delegation tokens, so allows you to pass secrets with a job and without the cluster having the config

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants