Details
-
Task
-
Status: Closed
-
Major
-
Resolution: Later
-
M3
-
None
Description
The following methods use syncWrite() but are not wrapped in a FailoverSupport:
AMQSession's commit(), rollback(), close()
AMQConnection.close() via AMQProtocolHandler.closeConnection()
BasicMessageConsumer.close()
These need to be protected/wrapped in a FailoverSupport. Note that commit() and rollback() are not currently protected by a lock on failoverMutex either.
Perhaps StateManager.attainState is the only other method that blocks for "a response frame". In this case a series of response frames that result in the state changing. The only use of attainState is in AMQConnection.makeBrokerConnection. It would appear to need to be wrapped in a FailoverSupport as otherwise the FailoverException will escape. Since this is failing-over during connection some care may be required. Note that the makeBrokerConnection is used at 3 different sites.
In addition sendAcknowledgement appear to need to lock the failoverMutex.