Author: slebresne Date: Mon Apr 18 22:16:29 2011 New Revision: 1094796 URL: http://svn.apache.org/viewvc?rev=1094796&view=rev Log: Check for dead neighbors before starting repair patch by slebresne; reviewed by jbellis for CASSANDRA-2290
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AntiEntropyService.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AntiEntropyService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AntiEntropyService.java?rev=1094796&r1=1094795&r2=1094796&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AntiEntropyService.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AntiEntropyService.java Mon Apr 18 22:16:29 2011 @@ -39,6 +39,7 @@ import org.apache.cassandra.db.Decorated 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);