You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Justin Ross (JIRA)" <ji...@apache.org> on 2016/01/07 21:41:39 UTC
[jira] [Updated] (PROTON-682) proton-c: a call to pn_messenger_stop
can get into an infinite loop if the remote connection is severed
[ https://issues.apache.org/jira/browse/PROTON-682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Ross updated PROTON-682:
-------------------------------
Labels: messenger patch (was: )
> proton-c: a call to pn_messenger_stop can get into an infinite loop if the remote connection is severed
> -------------------------------------------------------------------------------------------------------
>
> Key: PROTON-682
> URL: https://issues.apache.org/jira/browse/PROTON-682
> Project: Qpid Proton
> Issue Type: Bug
> Reporter: Dominic Evans
> Assignee: Andrew Stitcher
> Labels: messenger, patch
> Attachments: 36_socket_hangup_fix_messenger.c.patch, 36_socket_hangup_fix_selector.c.patch, 36_socket_hangup_fix_selector.h.patch
>
>
> The problem is that the transport layer is not being closed down properly if output is pending when the connection is severed and a messenger stop is requested. pn_messenger_stop needs to send out an AMQP close message any will only do this when there is an event to say that it can write (i.e pn_messenger_process gets a PN_WRITABLE event from pn_selector_next, which examines the pollfd and sets PN_WRITABLE event if POLLOUT is set in revents). Because this event is never generated it seems to loop forever.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)