[ 
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:
[email protected]


> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to