Merge branch 'cassandra-1.1' into cassandra-1.2

Conflicts:
        src/java/org/apache/cassandra/tools/NodeProbe.java


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/15214fee
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/15214fee
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/15214fee

Branch: refs/heads/trunk
Commit: 15214fee107ba27aa9cc7f74524e071f31085257
Parents: fa1f9ba 6bddbb2
Author: Yuki Morishita <[email protected]>
Authored: Fri Feb 1 15:34:44 2013 -0600
Committer: Yuki Morishita <[email protected]>
Committed: Fri Feb 1 15:34:44 2013 -0600

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../cassandra/service/AntiEntropyService.java      |    5 ++-
 src/java/org/apache/cassandra/tools/NodeCmd.java   |    2 +-
 src/java/org/apache/cassandra/tools/NodeProbe.java |   17 ++++++++++++--
 4 files changed, 19 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/15214fee/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/15214fee/src/java/org/apache/cassandra/service/AntiEntropyService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/AntiEntropyService.java
index a4af6b9,f3ca1c2..704ff86
--- a/src/java/org/apache/cassandra/service/AntiEntropyService.java
+++ b/src/java/org/apache/cassandra/service/AntiEntropyService.java
@@@ -663,12 -687,13 +663,13 @@@ public class AntiEntropyServic
              {
                  if (!FailureDetector.instance.isAlive(endpoint))
                  {
+                     String message = String.format("Cannot proceed on repair 
because a neighbor (%s) is dead: session failed", endpoint);
                      differencingDone.signalAll();
-                     logger.info(String.format("[repair #%s] Cannot proceed on 
repair because a neighbor (%s) is dead: session failed", getName(), endpoint));
-                     return;
+                     logger.error(String.format("[repair #%s] ", getName()) + 
message);
+                     throw new IOException(message);
                  }
  
 -                if (Gossiper.instance.getVersion(endpoint) < 
MessagingService.VERSION_11 && isSequential)
 +                if (MessagingService.instance().getVersion(endpoint) < 
MessagingService.VERSION_11 && isSequential)
                  {
                      logger.info(String.format("[repair #%s] Cannot repair 
using snapshots as node %s is pre-1.1", getName(), endpoint));
                      return;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/15214fee/src/java/org/apache/cassandra/tools/NodeCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/15214fee/src/java/org/apache/cassandra/tools/NodeProbe.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/tools/NodeProbe.java
index 7a7c60c,036d653..80abb87
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@@ -77,9 -79,8 +77,10 @@@ public class NodeProb
      public MessagingServiceMBean msProxy;
      private FailureDetectorMBean fdProxy;
      private CacheServiceMBean cacheService;
 +    private PBSPredictorMBean PBSPredictorProxy;
      private StorageProxyMBean spProxy;
 +    private HintedHandOffManagerMBean hhProxy;
+     private boolean failed;
  
      /**
       * Creates a NodeProbe using the specified JMX host, port, username, and 
password.
@@@ -217,7 -214,8 +218,8 @@@
          try
          {
              ssProxy.addNotificationListener(runner, null, null);
-             runner.repairAndWait(ssProxy, isSequential, isLocal, 
primaryRange);
 -            if (!runner.repairAndWait(ssProxy, isSequential, primaryRange))
++            if (!runner.repairAndWait(ssProxy, isSequential, isLocal, 
primaryRange))
+                 failed = true;
          }
          catch (Exception e)
          {
@@@ -864,9 -820,9 +872,9 @@@ class RepairRunner implements Notificat
          this.columnFamilies = columnFamilies;
      }
  
-     public void repairAndWait(StorageServiceMBean ssProxy, boolean 
isSequential, boolean isLocal, boolean primaryRangeOnly) throws 
InterruptedException
 -    public boolean repairAndWait(StorageServiceMBean ssProxy, boolean 
isSequential, boolean primaryRangeOnly) throws InterruptedException
++    public boolean repairAndWait(StorageServiceMBean ssProxy, boolean 
isSequential, boolean isLocal, boolean primaryRangeOnly) throws 
InterruptedException
      {
 -        cmd = ssProxy.forceRepairAsync(keyspace, isSequential, 
primaryRangeOnly, columnFamilies);
 +        cmd = ssProxy.forceRepairAsync(keyspace, isSequential, isLocal, 
primaryRangeOnly, columnFamilies);
          if (cmd > 0)
          {
              condition.await();
@@@ -888,8 -847,9 +897,10 @@@
              {
                  String message = String.format("[%s] %s", 
format.format(notification.getTimeStamp()), notification.getMessage());
                  out.println(message);
 +                // repair status is int array with [0] = cmd number, [1] = 
status
-                 if (status[1] == AntiEntropyService.Status.FINISHED.ordinal())
+                 if (status[1] == 
AntiEntropyService.Status.SESSION_FAILED.ordinal())
+                     success = false;
+                 else if (status[1] == 
AntiEntropyService.Status.FINISHED.ordinal())
                      condition.signalAll();
              }
          }

Reply via email to