Skip to content

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

Merged
bbeaudreault merged 4 commits into
apache:masterfrom
anmolnar:HBASE-26666_D
Aug 6, 2022
Merged

HBASE-26666 Add native TLS encryption support to RPC server/client#4666
bbeaudreault merged 4 commits into
apache:masterfrom
anmolnar:HBASE-26666_D

Conversation

@anmolnar

@anmolnaranmolnar commented Jul 29, 2022

Copy link
Copy Markdown
Contributor

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

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 10sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 18sMaven dependency ordering for branch
+1 💚mvninstall2m 45smaster passed
+1 💚compile1m 52smaster passed
+1 💚shadedjars3m 45sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 8smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
+1 💚mvninstall2m 34sthe patch passed
+1 💚compile1m 51sthe patch passed
+1 💚javac1m 51sthe patch passed
+1 💚shadedjars3m 46spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 7sthe patch passed
_ Other Tests _
-1 ❌unit29m 10sroot in the patch failed.
57m 4s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 811f0e7
Default JavaAdoptOpenJDK-11.0.10+9
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/testReport/
Max. process+thread count815 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 49sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 21sMaven dependency ordering for branch
+1 💚mvninstall2m 50smaster passed
+1 💚compile1m 37smaster passed
+1 💚shadedjars4m 24sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 42smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 36sthe patch passed
+1 💚compile1m 40sthe patch passed
+1 💚javac1m 40sthe patch passed
+1 💚shadedjars4m 47spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 49sthe patch passed
_ Other Tests _
-1 ❌unit33m 4sroot in the patch failed.
60m 18s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 811f0e7
Default JavaAdoptOpenJDK-1.8.0_282-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/testReport/
Max. process+thread count784 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 3sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 18sMaven dependency ordering for branch
+1 💚mvninstall2m 24smaster passed
+1 💚compile6m 15smaster passed
+1 💚checkstyle1m 1smaster passed
+1 💚spotless0m 45sbranch has no errors when running spotless:check.
+1 💚spotbugs10m 12smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
+1 💚mvninstall2m 15sthe patch passed
+1 💚compile6m 11sthe patch passed
-0 ⚠️javac6m 11sroot generated 2 new + 1067 unchanged - 0 fixed = 1069 total (was 1067)
-0 ⚠️checkstyle1m 0sroot: The patch generated 14 new + 2 unchanged - 0 fixed = 16 total (was 2)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 2sThe patch has no ill-formed XML file.
+1 💚hadoopcheck11m 38sPatch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
-1 ❌spotless0m 14spatch has 65 errors when running spotless:check, run spotless:apply to fix.
+1 💚spotbugs10m 44sthe patch passed
_ Other Tests _
+1 💚asflicense0m 48sThe patch does not generate ASF License warnings.
61m 9s
SubsystemReport/Notes
DockerClientAPI=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 Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 811f0e7
Default JavaAdoptOpenJDK-1.8.0_282-b08
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-general-check/output/diff-compile-javac-root.txt
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-general-check/output/diff-checkstyle-root.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count138 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/1/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 10sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for branch
+1 💚mvninstall2m 44smaster passed
+1 💚compile1m 56smaster passed
+1 💚shadedjars3m 43sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 7smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 35sthe patch passed
+1 💚compile1m 54sthe patch passed
+1 💚javac1m 54sthe patch passed
+1 💚shadedjars3m 41spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 5sthe patch passed
_ Other Tests _
-1 ❌unit29m 0sroot in the patch failed.
56m 34s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 811f0e7
Default JavaAdoptOpenJDK-11.0.10+9
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/testReport/
Max. process+thread count832 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 5sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for branch
+1 💚mvninstall2m 13smaster passed
+1 💚compile6m 15smaster passed
+1 💚checkstyle0m 59smaster passed
+1 💚spotless0m 43sbranch has no errors when running spotless:check.
+1 💚spotbugs10m 5smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall2m 14sthe patch passed
+1 💚compile6m 8sthe patch passed
-0 ⚠️javac6m 8sroot generated 2 new + 1067 unchanged - 0 fixed = 1069 total (was 1067)
+1 💚checkstyle0m 59sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 2sThe patch has no ill-formed XML file.
+1 💚hadoopcheck11m 25sPatch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚spotless0m 43spatch has no errors when running spotless:check.
+1 💚spotbugs10m 55sthe patch passed
_ Other Tests _
+1 💚asflicense0m 47sThe patch does not generate ASF License warnings.
60m 48s
SubsystemReport/Notes
DockerClientAPI=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 Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 811f0e7
Default JavaAdoptOpenJDK-1.8.0_282-b08
javachttps://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 count139 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 53sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall2m 43smaster passed
+1 💚compile1m 51smaster passed
+1 💚shadedjars4m 42sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 39smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall2m 39sthe patch passed
+1 💚compile1m 45sthe patch passed
+1 💚javac1m 45sthe patch passed
+1 💚shadedjars4m 36spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 47sthe patch passed
_ Other Tests _
-1 ❌unit34m 28sroot in the patch failed.
61m 44s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 811f0e7
Default JavaAdoptOpenJDK-1.8.0_282-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/testReport/
Max. process+thread count753 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/2/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Comment threadhbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcClient.java Outdated
String keyStoreType = config.get(TLS_CONFIG_KEYSTORE_TYPE, "");

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

