[ 
https://issues.apache.org/jira/browse/PROTON-1890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16543216#comment-16543216
 ] 

Alan Conway commented on PROTON-1890:
-------------------------------------

I think you are seeing a bug in an older release (0.16), I believe it is fixed 
in the current release (0.24). I verified as follows:

1. Edit examples to set idle-timeout, similar to what you did - see 
[^examples.diff]

2. Run `server_direct` then `./scheduled_send_03 -t 1000` (without -t 1000 the 
client only runs for 5 seconds)

3. use kill -STOP to freeze the server - the client times out. use kill -CONT 
to resume the server - the server times out.

4. repeat step 3 but freeze the client first.

Kill -STOP has a similar effect to dropping packets: the socket remains open 
but the peer process is unresponsive. I  believe this will also work for your 
muti-threaded, packet-dropping scenario. Please try upgrading to the current 
release and let me know what you find.

With the current release you will get some "deprecation" warnings with your 
original test code. It should still work, but it would be best to update the 
code to follow the latest examples - the changes are minor.

> [c++] implement idle_timeout and heartbeats
> -------------------------------------------
>
>                 Key: PROTON-1890
>                 URL: https://issues.apache.org/jira/browse/PROTON-1890
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: cpp-binding
>    Affects Versions: 0.16.0
>            Reporter: Praveen Bodke
>            Assignee: Alan Conway
>            Priority: Major
>         Attachments: PROTON-1890.zip, examples.diff
>
>
> This is similar issue reported in PROTON-1782 for ruby. 
> We are facing this issue in cpp binding and i am able to reproduce the issue 
> with scheduled_send_03.cpp example. The test scenario is to drop all the 
> packets from both the interfaces after the successful connection. The only 
> change i made to this example is to send messages continuously inside the 
> send() method. The other end is detecting the error as it is sending the 
> empty frames and no response is heard.
> The proton is not sending the heartbeat messages (empty frames) as the sender 
> is busy in sending the data frames. Is it not necessary to send empty frames 
> even if the data frames are sent?
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to