[ https://issues.apache.org/jira/browse/QPID-7835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Keith Wall updated QPID-7835: ----------------------------- Affects Version/s: (was: qpid-java-6.1.3) 0.24 > dead lock error > --------------- > > Key: QPID-7835 > URL: https://issues.apache.org/jira/browse/QPID-7835 > Project: Qpid > Issue Type: Bug > Components: Java Client > Affects Versions: 0.24 > Reporter: hanfeng > Attachments: jstack.txt > > > When the message server links over time, a message is sent, the caller to > perceive the message send timeout, take the initiative to close the session, > at the same time links are perceived to request timeout to shut down > connection, re link the message server. > When the link function of doClose to get off the lock _failoverMutex, but did > not get a specific lock _messageDeliveryLock to close the session, close the > session function close to get to the _messageDeliveryLock _failoverMutex > lock, lock wait for link > Deadlock. > Modification method. > In session's close function, add a judgment that you are closing session. > public void close(long timeout) throws JMSException > { > {color:red} if (super.isClosing()) return ;{color} > setClosing(true); > lockMessageDelivery(); > try > { > // We must close down all producers and consumers in an orderly > fashion. This is the only method > // that can be called from a different thread of control from the > one controlling the session. > synchronized (getFailoverMutex()) > { > close(timeout, true); > } > } > finally > { > unlockMessageDelivery(); > } > } -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org