[ https://issues.apache.org/jira/browse/ZOOKEEPER-562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Reed updated ZOOKEEPER-562: ------------------------------------ Attachment: ZOOKEEPER-562.patch this patch fixes the problem by only sending a ping if there isn't something already queued. the test checks for clients sending gratuitous pings. > 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: Benjamin Reed > Priority: Blocker > Fix For: 3.2.2, 3.3.0 > > Attachments: ZOOKEEPER-562.patch > > > 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.