Skip to content

Conversation

@joshelser
Copy link
Member

… considering SASL negotiation complete

The PLAIN mechanism test added in the Shade authentication example has
different semantics than GSSAPI mechanism -- the client reports that the
handshake is done after the original challenge is computed. The javadoc
on SaslClient, however, tells us that we need to wait for a response
from the server before proceeding.

The client, best as I can see, does not receive any data from HBase;
however the application semantics (e.g. throw an exception on auth'n
error) do not work as we intend as a result of this bug.

@joshelser
Copy link
Member Author

This was a bear to figure out. This is only for Netty -- NIO works fine.

This PR is also only valid for master -- due to the ZK-less MasterRegistry implementation. I think earlier 2.x branches will need custom patches. I'll pick those up after we're good on master.

@joshelser joshelser changed the title HBASE-23381 Ensure Netty client receives at least one response before… HBASE-23881 Ensure Netty client receives at least one response before… Mar 9, 2020
@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 4m 40s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 32s Maven dependency ordering for branch
+1 💚 mvninstall 5m 53s master passed
+1 💚 checkstyle 2m 0s master passed
+0 🆗 spotbugs 0m 42s Used deprecated FindBugs config; considering switching to SpotBugs.
-1 ❌ findbugs 3m 17s hbase-server in master failed.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 5m 36s the patch passed
-0 ⚠️ checkstyle 0m 13s hbase-examples: The patch generated 3 new + 0 unchanged - 0 fixed = 3 total (was 0)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 17m 40s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
-1 ❌ findbugs 3m 13s hbase-server in the patch failed.
_ Other Tests _
+1 💚 asflicense 0m 32s The patch does not generate ASF License warnings.
56m 44s
Subsystem Report/Notes
Docker Client=19.03.7 Server=19.03.7 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #1260
Optional Tests dupname asflicense spotbugs findbugs hadoopcheck hbaseanti checkstyle
uname Linux 74c38e11ee6f 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 31484f0
findbugs https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-general-check/output/branch-findbugs-hbase-server.txt
checkstyle https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-examples.txt
findbugs https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-general-check/output/patch-findbugs-hbase-server.txt
Max. process+thread count 83 (vs. ulimit of 10000)
modules C: hbase-client hbase-server hbase-examples U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/console
versions git=2.17.1 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache9
Copy link
Contributor

Apache9 commented Mar 10, 2020

OK, I checked the PlainClient, so the assumption here is that, client should have get at least one sasl response from server, even if it has reported as complete? But waht if later sasl client reports complete? Do we still need to wait for the server response? I'm a bit confused.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 32s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --findbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 36s Maven dependency ordering for branch
+1 💚 mvninstall 6m 10s master passed
+1 💚 compile 2m 0s master passed
+1 💚 shadedjars 5m 29s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 20s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 6m 1s the patch passed
+1 💚 compile 2m 0s the patch passed
+1 💚 javac 2m 0s the patch passed
+1 💚 shadedjars 5m 22s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 22s the patch passed
_ Other Tests _
+1 💚 unit 0m 57s hbase-client in the patch passed.
+1 💚 unit 120m 6s hbase-server in the patch passed.
+1 💚 unit 3m 17s hbase-examples in the patch passed.
158m 57s
Subsystem Report/Notes
Docker Client=19.03.7 Server=19.03.7 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile
GITHUB PR #1260
Optional Tests javac javadoc unit shadedjars compile
uname Linux 48569bd7cf12 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 31484f0
Default Java 1.8.0_232
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/testReport/
Max. process+thread count 5372 (vs. ulimit of 10000)
modules C: hbase-client hbase-server hbase-examples U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/console
versions git=2.17.1 maven=2018-06-17T18:33:14Z)
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache9
Copy link
Contributor

Apache9 commented Mar 10, 2020

Think again, the end condition here should be:

  1. SaslClient.isComplete returns true
  2. Once we have sent out a SaslToken, then we need to get one back.

Let me check the code again.

Found a bug through a roughly looking...

  public byte[] getInitialResponse() throws SaslException {
    if (saslClient.hasInitialResponse()) {
      return saslClient.evaluateChallenge(EMPTY_TOKEN);
    } else {
      return EMPTY_TOKEN;
    }
  }

