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]