You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Bajan Fella (Jira)" <ji...@apache.org> on 2019/09/12 13:27:00 UTC

[jira] [Commented] (PROTON-1890) [c++] implement idle_timeout and heartbeats

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

Bajan Fella commented on PROTON-1890:
-------------------------------------

I am running 0.25 and I think I'm still seeing this issue where the local-dle-timeout is being detected but the on_transport_error callback is not being called. I have all my TRACE flags enabled and I am seeing

->[000001661BD6BDF0]:ERROR amqp:resource-limit-exceeded local-idle-timeout expired

 ->[000001661BD6BDF0]:0 -> @close(24) [error=@error(29) [condition=:"amqp:resource-limit-exceeded", description="local-idle-timeout expired"]]

 I caught the issue in the debugger and found the event type in  container::impl::dispatch(pn_event_t* event) is PN_TRANSPORT_ERROR. It then call messaging_adapter::dispatch which does not handle PN_TRANSPORT_ERROR

 

If I seemly disconnect the cable or disable my network adapter I get the on_transport_error being fired almost immediately so I know the code is working.

I'm I missing something or is this still a bug?

> [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: proton-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
(v8.3.2#803003)

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