Where EMPTY_TOKEN is a byte[0], but in upper layer. we will check null to determine whether we have an initial response...

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 32s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --findbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 35s Maven dependency ordering for branch
+1 💚 mvninstall 7m 31s master passed
+1 💚 compile 2m 28s master passed
+1 💚 shadedjars 5m 51s branch has no errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 0m 31s hbase-client in master failed.
-0 ⚠️ javadoc 0m 22s hbase-examples in master failed.
-0 ⚠️ javadoc 0m 49s hbase-server in master failed.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 21s Maven dependency ordering for patch
+1 💚 mvninstall 7m 16s the patch passed
+1 💚 compile 2m 25s the patch passed
+1 💚 javac 2m 25s the patch passed
+1 💚 shadedjars 6m 26s patch has no errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 0m 42s hbase-client in the patch failed.
-0 ⚠️ javadoc 1m 5s hbase-server in the patch failed.
-0 ⚠️ javadoc 0m 34s hbase-examples in the patch failed.
_ Other Tests _
+1 💚 unit 1m 38s hbase-client in the patch passed.
+1 💚 unit 121m 39s hbase-server in the patch passed.
+1 💚 unit 1m 49s hbase-examples in the patch passed.
165m 43s
Subsystem Report/Notes
Docker Client=19.03.7 Server=19.03.7 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #1260
Optional Tests javac javadoc unit shadedjars compile
uname Linux 56d493d1085e 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 31484f0
Default Java 2020-01-14
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-client.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-examples.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-server.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-client.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-examples.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/testReport/
Max. process+thread count 5394 (vs. ulimit of 10000)
modules C: hbase-client hbase-server hbase-examples U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/1/console
versions git=2.17.1 maven=2018-06-17T18:33:14Z)
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache9
Copy link
Contributor

Apache9 commented Mar 10, 2020

@joshelser If you do not mind, I plan to make a overall fix based on your patch and what's important, add more comments to say the rules here, to avoid further confusing of others.

Thanks.

@joshelser
Copy link
Member Author

If you do not mind, I plan to make a overall fix based on your patch and what's important, add more comments to say the rules here, to avoid further confusing of others.

Actually, I'd prefer to keep working on this, but am happy to work with you. I have a vested interest to make sure that, as we're looking at how HBase uses SASL, this is all translating well into the AuthenticationProvider stuff I've recently added into Master. My take is that the interfaces I added are lacking (given what we know about how other mechanisms work), but we could extend them and prevent other developers from making similar errors in the future.

LMK.

@joshelser
Copy link
Member Author

Once we have sent out a SaslToken, then we need to get one back.

We could just make some AtomicBoolean, defaulting to false, which is changed to true after the first call to channelRead0 and then check that value in tryComplete, but I can't help but thinking it's less state to manage to just be clear that we need at least one response back from the server.

Do you think it's better to have an explicit check in the code rather than comments saying "don't re-add this"?

Where EMPTY_TOKEN is a byte[0], but in upper layer. we will check null to determine whether we have an initial response...

