[infinispan-issues] [JBoss JIRA] (ISPN-2356) xsite replication: only the first site replication eror is reported
Mircea Markus (JIRA)
jira-events at lists.jboss.org
Tue Oct 2 05:35:03 EDT 2012
[ https://issues.jboss.org/browse/ISPN-2356?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mircea Markus updated ISPN-2356:
--------------------------------
Fix Version/s: 5.2.0.Beta1
> xsite replication: only the first site replication eror is reported
> -------------------------------------------------------------------
>
> Key: ISPN-2356
> URL: https://issues.jboss.org/browse/ISPN-2356
> Project: Infinispan
> Issue Type: Bug
> Components: Cross-Site Replication
> Affects Versions: 5.2.0.Alpha4
> Reporter: Bela Ban
> Assignee: Bela Ban
> Priority: Minor
> Fix For: 5.2.0.Beta1
>
>
> When we have a couple of backup sites (e.g. NYC and SFO) and none of them are running, a sync replication with backupFailurePolicy=FAIL with throw an exception on the first failure, e.g. SFO. However it will not report the failure for NYC.
> Not sure if this is crucial, but I suspect somewhere someone counts the failures per site, and in this case NYC would not show any failures until SFO is taken offline.
> The code is in BackupSenderImpl:
> {code}
> public void processResponses(BackupResponse backupResponse, VisitableCommand command, Transaction transaction) throws Throwable {
> backupResponse.waitForBackupToFinish();
> SitesConfiguration sitesConfiguration = config.sites();
> Map<String, Throwable> failures = backupResponse.getFailedBackups();
> for (Map.Entry<String, Throwable> failure : failures.entrySet()) {
> BackupFailurePolicy policy = sitesConfiguration.getFailurePolicy(failure.getKey());
> if (policy == BackupFailurePolicy.CUSTOM) {
> CustomFailurePolicy customFailurePolicy = siteFailurePolicy.get(failure.getKey());
> command.acceptVisitor(null, new CustomBackupPolicyInvoker(failure.getKey(), customFailurePolicy, transaction));
> }
> if (policy == BackupFailurePolicy.WARN) {
> log.warnXsiteBackupFailed(cacheName, failure.getKey(), failure.getValue());
> } else if (policy == BackupFailurePolicy.FAIL) {
> throw new BackupFailureException(failure.getValue(),failure.getKey(), cacheName);
> }
> }
> }
> {code}
> Iterating through the failure map, we throw a BackupFailureException on the *first* failure. I suggest to either collect all exceptions (also when invoking the custom failure policy !) and throw them as a new exception (listing all of them) or to simply log the situation as an error.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list