activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kyle Anderson (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-2459) MasterBroker logs the same 'Slave Failed' error for all exceptions, whether or not the Master/Slave connection has been terminated
Date Wed, 21 Oct 2009 18:53:52 GMT
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.


Mime
View raw message