Will push a fix for this. Nice catch. I didn't notice that.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 32s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 35s Maven dependency ordering for branch
+1 💚 mvninstall 5m 29s master passed
+1 💚 checkstyle 1m 58s master passed
+0 🆗 spotbugs 0m 41s Used deprecated FindBugs config; considering switching to SpotBugs.
-1 ❌ findbugs 3m 0s hbase-server in master failed.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 5m 2s the patch passed
-0 ⚠️ checkstyle 0m 13s hbase-examples: The patch generated 3 new + 0 unchanged - 0 fixed = 3 total (was 0)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 16m 13s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
-1 ❌ findbugs 4m 38s hbase-server in the patch failed.
_ Other Tests _
+1 💚 asflicense 0m 42s The patch does not generate ASF License warnings.
52m 9s
Subsystem Report/Notes
Docker Client=19.03.7 Server=19.03.7 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #1260
Optional Tests dupname asflicense spotbugs findbugs hadoopcheck hbaseanti checkstyle
uname Linux 4aa6b3d19dc7 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 9c1f2dd
findbugs https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-general-check/output/branch-findbugs-hbase-server.txt
checkstyle https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-general-check/output/diff-checkstyle-hbase-examples.txt
findbugs https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-general-check/output/patch-findbugs-hbase-server.txt
Max. process+thread count 94 (vs. ulimit of 10000)
modules C: hbase-client hbase-server hbase-examples U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/console
versions git=2.17.1 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 18s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --findbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 33s Maven dependency ordering for branch
+1 💚 mvninstall 6m 48s master passed
+1 💚 compile 2m 10s master passed
+1 💚 shadedjars 5m 9s branch has no errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 0m 28s hbase-client in master failed.
-0 ⚠️ javadoc 0m 20s hbase-examples in master failed.
-0 ⚠️ javadoc 0m 40s hbase-server in master failed.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 16s Maven dependency ordering for patch
+1 💚 mvninstall 6m 17s the patch passed
+1 💚 compile 2m 9s the patch passed
+1 💚 javac 2m 9s the patch passed
+1 💚 shadedjars 4m 57s patch has no errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 0m 26s hbase-client in the patch failed.
-0 ⚠️ javadoc 0m 40s hbase-server in the patch failed.
-0 ⚠️ javadoc 0m 21s hbase-examples in the patch failed.
_ Other Tests _
+1 💚 unit 1m 0s hbase-client in the patch passed.
-0 ⚠️ unit 74m 15s hbase-server in the patch failed.
+1 💚 unit 1m 29s hbase-examples in the patch passed.
111m 56s
Subsystem Report/Notes
Docker Client=19.03.7 Server=19.03.7 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #1260
Optional Tests javac javadoc unit shadedjars compile
uname Linux 42c70b28ec98 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 9c1f2dd
Default Java 2020-01-14
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-client.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-examples.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-server.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-client.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-examples.txt
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/testReport/
Max. process+thread count 9635 (vs. ulimit of 10000)
modules C: hbase-client hbase-server hbase-examples U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/console
versions git=2.17.1 maven=2018-06-17T18:33:14Z)
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 6s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --findbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 34s Maven dependency ordering for branch
+1 💚 mvninstall 5m 56s master passed
+1 💚 compile 1m 50s master passed
+1 💚 shadedjars 5m 14s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 15s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 5m 40s the patch passed
+1 💚 compile 1m 51s the patch passed
+1 💚 javac 1m 51s the patch passed
+1 💚 shadedjars 5m 10s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 17s the patch passed
_ Other Tests _
+1 💚 unit 0m 54s hbase-client in the patch passed.
-1 ❌ unit 105m 35s hbase-server in the patch failed.
+1 💚 unit 2m 6s hbase-examples in the patch passed.
141m 14s
Subsystem Report/Notes
Docker Client=19.03.7 Server=19.03.7 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile
GITHUB PR #1260
Optional Tests javac javadoc unit shadedjars compile
uname Linux 35b9bd98b2e9 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 9c1f2dd
Default Java 1.8.0_232
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/artifact/yetus-jdk8-hadoop2-check/output/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/testReport/
Max. process+thread count 6276 (vs. ulimit of 10000)
modules C: hbase-client hbase-server hbase-examples U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/2/console
versions git=2.17.1 maven=2018-06-17T18:33:14Z)
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@bharathv bharathv left a comment

Choose a reason for hiding this comment

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

Thanks for chasing this down @joshelser. I have a couple of nits about the test but looks like the core of the fix is in the right direction. +1 to making the flow clear. I'm trying to wrap my head around the flow of the sasl handlers in the Netty code.

Copy link
Contributor

@Apache9 Apache9 left a comment

Choose a reason for hiding this comment

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

Please hold on, the implementation still has some problems. Will be back soon.

@Apache9
Copy link
Contributor

Apache9 commented Mar 19, 2020

Sorry a bit busy these days. Will try to get sometime this weekendto review the patch more carefully.

@joshelser
Copy link
Member Author

It's ok. I still owe you a fix-up of the re-introduction of null instead of byte[0], too.

Copy link
Contributor

@Apache9 Apache9 left a comment

Choose a reason for hiding this comment

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

+1 after changing the getInitialResponse to return null when there is no initial response.

And reviewed the code, I think the blocking rpc client implementation has the same problem but due to the recent master based registry implementation, the blocking rpc client is just broken and can not be used anyway as it does not implement the createHedgedRpcChannel method...

Let's file another issue for fixing it, or we just remove the implementation, as it is not a good idea to leave a broken implementation in our code base.

@joshelser
Copy link
Member Author

Thanks Duo! I'll make the change, run it through QA and try to get this resolved in master. Removing sync impl for master seems right to me.

I'll work on pulling this back to other branches after that.