Copy link
Copy Markdown
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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.

Comment threadhbase-server/src/test/resources/log4j2.properties Outdated
boolean sslOcspEnabled = config.getBoolean(TLS_CONFIG_OCSP, false);

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

Copy link
Copy Markdown
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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
Copy Markdown
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?

@anmolnaranmolnarAug 2, 2022

Copy link
Copy Markdown
ContributorAuthor

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
Copy Markdown
ContributorAuthor

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

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 13sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 18sMaven dependency ordering for branch
+1 💚mvninstall2m 56smaster passed
+1 💚compile7m 48smaster passed
+1 💚checkstyle1m 13smaster passed
+1 💚spotless0m 49sbranch has no errors when running spotless:check.
+1 💚spotbugs12m 57smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for patch
+1 💚mvninstall2m 10sthe patch passed
+1 💚compile6m 12sthe patch passed
-0 ⚠️javac6m 12sroot generated 2 new + 1067 unchanged - 0 fixed = 1069 total (was 1067)
+1 💚checkstyle1m 0sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 2sThe patch has no ill-formed XML file.
+1 💚hadoopcheck11m 34sPatch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚spotless0m 43spatch has no errors when running spotless:check.
+1 💚spotbugs10m 43sthe patch passed
_ Other Tests _
+1 💚asflicense0m 48sThe patch does not generate ASF License warnings.
66m 37s
SubsystemReport/Notes
DockerClientAPI=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 Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / e8c14ee
Default JavaAdoptOpenJDK-1.8.0_282-b08
javachttps://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 count138 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 47sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 47sMaven dependency ordering for branch
+1 💚mvninstall3m 20smaster passed
+1 💚compile2m 20smaster passed
+1 💚shadedjars5m 7sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 46smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 58sthe patch passed
+1 💚compile2m 11sthe patch passed
+1 💚javac2m 11sthe patch passed
+1 💚shadedjars5m 29spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 17sthe patch passed
_ Other Tests _
-1 ❌unit37m 56sroot in the patch failed.
71m 28s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / e8c14ee
Default JavaAdoptOpenJDK-1.8.0_282-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/testReport/
Max. process+thread count786 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 28sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 20sMaven dependency ordering for branch
+1 💚mvninstall3m 28smaster passed
+1 💚compile2m 12smaster passed
+1 💚shadedjars5m 17sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc4m 17smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 23sMaven dependency ordering for patch
+1 💚mvninstall4m 11sthe patch passed
+1 💚compile3m 18sthe patch passed
+1 💚javac3m 18sthe patch passed
+1 💚shadedjars5m 44spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc4m 37sthe patch passed
_ Other Tests _
-1 ❌unit41m 54sroot in the patch failed.
81m 24s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / e8c14ee
Default JavaAdoptOpenJDK-11.0.10+9
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/testReport/
Max. process+thread count798 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/3/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache9Apache9 left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
ContributorAuthor

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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Done.

