Hi, I am testing the cluster with HornetQ on JBoss5. (HornetQ2.1.2Final / JBossEAP5.1)
There is the case that message transfer locks when I do kill of the server process of the destination by cluster message transfer.
It seems to be stored away by forwarding Queue when I send a message from a client after having done kill of a server node.
But, there is no response when forwarding Queue is confirmed with the JMX console of a forwarding former node.
I succeeded in causing this problem by the following scenarios and took a thread dump.
*1 BreakPoint
BridgeImpl.java
handle(final MessageReference ref)
producer.send(dest, message);
Check a thread dump:
FailoverManager does not work unless Thread-21 works, and the JMX console access does not work.
Thread-21 seems to wait for credit from node#1, but node#1 is already done kill.
I think that this is very bad. However, the following comments are written in the source code.
==
ClientProducerCreditsImpl.acquireCredits
// This will block if credits are not available
==
This lock seems to be expected, but is there any work around?
and, it is not good that FailoverManager stops in this lock.
Thanks