Arnaud Cogoluègnes created PROTON-2995:
------------------------------------------

             Summary: Closing a link blocks until the close timeout when the 
remote ends the session instead of answering the detach
                 Key: PROTON-2995
                 URL: https://issues.apache.org/jira/browse/PROTON-2995
             Project: Qpid Proton
          Issue Type: Bug
          Components: protonj2
    Affects Versions: protonj2-1.4.0
            Reporter: Arnaud Cogoluègnes
            Assignee: Timothy A. Bish


When a link is closed or detached locally, the client waits for the remote 
detach. If the remote ends the session or closes the connection instead of 
answering the detach, that remote detach never arrives. Sender#close() / 
Receiver#close() (and detach()) then block until the link close timeout (60 
seconds by default), and the close future only completes when the timeout 
expires.

The same happens if the remote ends the session for an unrelated reason while 
the detach is in flight.

Cause: ProtonLink#fireParentEndpointClosed() only fires the 
parent-endpoint-closed handler for links that are still locally open. A link 
that is locally closed but still waiting for the remote detach never gets the 
event, so the client never runs ClientLinkType#handleParentEndpointClosed and 
the link shutdown doesn't complete.

Fix: also fire the handler for links that are locally closed or detached but 
not yet remotely closed or detached. Links closed on both ends are still not 
notified.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to