You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Alan Conway (JIRA)" <ji...@apache.org> on 2019/03/05 21:39:00 UTC
[jira] [Assigned] (PROTON-1964) [c] pn_proactor_wait() can return
empty event batches.
[ https://issues.apache.org/jira/browse/PROTON-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alan Conway reassigned PROTON-1964:
-----------------------------------
Assignee: (was: Alan Conway)
> [c] pn_proactor_wait() can return empty event batches.
> ------------------------------------------------------
>
> Key: PROTON-1964
> URL: https://issues.apache.org/jira/browse/PROTON-1964
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-c
> Reporter: Alan Conway
> Priority: Major
> Fix For: proton-c-0.18.0
>
>
> The bug PROTON-1586 had events returned after a connection was TRANSPORT_CLOSED and no longer existed (original reproducer below) The bug still exists in a more subtle form - the proactor can return an *empty* event batch after TRANSPORT_CLOSED. This does not cause segfaults but is incorrect behavior according to the proactor documentation.
> To reproduce the problem see the comments in c/tests/pn_test_proactor.cpp in function proactor::wait_next().
> The fix to PROTON-1586 was to have the connection_driver batch to hide events after TRANSPORT_CLOSE by returning NULL as if the batch were empty. However, that is too late to prevent the batch being returned by the proactor - from the proactors perspective it is not empty, it contains CONNECTION_LOCAL_CLOSE but it looks empty to the user.
> This is really a bug in the pn_connection_driver, not the proactor, and it should be fixed there so that all proactors and non-proactor applications will benefit.
> ----
> Original reproducer:
> Run the send examples code with an invalid hostname like shown in the following -
> {noformat}
> [gmurthy@localhost build]$ pwd
> /home/gmurthy/opensource/qpid-proton/build
> [gmurthy@localhost build]$
> [gmurthy@localhost build]$
> [gmurthy@localhost build]$ examples/c/send nosuchhost
> PN_TRANSPORT_CLOSED: proton:io: No address associated with hostname - connect to nosuchhost:5672
> epoll proactor failure in /home/gmurthy/opensource/qpid-proton/proton-c/src/proactor/epoll.c:648: "arming polled file descriptor": No such file or directory
> Aborted (core dumped)
> [gmurthy@localhost build]$
> {noformat}
> The proactor code coredumps.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org