… considering SASL negotiation complete

The PLAIN mechanism test added in the Shade authentication example has
different semantics than GSSAPI mechanism -- the client reports that the
handshake is done after the original challenge is computed. The javadoc
on SaslClient, however, tells us that we need to wait for a response
from the server before proceeding.

The client, best as I can see, does not receive any data from HBase;
however the application semantics (e.g. throw an exception on auth'n
error) do not work as we intend as a result of this bug.
@joshelser joshelser force-pushed the 23881-sasl-auth-example branch from a0d7a67 to 92e9886 Compare March 24, 2020 18:29
@joshelser
Copy link
Member Author

Rebased and fixed the last round of requests/suggestions from Bharath and Duo.

I plan to commit to master and 2.x branches that this comes back cleanly to on QA.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 2m 10s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 50s Maven dependency ordering for branch
+1 💚 mvninstall 9m 45s master passed
+1 💚 checkstyle 3m 39s master passed
-1 ❌ spotbugs 4m 23s hbase-server in master has 1 extant spotbugs warnings.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 38s Maven dependency ordering for patch
+1 💚 mvninstall 9m 6s the patch passed
-0 ⚠️ checkstyle 0m 26s hbase-examples: The patch generated 3 new + 0 unchanged - 0 fixed = 3 total (was 0)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 17m 59s Patch does not cause any errors with Hadoop 2.10.0 or 3.1.2.
+1 💚 spotbugs 5m 1s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 32s The patch does not generate ASF License warnings.
73m 39s
Subsystem Report/Notes
Docker Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #1260
Optional Tests dupname asflicense spotbugs hadoopcheck hbaseanti checkstyle
uname Linux 1b037ddd675a 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / aa53493
spotbugs https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-general-check/output/branch-spotbugs-hbase-server-warnings.html
checkstyle https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-general-check/output/diff-checkstyle-hbase-examples.txt
Max. process+thread count 83 (vs. ulimit of 10000)
modules C: hbase-client hbase-server hbase-examples U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/console
versions git=2.17.1 maven=2018-06-17T18:33:14Z) spotbugs=3.1.12
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 32s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 35s Maven dependency ordering for branch
+1 💚 mvninstall 6m 33s master passed
+1 💚 compile 2m 5s master passed
+1 💚 shadedjars 5m 56s branch has no errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 0m 29s hbase-client in master failed.
-0 ⚠️ javadoc 0m 20s hbase-examples in master failed.
-0 ⚠️ javadoc 0m 39s hbase-server in master failed.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 17s Maven dependency ordering for patch
+1 💚 mvninstall 6m 20s the patch passed
+1 💚 compile 2m 9s the patch passed
+1 💚 javac 2m 9s the patch passed
+1 💚 shadedjars 5m 54s patch has no errors when building our shaded downstream artifacts.
-0 ⚠️ javadoc 0m 26s hbase-client in the patch failed.
-0 ⚠️ javadoc 0m 40s hbase-server in the patch failed.
-0 ⚠️ javadoc 0m 20s hbase-examples in the patch failed.
_ Other Tests _
+1 💚 unit 1m 0s hbase-client in the patch passed.
-0 ⚠️ unit 71m 19s hbase-server in the patch failed.
+1 💚 unit 1m 31s hbase-examples in the patch passed.
109m 51s
Subsystem Report/Notes
Docker Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #1260
Optional Tests javac javadoc unit shadedjars compile
uname Linux 9b83ce09674c 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / aa53493
Default Java 2020-01-14
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-client.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-examples.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-server.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-client.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt
javadoc https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-examples.txt
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/testReport/
Max. process+thread count 6215 (vs. ulimit of 10000)
modules C: hbase-client hbase-server hbase-examples U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/console
versions git=2.17.1 maven=2018-06-17T18:33:14Z)
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 10s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 34s Maven dependency ordering for branch
+1 💚 mvninstall 6m 25s master passed
+1 💚 compile 1m 57s master passed
+1 💚 shadedjars 5m 30s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 13s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 6m 1s the patch passed
+1 💚 compile 1m 56s the patch passed
+1 💚 javac 1m 56s the patch passed
+1 💚 shadedjars 5m 43s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 22s the patch passed
_ Other Tests _
+1 💚 unit 0m 57s hbase-client in the patch passed.
-1 ❌ unit 100m 7s hbase-server in the patch failed.
+1 💚 unit 1m 31s hbase-examples in the patch passed.
136m 48s
Subsystem Report/Notes
Docker Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile
GITHUB PR #1260
Optional Tests javac javadoc unit shadedjars compile
uname Linux 386b5692efee 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / aa53493
Default Java 1.8.0_232
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/artifact/yetus-jdk8-hadoop2-check/output/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/testReport/
Max. process+thread count 4445 (vs. ulimit of 10000)
modules C: hbase-client hbase-server hbase-examples U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1260/3/console
versions git=2.17.1 maven=2018-06-17T18:33:14Z)
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@bharathv bharathv left a comment

