Abhishek Singh Chouhan created ZOOKEEPER-2785:
-------------------------------------------------

             Summary: 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)

Reply via email to