You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2020/03/27 15:36:00 UTC

[jira] [Commented] (PROTON-2187) Python client leak on early Connection.close

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

ASF GitHub Bot commented on PROTON-2187:
----------------------------------------

cliffjansen commented on pull request #236: PROTON-2187: Python client: connection cleanup on close while still c…
URL: https://github.com/apache/qpid-proton/pull/236
 
 
   Proposed fix: Check if the close operation precedes the TCP handshake completion, and reproduce the missing cleanup steps.
   
   This requires remembering the transport's selectable so that it can be accessed at the tie of the close.
   
   The deleted lines in _handlers.py:
   
           # TODO: Don't understand why we need this now - how can we get PN_TRANSPORT until the connection succeeds?
   
          t._selectable = None
   
   were investigated.  No PN_TRANSPORT events are generated before the TCP handshake completes, even with first SASL frame output.
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Python client leak on early Connection.close
> --------------------------------------------
>
>                 Key: PROTON-2187
>                 URL: https://issues.apache.org/jira/browse/PROTON-2187
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: python-binding
>    Affects Versions: proton-c-0.28.0
>            Reporter: Clifford Jansen
>            Assignee: Clifford Jansen
>            Priority: Major
>             Fix For: proton-c-0.31.0
>
>
> The Python client waits for completion of the outgoing TCP connection handshake before it fully configures its internal IO structures for the connection to do normal two way communication with the server. If a Connection.close() happens before the TCP handshake is complete, the incomplete nature of the IO setup is not properly taken into account on close and cleanup, resulting in leaked memory related to the Container and the Connection.
> The window for this problem is usually small, but not insignificant on some networks. It is trivial to reproduce if firewall tables are set up to drop packets.
> See reproducer https://bugzilla.redhat.com/show_bug.cgi?id=1810549#c3
> The bug also reproduces against the Proton example brokers. qpidd is not required.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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