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

HBASE-26666 Add native TLS encryption support to RPC server/client #4666

Merged
merged 4 commits into from Aug 6, 2022

Conversation

anmolnar
Copy link
Contributor

@anmolnar anmolnar commented Jul 29, 2022

Based on @Apache9 's suggestions and the previous PR #4125 the following changes have been incorporated:

  • flush() call handling is fixed in BufferCallBeforeInitHandler, so it will not block the SSL handshake,
  • SSLContext and SSLEngine are now based on Netty's SslContextBuilder class. In order to fully take advantage of that I had to add ByteBufAllocator config to the client side like we already have in the server,
  • SSLContext is cached in X509Util for client and server. This is because I'd like to add FileWatchers for keystore/truststore in order to easily renew certificates in a running cluster.

cc @bbeaudreault @meszibalu @joshelser

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 10s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for branch
+1 💚 mvninstall 2m 45s master passed
+1 💚 compile 1m 52s master passed
+1 💚 shadedjars 3m 45s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 8s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 16s Maven dependency ordering for patch
+1 💚 mvninstall 2m 34s the patch passed
+1 💚 compile 1m 51s the patch passed
+1 💚 javac 1m 51s the patch passed
+1 💚 shadedjars 3m 46s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 7s the patch passed
_ Other Tests _
-1 ❌ unit 29m 10s root in the patch failed.
57m 4s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux d7955b0e4a86 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 811f0e7
Default Java AdoptOpenJDK-11.0.10+9
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/testReport/
Max. process+thread count 815 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 49s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 21s Maven dependency ordering for branch
+1 💚 mvninstall 2m 50s master passed
+1 💚 compile 1m 37s master passed
+1 💚 shadedjars 4m 24s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 42s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 36s the patch passed
+1 💚 compile 1m 40s the patch passed
+1 💚 javac 1m 40s the patch passed
+1 💚 shadedjars 4m 47s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 49s the patch passed
_ Other Tests _
-1 ❌ unit 33m 4s root in the patch failed.
60m 18s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 14df6b666e51 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 811f0e7
Default Java AdoptOpenJDK-1.8.0_282-b08
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/testReport/
Max. process+thread count 784 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 3s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for branch
+1 💚 mvninstall 2m 24s master passed
+1 💚 compile 6m 15s master passed
+1 💚 checkstyle 1m 1s master passed
+1 💚 spotless 0m 45s branch has no errors when running spotless:check.
+1 💚 spotbugs 10m 12s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 16s Maven dependency ordering for patch
+1 💚 mvninstall 2m 15s the patch passed
+1 💚 compile 6m 11s the patch passed
-0 ⚠️ javac 6m 11s root generated 2 new + 1067 unchanged - 0 fixed = 1069 total (was 1067)
-0 ⚠️ checkstyle 1m 0s root: The patch generated 14 new + 2 unchanged - 0 fixed = 16 total (was 2)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 hadoopcheck 11m 38s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
-1 ❌ spotless 0m 14s patch has 65 errors when running spotless:check, run spotless:apply to fix.
+1 💚 spotbugs 10m 44s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 48s The patch does not generate ASF License warnings.
61m 9s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4666
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
uname Linux 05bb7c425496 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 811f0e7
Default Java AdoptOpenJDK-1.8.0_282-b08
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-general-check/output/diff-compile-javac-root.txt
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-general-check/output/diff-checkstyle-root.txt
spotless https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count 138 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 10s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 17s Maven dependency ordering for branch
+1 💚 mvninstall 2m 44s master passed
+1 💚 compile 1m 56s master passed
+1 💚 shadedjars 3m 43s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 7s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 35s the patch passed
+1 💚 compile 1m 54s the patch passed
+1 💚 javac 1m 54s the patch passed
+1 💚 shadedjars 3m 41s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 5s the patch passed
_ Other Tests _
-1 ❌ unit 29m 0s root in the patch failed.
56m 34s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 4413e227880e 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 811f0e7
Default Java AdoptOpenJDK-11.0.10+9
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/testReport/
Max. process+thread count 832 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 5s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for branch
+1 💚 mvninstall 2m 13s master passed
+1 💚 compile 6m 15s master passed
+1 💚 checkstyle 0m 59s master passed
+1 💚 spotless 0m 43s branch has no errors when running spotless:check.
+1 💚 spotbugs 10m 5s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 2m 14s the patch passed
+1 💚 compile 6m 8s the patch passed
-0 ⚠️ javac 6m 8s root generated 2 new + 1067 unchanged - 0 fixed = 1069 total (was 1067)
+1 💚 checkstyle 0m 59s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 hadoopcheck 11m 25s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚 spotless 0m 43s patch has no errors when running spotless:check.
+1 💚 spotbugs 10m 55s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 47s The patch does not generate ASF License warnings.
60m 48s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4666
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
uname Linux 97f316715d9c 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 811f0e7
Default Java AdoptOpenJDK-1.8.0_282-b08
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/artifact/yetus-general-check/output/diff-compile-javac-root.txt
Max. process+thread count 139 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 53s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 2m 43s master passed
+1 💚 compile 1m 51s master passed
+1 💚 shadedjars 4m 42s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 39s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 2m 39s the patch passed
+1 💚 compile 1m 45s the patch passed
+1 💚 javac 1m 45s the patch passed
+1 💚 shadedjars 4m 36s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 47s the patch passed
_ Other Tests _
-1 ❌ unit 34m 28s root in the patch failed.
61m 44s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 3696271b1b28 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 811f0e7
Default Java AdoptOpenJDK-1.8.0_282-b08
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/testReport/
Max. process+thread count 753 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

String keyStoreType = config.get(TLS_CONFIG_KEYSTORE_TYPE, "");