Copy link
Copy Markdown
ContributorAuthor

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.

Configuration conf, RpcScheduler scheduler) throws IOException;

protected abstract AbstractRpcClient<?> createRpcClientNoCodec(Configuration conf);
protected abstract AbstractRpcClient<?> createRpcClientNoCodec(Configuration conf)

Copy link
Copy Markdown
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
Copy Markdown
ContributorAuthor

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

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 35sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for branch
+1 💚mvninstall3m 3smaster passed
+1 💚compile2m 9smaster passed
+1 💚shadedjars5m 24sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 26smaster passed
-0 ⚠️patch9m 23sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 55sthe patch passed
+1 💚compile2m 9sthe patch passed
+1 💚javac2m 9sthe patch passed
+1 💚shadedjars5m 47spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 16sthe patch passed
_ Other Tests _
-1 ❌unit1m 38sroot in the patch failed.
33m 19s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / e8c14ee
Default JavaAdoptOpenJDK-1.8.0_282-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/testReport/
Max. process+thread count164 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec2m 3sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 23sMaven dependency ordering for branch
+1 💚mvninstall3m 46smaster passed
+1 💚compile2m 51smaster passed
+1 💚shadedjars5m 27sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc4m 22smaster passed
-0 ⚠️patch10m 32sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for patch
+1 💚mvninstall3m 54sthe patch passed
+1 💚compile2m 41sthe patch passed
+1 💚javac2m 41sthe patch passed
+1 💚shadedjars5m 39spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc4m 33sthe patch passed
_ Other Tests _
-1 ❌unit2m 38sroot in the patch failed.
40m 10s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / e8c14ee
Default JavaAdoptOpenJDK-11.0.10+9
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/testReport/
Max. process+thread count191 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 5sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 22sMaven dependency ordering for branch
+1 💚mvninstall2m 19smaster passed
+1 💚compile6m 15smaster passed
+1 💚checkstyle1m 1smaster passed
+1 💚spotless0m 42sbranch has no errors when running spotless:check.
+1 💚spotbugs10m 1smaster passed
-0 ⚠️patch7m 51sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 16sthe patch passed
+1 💚compile6m 9sthe patch passed
-0 ⚠️javac6m 9sroot generated 1 new + 1067 unchanged - 0 fixed = 1068 total (was 1067)
-0 ⚠️checkstyle1m 0sroot: The patch generated 3 new + 2 unchanged - 0 fixed = 5 total (was 2)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 2sThe patch has no ill-formed XML file.
+1 💚hadoopcheck11m 37sPatch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
-1 ❌spotless0m 13spatch has 25 errors when running spotless:check, run spotless:apply to fix.
-1 ❌spotbugs0m 46shbase-client generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
-1 ❌spotbugs7m 33sroot generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 💚asflicense0m 47sThe patch does not generate ASF License warnings.
60m 34s
ReasonTests
FindBugsmodule: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]
FindBugsmodule: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]
SubsystemReport/Notes
DockerClientAPI=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 Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / e8c14ee
Default JavaAdoptOpenJDK-1.8.0_282-b08
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/diff-compile-javac-root.txt
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/diff-checkstyle-root.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/patch-spotless.txt
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/artifact/yetus-general-check/output/new-spotbugs-hbase-client.html
spotbugshttps://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 count140 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/4/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@anmolnar

