[ https://issues.apache.org/jira/browse/ZOOKEEPER-2785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Patrick Hunt reassigned ZOOKEEPER-2785: --------------------------------------- Assignee: Abhishek Singh Chouhan > 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 > Components: server > Affects Versions: 3.4.10 > Reporter: Abhishek Singh Chouhan > Assignee: Abhishek Singh Chouhan > Priority: Critical > Labels: sasl > Fix For: 3.5.4, 3.6.0, 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)