Patrick Hunt commented on ZOOKEEPER-562:

+1, looks good to me - if we are waiting for a result we don't need to send a 
ping. great!

Mahadev, can you take a look at this and commit if no issues found? (both 3.2 
branch and trunk)

> 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.

Reply via email to