MasterBroker logs the same 'Slave Failed' error for all exceptions, whether or 
not the Master/Slave connection has been terminated
----------------------------------------------------------------------------------------------------------------------------------

                 Key: AMQ-2459
                 URL: https://issues.apache.org/activemq/browse/AMQ-2459
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.3.0, 5.2.0
            Reporter: Kyle Anderson
            Priority: Minor


The sendSyncToSlave method of MasterBroker on line 393 logs a 'Slave Failed' 
error if the slave returns an exception response for a particular replicated 
command.

This doesn't cause master/slave communication to stop, but it's the same error 
that's logged when a slave dies.  This can cause some confusion.

I found this issue pops up when recovering a master from a slave's data 
directory.
1. Create a producer & consumer on the master/slave (where master is set to 
wait for slave)
2. Send a few messages to the master/slave
3. Kill the master/slave, and recover from the slave's data directory, and 
restart them
4. Receive messages on the consumer (whose failover connection was waiting for 
the master/slave during the recovery)

Any messages that were pre-fetched on the consumer will cause the master to 
report that the Slave Failed with "Could not correlate acknowledgment with 
dispatched message".  Perhaps this points to an issue in PrefetchSubscription 
too - but aside from the initial noise, the recovery works as expected  with no 
message loss.

Incidentally, I would think that while the exception repose from 
sendSyncToSlave shouldn't stop the MasterBroker, the catch all (on line 395) 
should stop processing the same way that a sendAsyncToSlave failure does.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to