Check for dead neighbors before starting repair

patch by slebresne; reviewed by jbellis for CASSANDRA-2290


git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7@1094796 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sylvain Lebresne 2011-04-18 22:16:29 +00:00
parent 7dbb7983c2
commit d951f52538
1 changed files with 11 additions and 0 deletions

View File

@ -39,6 +39,7 @@ import org.apache.cassandra.db.DecoratedKey;
import org.apache.cassandra.db.Table;
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.dht.Token;
import org.apache.cassandra.gms.FailureDetector;
import org.apache.cassandra.io.AbstractCompactedRow;
import org.apache.cassandra.io.ICompactSerializer;
import org.apache.cassandra.io.sstable.SSTableReader;
@ -753,6 +754,16 @@ public class AntiEntropyService
return;
}
// Checking all nodes are live
for (InetAddress endpoint : endpoints)
{
if (!FailureDetector.instance.isAlive(endpoint))
{
logger.info("Could not proceed on repair because a neighbor (" + endpoint + ") is dead: " + getName() + " failed.");
return;
}
}
// begin a repair session
Callback callback = new Callback();
AntiEntropyService.this.sessions.put(getName(), callback);