[
https://issues.apache.org/jira/browse/QPIDJMS-529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17309712#comment-17309712
]
ASF subversion and git services commented on QPIDJMS-529:
---------------------------------------------------------
Commit e328aedbd7aa0fed82ab7f52c7cda43b76025db4 in qpid-jms's branch
refs/heads/main from Timothy Bish
[ https://gitbox.apache.org/repos/asf?p=qpid-jms.git;h=e328aed ]
QPIDJMS-529 Don't track send that fail due to producer already closed
The send method in AmqpFixedProducer was neglecting to exit after
failing a send due to producer already having closed which lead to a
tracked send that had no change of being completed later in most cases
which could cause a hang on producer close due to send in the blocked
list.
> Remote link closure when producer send and close race and lead to close
> blocking forever
> ----------------------------------------------------------------------------------------
>
> Key: QPIDJMS-529
> URL: https://issues.apache.org/jira/browse/QPIDJMS-529
> Project: Qpid JMS
> Issue Type: Bug
> Components: qpid-jms-client
> Affects Versions: 0.57.0
> Reporter: Timothy A. Bish
> Assignee: Timothy A. Bish
> Priority: Major
> Fix For: 0.58.0
>
>
> A three way race can occur when a remote link closure occurs and two threads
> are in the process of both sending a message and attempting to close the
> producer. Due to a bug in the provider producer send handler the send can
> trigger tracking of the send even when it has known to have failed due to the
> link already having entered a closed state due to remote detach arriving.
> The MessageProducer close operation if initiated such that it is waiting
> behind the send call for the IO thread can block forever waiting for the
> tracked send to be discarded which it never will as it was already considered
> failed by the initial send call.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]