[
https://issues.apache.org/jira/browse/ZOOKEEPER-2785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16013687#comment-16013687
]
ASF GitHub Bot commented on ZOOKEEPER-2785:
-------------------------------------------
GitHub user abhishek-chouhan opened a pull request:
https://github.com/apache/zookeeper/pull/256
ZOOKEEPER-2785 Server inappropriately throttles connections under loa…
…d before SASL completes
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/abhishek-chouhan/zookeeper ZOOKEEPER-2785
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/zookeeper/pull/256.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #256
----
commit 52a1037ebe30ece519ee5c1cc6202d0c53235706
Author: Abhishek Singh Chouhan <[email protected]>
Date: 2017-05-17T07:49:07Z
ZOOKEEPER-2785 Server inappropriately throttles connections under load
before SASL completes
----
> Server inappropriately throttles connections under load before SASL completes
> -----------------------------------------------------------------------------
>
> Key: ZOOKEEPER-2785
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2785
> Project: ZooKeeper
> Issue Type: Bug
> Affects Versions: 3.4.10
> Reporter: Abhishek Singh Chouhan
> Priority: Critical
> Fix For: 3.4.11
>
>
> When a zk server is running close to its outstanding requests limit, the
> server incorrectly throttles the sasl request. This leads to the client
> waiting for the final sasl packet (session is already established) and
> deferring all non priming packets till then which also includes the ping
> packets. The client then waits for the final packet but never gets it and
> times out saying haven't heard from server. This is fatal for services such
> as HBase which retry for finite attempts and exit post these attempts.
> Issue being that in ZooKeeperServer.processPacket(..) incase of sasl we send
> the response and incorrectly also call cnxn.incrOutstandingRequests(h), which
> throttles the connection if we're running over outstandingrequests limit,
> which results in the server not processing the subsequent packet from the
> client. Also we donot have any pending request to send for the connection and
> hence never call enableRecv(). We should return after sending response to the
> sasl request.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)