Copy link
Copy Markdown
ContributorAuthor

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

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec2m 0sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall3m 6smaster passed
+1 💚compile9m 5smaster passed
+1 💚checkstyle1m 23smaster passed
+1 💚spotless1m 4sbranch has no errors when running spotless:check.
+1 💚spotbugs16m 8smaster passed
-0 ⚠️patch12m 39sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 21sMaven dependency ordering for patch
+1 💚mvninstall3m 15sthe patch passed
+1 💚compile10m 39sthe patch passed
+1 💚javac10m 39sthe patch passed
+1 💚checkstyle1m 31sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 3sThe patch has no ill-formed XML file.
+1 💚hadoopcheck15m 58sPatch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚spotless1m 6spatch has no errors when running spotless:check.
+1 💚spotbugs15m 43sthe patch passed
_ Other Tests _
+1 💚asflicense0m 43sThe patch does not generate ASF License warnings.
91m 24s
SubsystemReport/Notes
DockerClientAPI=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 Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / e8c14ee
Default JavaAdoptOpenJDK-1.8.0_282-b08
Max. process+thread count139 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 7sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 20sMaven dependency ordering for branch
+1 💚mvninstall2m 40smaster passed
+1 💚compile1m 52smaster passed
+1 💚shadedjars3m 41sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 5smaster passed
-0 ⚠️patch7m 24sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 30sthe patch passed
+1 💚compile1m 54sthe patch passed
+1 💚javac1m 54sthe patch passed
+1 💚shadedjars3m 42spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 4sthe patch passed
_ Other Tests _
-1 ❌unit229m 56sroot in the patch failed.
256m 29s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / e8c14ee
Default JavaAdoptOpenJDK-11.0.10+9
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/testReport/
Max. process+thread count2368 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 36sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall2m 9smaster passed
+1 💚compile1m 29smaster passed
+1 💚shadedjars4m 3sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 14smaster passed
-0 ⚠️patch6m 43sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 8sthe patch passed
+1 💚compile1m 27sthe patch passed
+1 💚javac1m 27sthe patch passed
+1 💚shadedjars4m 1spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 14sthe patch passed
_ Other Tests _
-1 ❌unit328m 38sroot in the patch failed.
351m 3s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / e8c14ee
Default JavaAdoptOpenJDK-1.8.0_282-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/testReport/
Max. process+thread count2427 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/5/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


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

Copy link
Copy Markdown
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
Copy Markdown
ContributorAuthor

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.

}

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

Copy link
Copy Markdown
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
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

This one too.

