Duo Zhang created HBASE-27204:
---------------------------------
Summary: BlockingRpcClient will hang for 20 seconds when SASL is
enabled after finishing negotiation
Key: HBASE-27204
URL: https://issues.apache.org/jira/browse/HBASE-27204
Project: HBase
Issue Type: Bug
Components: rpc, sasl, security
Reporter: Duo Zhang
Found this when implementing HBASE-27185. When running TestSecureIPC, if
BlockingRpcClient is used, the tests will spend much more time comparing to
NettyRpcClient.
The problem is that, for the normal kerberos authentication, the last step is
client send a reply to server, so after server receives the last token, it will
not write anything back but expect client to send connection header.
In HBASE-24579, for reading the error message, we added a readReply after the
SaslClient indicates that the negotiation is completed. But as said above, for
normal cases, we will not write anything back from server side, so the client
will hang there and only throw an exception when timeout is reached, which is
20 seconds.
This nearly makes the BlockingRpcClient unusable when sasl is enabled, as it
will hang 20 seconds when connecting...
--
This message was sent by Atlassian Jira
(v8.20.10#820010)