Choose a reason for hiding this comment

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

Sorry for the delay, I was busy in the past few weeks. I finally had a chance to spend some time on this and it makes sense to me.

@asfgit asfgit closed this in 78eecd3 Mar 26, 2020
joshelser added a commit to joshelser/hbase that referenced this pull request Apr 13, 2020
… considering SASL negotiation complete

The PLAIN mechanism test added in the Shade authentication example has
different semantics than GSSAPI mechanism -- the client reports that the
handshake is done after the original challenge is computed. The javadoc
on SaslClient, however, tells us that we need to wait for a response
from the server before proceeding.

The client, best as I can see, does not receive any data from HBase;
however the application semantics (e.g. throw an exception on auth'n
error) do not work as we intend as a result of this bug.

Extra trace logging was also added to debug this, should a similar error
ever happen again with some other mechanism.

Closes apache#1260

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bharath Vissapragada <bharathv@apache.org>
thangTang pushed a commit to thangTang/hbase that referenced this pull request Apr 16, 2020
… considering SASL negotiation complete

The PLAIN mechanism test added in the Shade authentication example has
different semantics than GSSAPI mechanism -- the client reports that the
handshake is done after the original challenge is computed. The javadoc
on SaslClient, however, tells us that we need to wait for a response
from the server before proceeding.

The client, best as I can see, does not receive any data from HBase;
however the application semantics (e.g. throw an exception on auth'n
error) do not work as we intend as a result of this bug.

Extra trace logging was also added to debug this, should a similar error
ever happen again with some other mechanism.

Closes apache#1260

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bharath Vissapragada <bharathv@apache.org>
thangTang pushed a commit to thangTang/hbase that referenced this pull request Apr 16, 2020
… considering SASL negotiation complete

The PLAIN mechanism test added in the Shade authentication example has
different semantics than GSSAPI mechanism -- the client reports that the
handshake is done after the original challenge is computed. The javadoc
on SaslClient, however, tells us that we need to wait for a response
from the server before proceeding.

The client, best as I can see, does not receive any data from HBase;
however the application semantics (e.g. throw an exception on auth'n
error) do not work as we intend as a result of this bug.

Extra trace logging was also added to debug this, should a similar error
ever happen again with some other mechanism.

Closes apache#1260

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bharath Vissapragada <bharathv@apache.org>
thangTang pushed a commit to thangTang/hbase that referenced this pull request Apr 16, 2020
… considering SASL negotiation complete

The PLAIN mechanism test added in the Shade authentication example has
different semantics than GSSAPI mechanism -- the client reports that the
handshake is done after the original challenge is computed. The javadoc
on SaslClient, however, tells us that we need to wait for a response
from the server before proceeding.

The client, best as I can see, does not receive any data from HBase;
however the application semantics (e.g. throw an exception on auth'n
error) do not work as we intend as a result of this bug.

Extra trace logging was also added to debug this, should a similar error
ever happen again with some other mechanism.

Closes apache#1260

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bharath Vissapragada <bharathv@apache.org>
asfgit pushed a commit that referenced this pull request Apr 26, 2020
… considering SASL negotiation complete

The PLAIN mechanism test added in the Shade authentication example has
different semantics than GSSAPI mechanism -- the client reports that the
handshake is done after the original challenge is computed. The javadoc
on SaslClient, however, tells us that we need to wait for a response
from the server before proceeding.

The client, best as I can see, does not receive any data from HBase;
however the application semantics (e.g. throw an exception on auth'n
error) do not work as we intend as a result of this bug.

Extra trace logging was also added to debug this, should a similar error
ever happen again with some other mechanism.

Closes #1260

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Bharath Vissapragada <bharathv@apache.org>
Sign up for free to 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.

4 participants