@Test
public void testRpcWithWriteThread() throws IOException, InterruptedException {
public void testRpcWithWriteThread()
throws IOException, InterruptedException, SSLContextException {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ditto.

Copy link
Copy Markdown
ContributorAuthor

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
Copy Markdown
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
Copy Markdown
ContributorAuthor

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

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 3sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 20sMaven dependency ordering for branch
+1 💚mvninstall2m 35smaster passed
+1 💚compile1m 52smaster passed
+1 💚shadedjars3m 41sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 4smaster passed
-0 ⚠️patch7m 22sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 35sthe patch passed
+1 💚compile1m 54sthe patch passed
+1 💚javac1m 54sthe patch passed
+1 💚shadedjars3m 41spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 6sthe patch passed
_ Other Tests _
-1 ❌unit226m 36sroot in the patch failed.
253m 6s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d734acc
Default JavaAdoptOpenJDK-11.0.10+9
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/testReport/
Max. process+thread count2817 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 38sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 39sMaven dependency ordering for branch
+1 💚mvninstall2m 7smaster passed
+1 💚compile1m 28smaster passed
+1 💚shadedjars4m 0sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 15smaster passed
-0 ⚠️patch6m 41sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 8sthe patch passed
+1 💚compile1m 29sthe patch passed
+1 💚javac1m 29sthe patch passed
+1 💚shadedjars4m 0spatch has no errors when building our shaded downstream artifacts.
-0 ⚠️javadoc1m 20sroot generated 3 new + 81 unchanged - 3 fixed = 84 total (was 84)
_ Other Tests _
-1 ❌unit328m 13sroot in the patch failed.
351m 20s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d734acc
Default JavaAdoptOpenJDK-1.8.0_282-b08
javadochttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/artifact/yetus-jdk8-hadoop3-check/output/diff-javadoc-javadoc-root.txt
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/testReport/
Max. process+thread count2461 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server hbase-it . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/6/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 5sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 20sMaven dependency ordering for branch
+1 💚mvninstall2m 17smaster passed
+1 💚compile6m 9smaster passed
+1 💚checkstyle1m 0smaster passed
+1 💚spotless0m 42sbranch has no errors when running spotless:check.
+1 💚spotbugs9m 42smaster passed
-0 ⚠️patch7m 44sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 10sthe patch passed
+1 💚compile6m 6sthe patch passed
+1 💚javac6m 6sthe patch passed
-0 ⚠️checkstyle0m 58sroot: The patch generated 3 new + 2 unchanged - 0 fixed = 5 total (was 2)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 2sThe patch has no ill-formed XML file.
+1 💚hadoopcheck11m 30sPatch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
-1 ❌spotless0m 14spatch has 21 errors when running spotless:check, run spotless:apply to fix.
+1 💚spotbugs10m 19sthe patch passed
_ Other Tests _
+1 💚asflicense0m 39sThe patch does not generate ASF License warnings.
58m 57s
SubsystemReport/Notes
DockerClientAPI=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 Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d734acc
Default JavaAdoptOpenJDK-1.8.0_282-b08
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-general-check/output/diff-checkstyle-root.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count139 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 21sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 18sMaven dependency ordering for branch
+1 💚mvninstall3m 16smaster passed
+1 💚compile2m 28smaster passed
+1 💚shadedjars4m 25sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 32smaster passed
-0 ⚠️patch8m 23sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 11sthe patch passed
+1 💚compile2m 22sthe patch passed
+1 💚javac2m 22sthe patch passed
+1 💚shadedjars5m 5spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 57sthe patch passed
_ Other Tests _
-1 ❌unit259m 5sroot in the patch failed.
291m 10s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d734acc
Default JavaAdoptOpenJDK-11.0.10+9
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/testReport/
Max. process+thread count2481 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 38sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall2m 14smaster passed
+1 💚compile1m 31smaster passed
+1 💚shadedjars4m 1sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 5smaster passed
-0 ⚠️patch6m 27sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 6sthe patch passed
+1 💚compile1m 27sthe patch passed
+1 💚javac1m 27sthe patch passed
+1 💚shadedjars4m 3spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 4sthe patch passed
_ Other Tests _
-1 ❌unit326m 38sroot in the patch failed.
348m 51s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d734acc
Default JavaAdoptOpenJDK-1.8.0_282-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/testReport/
Max. process+thread count2192 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/7/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@anmolnar

Copy link
Copy Markdown
ContributorAuthor

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

anmolnar commented Aug 3, 2022

Copy link
Copy Markdown
ContributorAuthor

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
Copy Markdown
Contributor

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

Apache9 commented Aug 3, 2022

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@Apache9

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 55sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 42sMaven dependency ordering for branch
+1 💚mvninstall2m 30smaster passed
+1 💚compile7m 36smaster passed
+1 💚checkstyle1m 6smaster passed
+1 💚spotless0m 48sbranch has no errors when running spotless:check.
+1 💚spotbugs11m 53smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 36sthe patch passed
+1 💚compile7m 26sthe patch passed
+1 💚javac7m 26sthe patch passed
+1 💚checkstyle1m 5sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 2sThe patch has no ill-formed XML file.
+1 💚hadoopcheck13m 32sPatch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚spotless0m 48spatch has no errors when running spotless:check.
+1 💚spotbugs12m 21sthe patch passed
_ Other Tests _
+1 💚asflicense0m 38sThe patch does not generate ASF License warnings.
71m 1s
SubsystemReport/Notes
DockerClientAPI=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 Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 2ac5578
Default JavaAdoptOpenJDK-1.8.0_282-b08
Max. process+thread count138 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 32sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 18sMaven dependency ordering for branch
+1 💚mvninstall4m 1smaster passed
+1 💚compile2m 39smaster passed
+1 💚shadedjars4m 41sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc4m 11smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall3m 44sthe patch passed
+1 💚compile2m 50sthe patch passed
+1 💚javac2m 50sthe patch passed
+1 💚shadedjars5m 3spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc3m 42sthe patch passed
_ Other Tests _
+1 💚unit267m 59sroot in the patch passed.
304m 5s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 2ac5578
Default JavaAdoptOpenJDK-11.0.10+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/testReport/
Max. process+thread count4567 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 8sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for branch
+1 💚mvninstall2m 23smaster passed
+1 💚compile1m 37smaster passed
+1 💚shadedjars3m 42sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 22smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 17sthe patch passed
+1 💚compile1m 36sthe patch passed
+1 💚javac1m 36sthe patch passed
+1 💚shadedjars3m 46spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 20sthe patch passed
_ Other Tests _
+1 💚unit363m 21sroot in the patch passed.
388m 3s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 2ac5578
Default JavaAdoptOpenJDK-1.8.0_282-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/testReport/
Max. process+thread count4457 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/8/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 37sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 20sMaven dependency ordering for branch
+1 💚mvninstall2m 28smaster passed
+1 💚compile1m 29smaster passed
+1 💚shadedjars4m 6sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 9smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
-1 ❌mvninstall0m 31sroot in the patch failed.
-1 ❌compile0m 25sroot in the patch failed.
-0 ⚠️javac0m 25sroot in the patch failed.
-1 ❌shadedjars0m 38spatch has 10 errors when building our shaded downstream artifacts.
-0 ⚠️javadoc0m 12shbase-client generated 4 new + 30 unchanged - 0 fixed = 34 total (was 30)
-0 ⚠️javadoc0m 20shbase-server generated 7 new + 23 unchanged - 0 fixed = 30 total (was 23)
-0 ⚠️javadoc1m 21sroot generated 11 new + 84 unchanged - 0 fixed = 95 total (was 84)
_ Other Tests _
-1 ❌unit0m 27sroot in the patch failed.
16m 41s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 486d19e
Default JavaAdoptOpenJDK-1.8.0_282-b08
mvninstallhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-mvninstall-root.txt
compilehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-compile-root.txt
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-compile-root.txt
shadedjarshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-shadedjars.txt
javadochttps://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
javadochttps://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
javadochttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/diff-javadoc-javadoc-root.txt
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/testReport/
Max. process+thread count126 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@anmolnar

Copy link
Copy Markdown
ContributorAuthor

@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
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 4sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 18sMaven dependency ordering for branch
+1 💚mvninstall2m 37smaster passed
+1 💚compile1m 58smaster passed
+1 💚shadedjars3m 41sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 52smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
-1 ❌mvninstall0m 44sroot in the patch failed.
-1 ❌compile0m 37sroot in the patch failed.
-0 ⚠️javac0m 37sroot in the patch failed.
-1 ❌shadedjars0m 48spatch has 10 errors when building our shaded downstream artifacts.
-0 ⚠️javadoc0m 10shbase-client in the patch failed.
-0 ⚠️javadoc0m 14shbase-server in the patch failed.
-0 ⚠️javadoc0m 32sroot in the patch failed.
_ Other Tests _
-1 ❌unit0m 39sroot in the patch failed.
18m 8s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 486d19e
Default JavaAdoptOpenJDK-11.0.10+9
mvninstallhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-mvninstall-root.txt
compilehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-compile-root.txt
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-compile-root.txt
shadedjarshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-shadedjars.txt
javadochttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-client.txt
javadochttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt
javadochttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-root.txt
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-root.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/testReport/
Max. process+thread count144 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache9

Copy link
Copy Markdown
Contributor

@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
Copy Markdown
Contributor

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

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 3sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 20sMaven dependency ordering for branch
+1 💚mvninstall2m 17smaster passed
+1 💚compile6m 6smaster passed
+1 💚checkstyle1m 0smaster passed
+1 💚spotless0m 42sbranch has no errors when running spotless:check.
+1 💚spotbugs9m 42smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
-1 ❌mvninstall0m 35sroot in the patch failed.
-1 ❌compile0m 58sroot in the patch failed.
-0 ⚠️javac0m 58sroot in the patch failed.
-0 ⚠️checkstyle0m 58sroot: The patch generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 2sThe patch has no ill-formed XML file.
-1 ❌hadoopcheck0m 34sThe patch causes 10 errors with Hadoop v3.1.2.
-1 ❌hadoopcheck1m 9sThe patch causes 10 errors with Hadoop v3.2.2.
-1 ❌hadoopcheck1m 43sThe patch causes 10 errors with Hadoop v3.3.1.
-1 ❌spotless0m 11spatch has 29 errors when running spotless:check, run spotless:apply to fix.
-1 ❌spotbugs0m 9shbase-common in the patch failed.
-1 ❌spotbugs0m 14shbase-client in the patch failed.
-1 ❌spotbugs0m 23shbase-server in the patch failed.
-1 ❌spotbugs2m 35sroot in the patch failed.
_ Other Tests _
+1 💚asflicense0m 29sThe patch does not generate ASF License warnings.
31m 24s
SubsystemReport/Notes
DockerClientAPI=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 Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 486d19e
Default JavaAdoptOpenJDK-1.8.0_282-b08
mvninstallhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-mvninstall-root.txt
compilehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-compile-root.txt
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-compile-root.txt
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/diff-checkstyle-root.txt
hadoopcheckhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-javac-3.1.2.txt
hadoopcheckhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-javac-3.2.2.txt
hadoopcheckhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-javac-3.3.1.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-spotless.txt
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-spotbugs-hbase-common.txt
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-spotbugs-hbase-client.txt
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/artifact/yetus-general-check/output/patch-spotbugs-hbase-server.txt
spotbugshttps://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 count137 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/9/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 1sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for branch
+1 💚mvninstall2m 13smaster passed
+1 💚compile6m 8smaster passed
+1 💚checkstyle0m 58smaster passed
+1 💚spotless0m 42sbranch has no errors when running spotless:check.
+1 💚spotbugs9m 49smaster passed
-0 ⚠️patch7m 52sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 8sthe patch passed
+1 💚compile6m 9sthe patch passed
+1 💚javac6m 9sthe patch passed
+1 💚checkstyle1m 0sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚xml0m 2sThe patch has no ill-formed XML file.
+1 💚hadoopcheck11m 30sPatch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚spotless0m 44spatch has no errors when running spotless:check.
+1 💚spotbugs10m 19sthe patch passed
_ Other Tests _
+1 💚asflicense0m 38sThe patch does not generate ASF License warnings.
59m 42s
SubsystemReport/Notes
DockerClientAPI=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 Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile xml
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 486d19e
Default JavaAdoptOpenJDK-1.8.0_282-b08
Max. process+thread count139 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache 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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
ContributorAuthor

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.

@bbeaudreaultbbeaudreault left a comment

Copy link
Copy Markdown
Contributor

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

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 2sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 22sMaven dependency ordering for branch
+1 💚mvninstall2m 44smaster passed
+1 💚compile1m 53smaster passed
+1 💚shadedjars3m 42sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 52smaster passed
-0 ⚠️patch7m 4sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 32sthe patch passed
+1 💚compile1m 52sthe patch passed
+1 💚javac1m 52sthe patch passed
+1 💚shadedjars3m 43spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 51sthe patch passed
_ Other Tests _
+1 💚unit266m 10sroot in the patch passed.
292m 17s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 486d19e
Default JavaAdoptOpenJDK-11.0.10+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/testReport/
Max. process+thread count4631 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 36sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall2m 9smaster passed
+1 💚compile1m 31smaster passed
+1 💚shadedjars4m 4sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc2m 6smaster passed
-0 ⚠️patch6m 32sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall2m 11sthe patch passed
+1 💚compile1m 27sthe patch passed
+1 💚javac1m 27sthe patch passed
+1 💚shadedjars4m 6spatch has no errors when building our shaded downstream artifacts.
-0 ⚠️javadoc1m 23sroot generated 11 new + 73 unchanged - 11 fixed = 84 total (was 84)
_ Other Tests _
+1 💚unit407m 42sroot in the patch passed.
432m 10s
SubsystemReport/Notes
DockerClientAPI=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 Testsjavac javadoc unit shadedjars compile
unameLinux 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 486d19e
Default JavaAdoptOpenJDK-1.8.0_282-b08
javadochttps://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 Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/testReport/
Max. process+thread count4785 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4666/10/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@anmolnar

anmolnar commented Aug 6, 2022

Copy link
Copy Markdown
ContributorAuthor

@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:masterAug 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
Copy Markdown
Contributor

@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
Copy Markdown
ContributorAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@anmolnar@Apache-HBase@Apache9@bbeaudreault@wchevreuil@meszibalu