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)