[ https://issues.apache.org/jira/browse/ZOOKEEPER-562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12770291#action_12770291 ]
Patrick Hunt commented on ZOOKEEPER-562: ---------------------------------------- send_ping is calling wake_io_thread itself, so this is a particularly bad situation (forces a tight loop) solution is to update last_send as last_send_attempt when attempting to send, whether successful or not. > c client can flood server with pings if tcp send queue filled > ------------------------------------------------------------- > > Key: ZOOKEEPER-562 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-562 > Project: Zookeeper > Issue Type: Bug > Components: c client > Affects Versions: 3.2.1 > Reporter: Patrick Hunt > Assignee: Mahadev konar > Priority: Blocker > Fix For: 3.2.2, 3.3.0 > > > The c client can flood the server with pings if the tcp queue is filled. > Say the cluster is overloaded and shuts down the recv processing > a c client can send a ping, but since last_send is only updated on successful > pushing of data into the > socket, if flush_send_queue fails to send any data (send_buffer returns 0) > then last_send is not updated > and zookeeper_interest will again send a ping the next time it is woken - > which could be 0 if recv_to is close > to 0, easily could happen if server is not sending data to the client. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.