if (keyStoreLocation.isEmpty()) {
LOG.warn("{} not specified", TLS_CONFIG_KEYSTORE_LOCATION);
Copy link
Contributor

Choose a reason for hiding this comment

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

TLS_CONFIG_KEYSTORE_LOCATION is a constant? Then just concat it? It will be convert to a String literal at compile time so no performance issue.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I always do it this way by habit. No need to think about the perf impact.. Do you know about any downside?

Copy link
Contributor

Choose a reason for hiding this comment

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

It will lead to a String replacement at runtime, while the string constant can be computed at compile time.

hbase-server/src/test/resources/log4j2.properties Outdated Show resolved Hide resolved
boolean sslOcspEnabled = config.getBoolean(TLS_CONFIG_OCSP, false);

if (trustStoreLocation.isEmpty()) {
LOG.warn("{} not specified", TLS_CONFIG_TRUSTSTORE_LOCATION);
Copy link
Contributor

Choose a reason for hiding this comment

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

Will this cause the later sslContextBuilder.build() to fail?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nope. I added 2 new tests to cover that.

Copy link
Contributor

Choose a reason for hiding this comment

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

Then what is real effect if we do not have trust store location specified? It will try to locate the default location on the OS?

Copy link
Contributor

Choose a reason for hiding this comment

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

This is an important problem. My concern is that, if this is misconfigured, i.e, no trust store location is specified, what is the actual effect? The user will have an insecure connection instead?

Copy link
Contributor Author

@anmolnar anmolnar Aug 2, 2022

Choose a reason for hiding this comment

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

It always loads the default truststore from the OS. This config is just an addition for certificates that are not part of the official store, for instance because they're self-signed.

In a real production system one doesn't need to specify it, because the certificates are generated by a certified provider.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The user will have an insecure connection instead?

This is not possible. SSLHandler will never in any case accept an untrusted cerificate.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 13s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for branch
+1 💚 mvninstall 2m 56s master passed
+1 💚 compile 7m 48s master passed
+1 💚 checkstyle 1m 13s master passed
+1 💚 spotless 0m 49s branch has no errors when running spotless:check.
+1 💚 spotbugs 12m 57s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 17s Maven dependency ordering for patch
+1 💚 mvninstall 2m 10s the patch passed
+1 💚 compile 6m 12s the patch passed
-0 ⚠️ javac 6m 12s root generated 2 new + 1067 unchanged - 0 fixed = 1069 total (was 1067)
+1 💚 checkstyle 1m 0s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 hadoopcheck 11m 34s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚 spotless 0m 43s patch has no errors when running spotless:check.
+1 💚 spotbugs 10m 43s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 48s The patch does not generate ASF License warnings.
66m 37s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4666
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
uname Linux 1636ebe8ef3d 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / e8c14ee
Default Java AdoptOpenJDK-1.8.0_282-b08
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/artifact/yetus-general-check/output/diff-compile-javac-root.txt
Max. process+thread count 138 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 47s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 47s Maven dependency ordering for branch
+1 💚 mvninstall 3m 20s master passed
+1 💚 compile 2m 20s master passed
+1 💚 shadedjars 5m 7s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 46s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 58s the patch passed
+1 💚 compile 2m 11s the patch passed
+1 💚 javac 2m 11s the patch passed
+1 💚 shadedjars 5m 29s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 17s the patch passed
_ Other Tests _
-1 ❌ unit 37m 56s root in the patch failed.
71m 28s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 6cbfb06f453f 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / e8c14ee
Default Java AdoptOpenJDK-1.8.0_282-b08
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/testReport/
Max. process+thread count 786 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 28s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 20s Maven dependency ordering for branch
+1 💚 mvninstall 3m 28s master passed
+1 💚 compile 2m 12s master passed
+1 💚 shadedjars 5m 17s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 4m 17s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 23s Maven dependency ordering for patch
+1 💚 mvninstall 4m 11s the patch passed
+1 💚 compile 3m 18s the patch passed
+1 💚 javac 3m 18s the patch passed
+1 💚 shadedjars 5m 44s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 4m 37s the patch passed
_ Other Tests _
-1 ❌ unit 41m 54s root in the patch failed.
81m 24s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux d37530a258d7 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / e8c14ee
Default Java AdoptOpenJDK-11.0.10+9
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/testReport/
Max. process+thread count 798 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@Apache9 Apache9 left a comment

Choose a reason for hiding this comment

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

Much better now. I think we are close to merge.

Another thing is that, the ssl configs can only work with NettyRpcServer/NettyRpcClient, besides documentation, we'd better also change the implementation for SimpleRpcServer/BlockingRpcClient to check whether the ssl config is specified? If so, we should fail the initialization to tell users that the configs will not take effect.

protected void initChannel(Channel ch) throws Exception {
if (conf.getBoolean(X509Util.HBASE_CLIENT_NETTY_TLS_ENABLED, false)) {
SslContext sslContext = rpcClient.getSslContext();
SslHandler sslHandler = sslContext.newHandler(byteBufAllocator,
Copy link
Contributor

Choose a reason for hiding this comment

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

Here you could just use ch.alloc(). so you do not need to store a byteBufAllocator in NettyRpcConnection.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nice catch.


public NettyRpcClient(Configuration configuration, String clusterId, SocketAddress localAddress,
MetricsConnection metrics) {
MetricsConnection metrics) throws SSLContextException, IOException {
Copy link
Contributor

Choose a reason for hiding this comment

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

I do not think we will throw these exceptions after refactoring, so just remove the throws here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

return result;
}

private ByteBufAllocator getByteBufAllocator(Configuration conf) throws IOException {
Copy link
Contributor

Choose a reason for hiding this comment

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

As another comment points out, we do not need to pass a ByteBufAllocator to NettyRpcConnection, so let's not include this change in this PR. We can file another issue to land this change.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I remove it from this patch, but do you think it still makes sense to do it separately?

Copy link
Contributor

Choose a reason for hiding this comment

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

Can do it separately. And also about whether to enable epoll on client side.

SslContextBuilder sslContextBuilder = SslContextBuilder.forClient();

String keyStoreLocation = config.get(TLS_CONFIG_KEYSTORE_LOCATION, "");
String keyStorePassword = config.get(TLS_CONFIG_KEYSTORE_PASSWORD, "");
Copy link
Contributor

Choose a reason for hiding this comment

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

Is it a good practise to store password in hbase-site.xml? Not a blocker, just asking, for me I just do not have a good idea on how to do this in an open source project...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This hasn't been raised against ZooKeeper so far, but I can think of 2 other approaches which might safer:

  1. Separate file which can be protected differently.
  2. Env var.

Copy link
Contributor

Choose a reason for hiding this comment

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

Can be a separate issue too.

Copy link
Contributor

Choose a reason for hiding this comment

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

Oh, this one is also a long term improment.

"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" };
}

private static String[] concatArrays(String[] left, String[] right) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Just use Guava's ObjectArrays.concat, so we can save several lines.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This has been reverted, because Guava's method has some glitch with the cert validation logic, I'm still working on it.

@@ -107,7 +108,8 @@ protected abstract RpcServer createRpcServer(final Server server, final String n
final List<BlockingServiceAndInterface> services, final InetSocketAddress bindAddress,
Configuration conf, RpcScheduler scheduler) throws IOException;

protected abstract AbstractRpcClient<?> createRpcClientNoCodec(Configuration conf);
protected abstract AbstractRpcClient<?> createRpcClientNoCodec(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.

After removing the throws declaration of NettyRpcClient, I think we do not need to change these lines then.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Reverted.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 35s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 16s Maven dependency ordering for branch
+1 💚 mvninstall 3m 3s master passed
+1 💚 compile 2m 9s master passed
+1 💚 shadedjars 5m 24s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 26s master passed
-0 ⚠️ patch 9m 23s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 55s the patch passed
+1 💚 compile 2m 9s the patch passed
+1 💚 javac 2m 9s the patch passed
+1 💚 shadedjars 5m 47s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 16s the patch passed
_ Other Tests _
-1 ❌ unit 1m 38s root in the patch failed.
33m 19s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux fa21522e30cb 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / e8c14ee
Default Java AdoptOpenJDK-1.8.0_282-b08
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/testReport/
Max. process+thread count 164 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 2m 3s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 23s Maven dependency ordering for branch
+1 💚 mvninstall 3m 46s master passed
+1 💚 compile 2m 51s master passed
+1 💚 shadedjars 5m 27s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 4m 22s master passed
-0 ⚠️ patch 10m 32s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 17s Maven dependency ordering for patch
+1 💚 mvninstall 3m 54s the patch passed
+1 💚 compile 2m 41s the patch passed
+1 💚 javac 2m 41s the patch passed
+1 💚 shadedjars 5m 39s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 4m 33s the patch passed
_ Other Tests _
-1 ❌ unit 2m 38s root in the patch failed.
40m 10s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux e3a76200266b 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / e8c14ee
Default Java AdoptOpenJDK-11.0.10+9
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/testReport/
Max. process+thread count 191 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 5s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 22s Maven dependency ordering for branch
+1 💚 mvninstall 2m 19s master passed
+1 💚 compile 6m 15s master passed
+1 💚 checkstyle 1m 1s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 10m 1s master passed
-0 ⚠️ patch 7m 51s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 16s the patch passed
+1 💚 compile 6m 9s the patch passed
-0 ⚠️ javac 6m 9s root generated 1 new + 1067 unchanged - 0 fixed = 1068 total (was 1067)
-0 ⚠️ checkstyle 1m 0s root: The patch generated 3 new + 2 unchanged - 0 fixed = 5 total (was 2)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 hadoopcheck 11m 37s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
-1 ❌ spotless 0m 13s patch has 25 errors when running spotless:check, run spotless:apply to fix.
-1 ❌ spotbugs 0m 46s hbase-client generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
-1 ❌ spotbugs 7m 33s root generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 💚 asflicense 0m 47s The patch does not generate ASF License warnings.
60m 34s
Reason Tests
FindBugs module:hbase-client
Dead store to p in org.apache.hadoop.hbase.ipc.NettyRpcConnection.established(Channel) At NettyRpcConnection.java:org.apache.hadoop.hbase.ipc.NettyRpcConnection.established(Channel) At NettyRpcConnection.java:[line 175]
FindBugs module:root
Dead store to p in org.apache.hadoop.hbase.ipc.NettyRpcConnection.established(Channel) At NettyRpcConnection.java:org.apache.hadoop.hbase.ipc.NettyRpcConnection.established(Channel) At NettyRpcConnection.java:[line 175]
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4666
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
uname Linux b09ecfbc4f11 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / e8c14ee
Default Java AdoptOpenJDK-1.8.0_282-b08
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/diff-compile-javac-root.txt
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/diff-checkstyle-root.txt
spotless https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/patch-spotless.txt
spotbugs https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/new-spotbugs-hbase-client.html
spotbugs https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/new-spotbugs-root.html
Max. process+thread count 140 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@anmolnar
Copy link
Contributor Author

anmolnar commented Aug 1, 2022

Much better now. I think we are close to merge.

So good to hear that. ;)

Another thing is that, the ssl configs can only work with NettyRpcServer/NettyRpcClient, besides documentation, we'd better also change the implementation for SimpleRpcServer/BlockingRpcClient to check whether the ssl config is specified? If so, we should fail the initialization to tell users that the configs will not take effect.

I need some more cycles to address this. The rest is hopefully done.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 2m 0s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 3m 6s master passed
+1 💚 compile 9m 5s master passed
+1 💚 checkstyle 1m 23s master passed
+1 💚 spotless 1m 4s branch has no errors when running spotless:check.
+1 💚 spotbugs 16m 8s master passed
-0 ⚠️ patch 12m 39s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 21s Maven dependency ordering for patch
+1 💚 mvninstall 3m 15s the patch passed
+1 💚 compile 10m 39s the patch passed
+1 💚 javac 10m 39s the patch passed
+1 💚 checkstyle 1m 31s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 3s The patch has no ill-formed XML file.
+1 💚 hadoopcheck 15m 58s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚 spotless 1m 6s patch has no errors when running spotless:check.
+1 💚 spotbugs 15m 43s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 43s The patch does not generate ASF License warnings.
91m 24s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4666
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
uname Linux 4b7cfdc338d3 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / e8c14ee
Default Java AdoptOpenJDK-1.8.0_282-b08
Max. process+thread count 139 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 7s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 20s Maven dependency ordering for branch
+1 💚 mvninstall 2m 40s master passed
+1 💚 compile 1m 52s master passed
+1 💚 shadedjars 3m 41s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 5s master passed
-0 ⚠️ patch 7m 24s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 30s the patch passed
+1 💚 compile 1m 54s the patch passed
+1 💚 javac 1m 54s the patch passed
+1 💚 shadedjars 3m 42s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 4s the patch passed
_ Other Tests _
-1 ❌ unit 229m 56s root in the patch failed.
256m 29s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 89d7afd2de53 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / e8c14ee
Default Java AdoptOpenJDK-11.0.10+9
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/testReport/
Max. process+thread count 2368 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 36s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 2m 9s master passed
+1 💚 compile 1m 29s master passed
+1 💚 shadedjars 4m 3s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 14s master passed
-0 ⚠️ patch 6m 43s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 8s the patch passed
+1 💚 compile 1m 27s the patch passed
+1 💚 javac 1m 27s the patch passed
+1 💚 shadedjars 4m 1s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 14s the patch passed
_ Other Tests _
-1 ❌ unit 328m 38s root in the patch failed.
351m 3s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux d5fc7c838b5b 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / e8c14ee
Default Java AdoptOpenJDK-1.8.0_282-b08
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/testReport/
Max. process+thread count 2427 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@@ -57,7 +58,7 @@ public class TestNettyRpcConnection {
private static NettyRpcConnection CONN;

@BeforeClass
public static void setUp() throws IOException {
public static void setUp() throws IOException, SSLContextException {
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we still need this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I reverted the entire file to master.

@@ -66,7 +67,8 @@ public IntegrationTestRpcClient() {
conf = HBaseConfiguration.create();
}

protected AbstractRpcClient<?> createRpcClient(Configuration conf, boolean isSyncClient) {
protected AbstractRpcClient<?> createRpcClient(Configuration conf, boolean isSyncClient)
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we still need to throw SSLContextException here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This one too.

@@ -290,7 +292,8 @@ void rethrowException() throws Throwable {
* is closing.
*/
@Test
public void testRpcWithWriteThread() throws IOException, InterruptedException {
public void testRpcWithWriteThread()
throws IOException, InterruptedException, SSLContextException {
Copy link
Contributor

Choose a reason for hiding this comment

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

Ditto.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Same here.

Comment on lines 245 to 253
SslContext result = sslContextForServer.get();
if (result == null) {
result = X509Util.createSslContextForServer(conf);
if (!sslContextForServer.compareAndSet(null, result)) {
// lost the race, another thread already set the value
result = sslContextForServer.get();
}
}
return result;
Copy link
Contributor

Choose a reason for hiding this comment

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

If you create the context in initSsl then you don't have to lock, because it is called from the constructor.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is done. I removed the entire lazy-init logic from the server.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 3s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 20s Maven dependency ordering for branch
+1 💚 mvninstall 2m 35s master passed
+1 💚 compile 1m 52s master passed
+1 💚 shadedjars 3m 41s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 4s master passed
-0 ⚠️ patch 7m 22s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 35s the patch passed
+1 💚 compile 1m 54s the patch passed
+1 💚 javac 1m 54s the patch passed
+1 💚 shadedjars 3m 41s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 6s the patch passed
_ Other Tests _
-1 ❌ unit 226m 36s root in the patch failed.
253m 6s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 36bba4dd5bb3 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / d734acc
Default Java AdoptOpenJDK-11.0.10+9
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/testReport/
Max. process+thread count 2817 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 38s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 39s Maven dependency ordering for branch
+1 💚 mvninstall 2m 7s master passed
+1 💚 compile 1m 28s master passed
+1 💚 shadedjars 4m 0s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 15s master passed
-0 ⚠️ patch 6m 41s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 8s the patch passed
+1 💚 compile 1m 29s the patch passed
+1 💚 javac 1m 29s the patch passed
+1 💚 shadedjars 4m 0s patch has no errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 1m 20s root generated 3 new + 81 unchanged - 3 fixed = 84 total (was 84)
_ Other Tests _
-1 ❌ unit 328m 13s root in the patch failed.
351m 20s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux a6559522ad3f 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / d734acc
Default Java AdoptOpenJDK-1.8.0_282-b08
javadoc https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/artifact/yetus-jdk8-hadoop3-check/output/diff-javadoc-javadoc-root.txt
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/testReport/
Max. process+thread count 2461 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server hbase-it . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 5s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 20s Maven dependency ordering for branch
+1 💚 mvninstall 2m 17s master passed
+1 💚 compile 6m 9s master passed
+1 💚 checkstyle 1m 0s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 9m 42s master passed
-0 ⚠️ patch 7m 44s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 10s the patch passed
+1 💚 compile 6m 6s the patch passed
+1 💚 javac 6m 6s the patch passed
-0 ⚠️ checkstyle 0m 58s root: The patch generated 3 new + 2 unchanged - 0 fixed = 5 total (was 2)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 hadoopcheck 11m 30s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
-1 ❌ spotless 0m 14s patch has 21 errors when running spotless:check, run spotless:apply to fix.
+1 💚 spotbugs 10m 19s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 39s The patch does not generate ASF License warnings.
58m 57s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4666
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
uname Linux 62e96ec59925 5.4.0-122-generic #138-Ubuntu SMP Wed Jun 22 15:00:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / d734acc
Default Java AdoptOpenJDK-1.8.0_282-b08
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-general-check/output/diff-checkstyle-root.txt
spotless https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count 139 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 21s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for branch
+1 💚 mvninstall 3m 16s master passed
+1 💚 compile 2m 28s master passed
+1 💚 shadedjars 4m 25s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 32s master passed
-0 ⚠️ patch 8m 23s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 3m 11s the patch passed
+1 💚 compile 2m 22s the patch passed
+1 💚 javac 2m 22s the patch passed
+1 💚 shadedjars 5m 5s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 57s the patch passed
_ Other Tests _
-1 ❌ unit 259m 5s root in the patch failed.
291m 10s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 760541af161e 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / d734acc
Default Java AdoptOpenJDK-11.0.10+9
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/testReport/
Max. process+thread count 2481 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 38s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 2m 14s master passed
+1 💚 compile 1m 31s master passed
+1 💚 shadedjars 4m 1s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 5s master passed
-0 ⚠️ patch 6m 27s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 6s the patch passed
+1 💚 compile 1m 27s the patch passed
+1 💚 javac 1m 27s the patch passed
+1 💚 shadedjars 4m 3s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 4s the patch passed
_ Other Tests _
-1 ❌ unit 326m 38s root in the patch failed.
348m 51s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 1fb16e4cbedb 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / d734acc
Default Java AdoptOpenJDK-1.8.0_282-b08
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/testReport/
Max. process+thread count 2192 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@anmolnar
Copy link
Contributor Author

anmolnar commented Aug 3, 2022

I'm working on fixing the unit tests, but can't figure out why TestSecureIPC is impacted. Nothing has been changed on that code path apart from some refactoring.

@anmolnar
Copy link
Contributor Author

anmolnar commented Aug 3, 2022

Eating the flush() call in BufferCallBeforeInitHandler breaks the test, but don't know why yet. Something to do with CryptoAES: does it need to flush() before connection is established?

@Apache9
Copy link
Contributor

Apache9 commented Aug 3, 2022

Eating the flush() call in BufferCallBeforeInitHandler breaks the test, but don't know why yet. Something to do with CryptoAES: does it need to flush() before connection is established?

Ouch, let me take a look too...

@Apache9
Copy link
Contributor

Apache9 commented Aug 3, 2022

Ah it is about the order...

The original implementation is incorrect... It should place itself in front of BufferCallBeforeInitHandler...

Change the saslNegotiate like this can solve the problem(also done a simple refactoring to give ReadTimeoutHandler a name as this is a general handler in netty, use class may have other side effects if we have other handlers with the same type in the pipeline)

      @Override
      public void operationComplete(Future<Boolean> future) throws Exception {
        if (future.isSuccess()) {
          ChannelPipeline p = ch.pipeline();
          // check if negotiate with server for connection header is necessary
          if (saslHandler.isNeedProcessConnectionHeader()) {
            Promise<Boolean> connectionHeaderPromise = ch.eventLoop().newPromise();
            // create the handler to handle the connection header
            NettyHBaseRpcConnectionHeaderHandler chHandler = new NettyHBaseRpcConnectionHeaderHandler(
              connectionHeaderPromise, conf, connectionHeaderWithLength);

            // add ReadTimeoutHandler to deal with server doesn't response connection header
            // because of the different configuration in client side and server side
            final String readTimeoutHandlerName = "ReadTimeout";
            p.addBefore(BufferCallBeforeInitHandler.NAME, readTimeoutHandlerName,
              new ReadTimeoutHandler(RpcClient.DEFAULT_SOCKET_TIMEOUT_READ, TimeUnit.MILLISECONDS))
              .addBefore(BufferCallBeforeInitHandler.NAME, null, chHandler);
            connectionHeaderPromise.addListener(new FutureListener<Boolean>() {
              @Override
              public void operationComplete(Future<Boolean> future) throws Exception {
                if (future.isSuccess()) {
                  ChannelPipeline p = ch.pipeline();
                  p.remove(readTimeoutHandlerName);
                  p.remove(NettyHBaseRpcConnectionHeaderHandler.class);
                  // don't send connection header, NettyHbaseRpcConnectionHeaderHandler
                  // sent it already
                  established(ch);
                } else {
                  final Throwable error = future.cause();
                  scheduleRelogin(error);
                  failInit(ch, toIOE(error));
                }
              }
            });
          } else {
            // send the connection header to server
            ch.write(connectionHeaderWithLength.retainedDuplicate());
            established(ch);
          }
        } else {
          final Throwable error = future.cause();
          scheduleRelogin(error);
          failInit(ch, toIOE(error));
        }
      }
    });

@Apache9
Copy link
Contributor

Apache9 commented Aug 3, 2022

Or I could open another PR for fixing this...

@Apache9
Copy link
Contributor

Apache9 commented Aug 5, 2022

I have no big concerns.
Please rebase and let's the pre commit result. Will approve if there are no related failures.
Thanks @anmolnar for the great work and patience.

Thanks @Apache9 . I still have 2 things on my list:

  1. "Another thing is that, the ssl configs can only work with NettyRpcServer/NettyRpcClient, besides documentation, we'd better also change the implementation for SimpleRpcServer/BlockingRpcClient to check whether the ssl config is specified? If so, we should fail the initialization to tell users that the configs will not take effect."
  2. Use Guava's concat array function.

I think the second one has already been implemented? The first one can be a follow on issue. PTAL at the concerns raised by @wchevreuil . I think we could change TestTlsWithKerberos to test more sasl qops.

Thanks.

@anmolnar
Copy link
Contributor Author

anmolnar commented Aug 5, 2022

I think we could modify the TestTlsWithKerberos test to also set protection to auth-conf and auth-int to see if it still works. @anmolnar

I've already tried that, it doesn't work. Neither privacy, nor integrity. I didn't dig too much into that, because TLS already provides both security and integrity, and in reality it doesn't make sense to me to use together with Kerberos' similar features.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 55s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 42s Maven dependency ordering for branch
+1 💚 mvninstall 2m 30s master passed
+1 💚 compile 7m 36s master passed
+1 💚 checkstyle 1m 6s master passed
+1 💚 spotless 0m 48s branch has no errors when running spotless:check.
+1 💚 spotbugs 11m 53s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 36s the patch passed
+1 💚 compile 7m 26s the patch passed
+1 💚 javac 7m 26s the patch passed
+1 💚 checkstyle 1m 5s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 hadoopcheck 13m 32s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚 spotless 0m 48s patch has no errors when running spotless:check.
+1 💚 spotbugs 12m 21s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 38s The patch does not generate ASF License warnings.
71m 1s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4666
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
uname Linux 77140911ef95 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2ac5578
Default Java AdoptOpenJDK-1.8.0_282-b08
Max. process+thread count 138 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 32s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for branch
+1 💚 mvninstall 4m 1s master passed
+1 💚 compile 2m 39s master passed
+1 💚 shadedjars 4m 41s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 4m 11s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 3m 44s the patch passed
+1 💚 compile 2m 50s the patch passed
+1 💚 javac 2m 50s the patch passed
+1 💚 shadedjars 5m 3s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 3m 42s the patch passed
_ Other Tests _
+1 💚 unit 267m 59s root in the patch passed.
304m 5s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 7b7261794c9a 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2ac5578
Default Java AdoptOpenJDK-11.0.10+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/testReport/
Max. process+thread count 4567 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 8s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 17s Maven dependency ordering for branch
+1 💚 mvninstall 2m 23s master passed
+1 💚 compile 1m 37s master passed
+1 💚 shadedjars 3m 42s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 22s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 17s the patch passed
+1 💚 compile 1m 36s the patch passed
+1 💚 javac 1m 36s the patch passed
+1 💚 shadedjars 3m 46s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 20s the patch passed
_ Other Tests _
+1 💚 unit 363m 21s root in the patch passed.
388m 3s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux a9934933e53f 5.4.0-122-generic #138-Ubuntu SMP Wed Jun 22 15:00:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2ac5578
Default Java AdoptOpenJDK-1.8.0_282-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/testReport/
Max. process+thread count 4457 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 37s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 20s Maven dependency ordering for branch
+1 💚 mvninstall 2m 28s master passed
+1 💚 compile 1m 29s master passed
+1 💚 shadedjars 4m 6s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 9s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
-1 ❌ mvninstall 0m 31s root in the patch failed.
-1 ❌ compile 0m 25s root in the patch failed.
-0 ⚠️ javac 0m 25s root in the patch failed.
-1 ❌ shadedjars 0m 38s patch has 10 errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 0m 12s hbase-client generated 4 new + 30 unchanged - 0 fixed = 34 total (was 30)
-0 ⚠️ javadoc 0m 20s hbase-server generated 7 new + 23 unchanged - 0 fixed = 30 total (was 23)
-0 ⚠️ javadoc 1m 21s root generated 11 new + 84 unchanged - 0 fixed = 95 total (was 84)
_ Other Tests _
-1 ❌ unit 0m 27s root in the patch failed.
16m 41s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux b63c52a1466f 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 486d19e
Default Java AdoptOpenJDK-1.8.0_282-b08
mvninstall https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-mvninstall-root.txt
compile https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-compile-root.txt
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-compile-root.txt
shadedjars https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-shadedjars.txt
javadoc https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/diff-javadoc-javadoc-hbase-client.txt
javadoc https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/diff-javadoc-javadoc-hbase-server.txt
javadoc https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/diff-javadoc-javadoc-root.txt
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/testReport/
Max. process+thread count 126 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@anmolnar
Copy link
Contributor Author

anmolnar commented Aug 6, 2022

@Apache9 I hopefully finished the final touches. As mentioned in the previous comment Kerberos privacy and integrity cannot work together with this TLS implementation. I receive the "Not a SSL/TLS packet" exception when any of these Krb features is enabled. We could disable this by raising an invalid configuration error in a later patch.

The following items are outstanding for further PRs:

  1. "Another thing is that, the ssl configs can only work with NettyRpcServer/NettyRpcClient, besides documentation, we'd better also change the implementation for SimpleRpcServer/BlockingRpcClient to check whether the ssl config is specified? If so, we should fail the initialization to tell users that the configs will not take effect."

I can add the Kerberos config check to this.

  1. Make client buffer allocator configurable.

Is there anything else I miss?

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 4s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for branch
+1 💚 mvninstall 2m 37s master passed
+1 💚 compile 1m 58s master passed
+1 💚 shadedjars 3m 41s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 52s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
-1 ❌ mvninstall 0m 44s root in the patch failed.
-1 ❌ compile 0m 37s root in the patch failed.
-0 ⚠️ javac 0m 37s root in the patch failed.
-1 ❌ shadedjars 0m 48s patch has 10 errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 0m 10s hbase-client in the patch failed.
-0 ⚠️ javadoc 0m 14s hbase-server in the patch failed.
-0 ⚠️ javadoc 0m 32s root in the patch failed.
_ Other Tests _
-1 ❌ unit 0m 39s root in the patch failed.
18m 8s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 28d460cd33fd 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 486d19e
Default Java AdoptOpenJDK-11.0.10+9
mvninstall https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-mvninstall-root.txt
compile https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-compile-root.txt
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-compile-root.txt
shadedjars https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-shadedjars.txt
javadoc https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-client.txt
javadoc https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt
javadoc https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-root.txt
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/testReport/
Max. process+thread count 144 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache9
Copy link
Contributor

Apache9 commented Aug 6, 2022

@Apache9 I hopefully finished the final touches. As mentioned in the previous comment Kerberos privacy and integrity cannot work together with this TLS implementation. I receive the "Not a SSL/TLS packet" exception when any of these Krb features is enabled. We could disable this by raising an invalid configuration error in a later patch.

The following items are outstanding for further PRs:

  1. "Another thing is that, the ssl configs can only work with NettyRpcServer/NettyRpcClient, besides documentation, we'd better also change the implementation for SimpleRpcServer/BlockingRpcClient to check whether the ssl config is specified? If so, we should fail the initialization to tell users that the configs will not take effect."

I can add the Kerberos config check to this.

  1. Make client buffer allocator configurable.

Is there anything else I miss?

I tried locally based on your patch, I could make the kerberos wrap/unwrap work with SSL, can work on a follow on issue to make it work, though this is not recommanded as it is useless and usually SSL could have a much better performance.

The others are all good. Let me take a final look on the PR.

Thanks.

@Apache9
Copy link
Contributor

Apache9 commented Aug 6, 2022

Oh, when trying to add tests, I think we could also improve the tests, by extending the existing IPC UTs in HBase. Could also be a follow on issue.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 3s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 20s Maven dependency ordering for branch
+1 💚 mvninstall 2m 17s master passed
+1 💚 compile 6m 6s master passed
+1 💚 checkstyle 1m 0s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 9m 42s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 16s Maven dependency ordering for patch
-1 ❌ mvninstall 0m 35s root in the patch failed.
-1 ❌ compile 0m 58s root in the patch failed.
-0 ⚠️ javac 0m 58s root in the patch failed.
-0 ⚠️ checkstyle 0m 58s root: The patch generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
-1 ❌ hadoopcheck 0m 34s The patch causes 10 errors with Hadoop v3.1.2.
-1 ❌ hadoopcheck 1m 9s The patch causes 10 errors with Hadoop v3.2.2.
-1 ❌ hadoopcheck 1m 43s The patch causes 10 errors with Hadoop v3.3.1.
-1 ❌ spotless 0m 11s patch has 29 errors when running spotless:check, run spotless:apply to fix.
-1 ❌ spotbugs 0m 9s hbase-common in the patch failed.
-1 ❌ spotbugs 0m 14s hbase-client in the patch failed.
-1 ❌ spotbugs 0m 23s hbase-server in the patch failed.
-1 ❌ spotbugs 2m 35s root in the patch failed.
_ Other Tests _
+1 💚 asflicense 0m 29s The patch does not generate ASF License warnings.
31m 24s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4666
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
uname Linux 66089ecb7f0b 5.4.0-122-generic #138-Ubuntu SMP Wed Jun 22 15:00:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 486d19e
Default Java AdoptOpenJDK-1.8.0_282-b08
mvninstall https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-mvninstall-root.txt
compile https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-compile-root.txt
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-compile-root.txt
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/diff-checkstyle-root.txt
hadoopcheck https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-javac-3.1.2.txt
hadoopcheck https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-javac-3.2.2.txt
hadoopcheck https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-javac-3.3.1.txt
spotless https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-spotless.txt
spotbugs https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-spotbugs-hbase-common.txt
spotbugs https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-spotbugs-hbase-client.txt
spotbugs https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-spotbugs-hbase-server.txt
spotbugs https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-spotbugs-root.txt
Max. process+thread count 137 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 1s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for branch
+1 💚 mvninstall 2m 13s master passed
+1 💚 compile 6m 8s master passed
+1 💚 checkstyle 0m 58s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 9m 49s master passed
-0 ⚠️ patch 7m 52s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 8s the patch passed
+1 💚 compile 6m 9s the patch passed
+1 💚 javac 6m 9s the patch passed
+1 💚 checkstyle 1m 0s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 hadoopcheck 11m 30s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚 spotless 0m 44s patch has no errors when running spotless:check.
+1 💚 spotbugs 10m 19s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 38s The patch does not generate ASF License warnings.
59m 42s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4666
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
uname Linux 50979f5d9527 5.4.0-122-generic #138-Ubuntu SMP Wed Jun 22 15:00:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 486d19e
Default Java AdoptOpenJDK-1.8.0_282-b08
Max. process+thread count 139 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

SslContextBuilder sslContextBuilder = SslContextBuilder.forClient();

String keyStoreLocation = config.get(TLS_CONFIG_KEYSTORE_LOCATION, "");
String keyStorePassword = config.get(TLS_CONFIG_KEYSTORE_PASSWORD, "");
Copy link
Contributor

Choose a reason for hiding this comment

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

Oh, this one is also a long term improment.

boolean sslOcspEnabled = config.getBoolean(TLS_CONFIG_OCSP, false);

if (trustStoreLocation.isEmpty()) {
LOG.warn(TLS_CONFIG_TRUSTSTORE_LOCATION + " not specified");
Copy link
Contributor

Choose a reason for hiding this comment

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

Oh, IIRC I've asked this before. What will happen if we do not specify the location? The problem will go to the OS default location? Maybe you have already answered but I can not find the comments.

Anyway, can also be a follow on issue.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I already commented the same. Truststore takes precedence, but otherwise OS certificate store will be checked just like in a browser. I need to verify this to be on the safe side.

Copy link
Contributor

@bbeaudreault bbeaudreault left a comment

Choose a reason for hiding this comment

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

Looks great! Thank you both for all the work here. @anmolnar if you're done with this I can merge once pre-commit finishes. Let me know if that works for you

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 2s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 22s Maven dependency ordering for branch
+1 💚 mvninstall 2m 44s master passed
+1 💚 compile 1m 53s master passed
+1 💚 shadedjars 3m 42s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 52s master passed
-0 ⚠️ patch 7m 4s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 2m 32s the patch passed
+1 💚 compile 1m 52s the patch passed
+1 💚 javac 1m 52s the patch passed
+1 💚 shadedjars 3m 43s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 51s the patch passed
_ Other Tests _
+1 💚 unit 266m 10s root in the patch passed.
292m 17s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux d2cc431e5757 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 486d19e
Default Java AdoptOpenJDK-11.0.10+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/testReport/
Max. process+thread count 4631 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 36s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 2m 9s master passed
+1 💚 compile 1m 31s master passed
+1 💚 shadedjars 4m 4s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 2m 6s master passed
-0 ⚠️ patch 6m 32s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 2m 11s the patch passed
+1 💚 compile 1m 27s the patch passed
+1 💚 javac 1m 27s the patch passed
+1 💚 shadedjars 4m 6s patch has no errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 1m 23s root generated 11 new + 73 unchanged - 11 fixed = 84 total (was 84)
_ Other Tests _
+1 💚 unit 407m 42s root in the patch passed.
432m 10s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4666
Optional Tests javac javadoc unit shadedjars compile
uname Linux 01229c20c7b2 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 486d19e
Default Java AdoptOpenJDK-1.8.0_282-b08
javadoc https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/artifact/yetus-jdk8-hadoop3-check/output/diff-javadoc-javadoc-root.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/testReport/
Max. process+thread count 4785 (vs. ulimit of 30000)
modules C: hbase-common hbase-client hbase-server . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@anmolnar
Copy link
Contributor Author

anmolnar commented Aug 6, 2022

@bbeaudreault Yeah, I'm done, feel free to merge the patch. Thanks everybody for the help!
@Apache9 So, the 3rd outstanding item is:

  1. How to store keystore/truststore password securely?

and...

Oh, when trying to add tests, I think we could also improve the tests, by extending the existing IPC UTs in HBase. Could also be a follow on issue.

What do you mean exactly?

@bbeaudreault bbeaudreault merged commit f8dcf07 into apache:master Aug 6, 2022
bbeaudreault pushed a commit that referenced this pull request Aug 6, 2022
…4666)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bryan Beaudreault <bbeaudreault@apache.org>
(cherry picked from commit f8dcf07)

Conflicts:
	hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcClient.java
	hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcConnection.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
@Apache9
Copy link
Contributor

Apache9 commented Aug 7, 2022

@bbeaudreault Yeah, I'm done, feel free to merge the patch. Thanks everybody for the help! @Apache9 So, the 3rd outstanding item is:

  1. How to store keystore/truststore password securely?

and...

Oh, when trying to add tests, I think we could also improve the tests, by extending the existing IPC UTs in HBase. Could also be a follow on issue.

What do you mean exactly?

I could give it a try, un how to improve the tests. Let open an issue and create a PR.

@anmolnar anmolnar deleted the HBASE-26666_D branch August 7, 2022 21:27
@anmolnar
Copy link
Contributor Author

anmolnar commented Aug 7, 2022

Thanks @bbeaudreault and @Apache9 for the help. I'll continue with the leftover items and documentation.

bbeaudreault pushed a commit to HubSpot/hbase that referenced this pull request Oct 4, 2022
…pache#4666)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bryan Beaudreault <bbeaudreault@apache.org>
(cherry picked from commit f8dcf07)

Conflicts:
	hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcClient.java
	hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcConnection.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
bbeaudreault pushed a commit to HubSpot/hbase that referenced this pull request Apr 2, 2023
…pache#4666)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bryan Beaudreault <bbeaudreault@apache.org>
(cherry picked from commit f8dcf07)

Conflicts:
	hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcClient.java
	hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcConnection.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
bbeaudreault pushed a commit to HubSpot/hbase that referenced this pull request Apr 4, 2023
…pache#4666)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bryan Beaudreault <bbeaudreault@apache.org>
(cherry picked from commit f8dcf07)

Conflicts:
	hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcClient.java
	hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcConnection.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
bbeaudreault added a commit to HubSpot/hbase that referenced this pull request Apr 7, 2023
* HBASE-27185 Rewrite NettyRpcServer to decode rpc request with netty handler (apache#4624)
* HBASE-27185 Addendum fix TestShadeSaslAuthenticationProvider
* HBASE-27271 BufferCallBeforeInitHandler should ignore the flush request (apache#4676)
* HBASE-26666 Add native TLS encryption support to RPC server/client (apache#4666)
* HBASE-27278 Improve TestTlsIPC to reuse existing IPC test code (apache#4682)
* HBASE-27279 Make SslHandler work with SaslWrapHandler/SaslUnwrapHandler (apache#4705)
* HBASE-27342 Use Hadoop Credentials API to retrieve passwords of TLS key/trust stores (apache#4751)
* HBASE-27346 Autodetect key/truststore file type from file extension (apache#4757)
* HBASE-27280 Add mutual authentication support to TLS (apache#4796)
* HBASE-27673 Fix mTLS client hostname verification (apache#5066)
* HBASE-27347 Port FileWatcher from ZK to autodetect keystore/truststore changes in TLS connections (branch-2) (apache#4897)
* HBASE-27779 Make X509Util config constants public
* HBASE-27578 Upgrade hbase-thirdparty to 4.1.4 (apache#4985)
vinayakphegde pushed a commit to vinayakphegde/hbase that referenced this pull request Apr 4, 2024
…pache#4666)

Change[1/4] for:  Backporting the changes related to HBASE-26666.

This commit does not contain secrets.

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bryan Beaudreault <bbeaudreault@apache.org>
(cherry picked from commit f8dcf07)
Change-Id: I6782126306c0c6bd91242285ef3b401288f040cc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants