Merge branch 'cassandra-2.2' into cassandra-3.0

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

Branch: refs/heads/trunk
Commit: e00e32ebb02aa892e53942153831feae5c3e98bb
Parents: bb6973a 9751eb5
Author: Yuki Morishita <yu...@apache.org>
Authored: Wed Dec 2 08:53:09 2015 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Wed Dec 2 08:53:09 2015 -0600

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../cassandra/repair/AnticompactionTask.java    | 23 ++++++++++++++------
 .../cassandra/service/ActiveRepairService.java  | 15 ++++++++++---
 3 files changed, 29 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e00e32eb/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 1b7f3a2,787d145..d5a8dea
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -25,7 -8,18 +25,8 @@@ Merged from 2.2
   * Fix SimpleDateType type compatibility (CASSANDRA-10027)
   * (Hadoop) fix splits calculation (CASSANDRA-10640)
   * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058)
 - * (cqlsh) show partial trace if incomplete after max_trace_wait 
(CASSANDRA-7645)
 - * Use most up-to-date version of schema for system tables (CASSANDRA-10652)
 - * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628)
 - * Expose phi values from failure detector via JMX and tweak debug
 -   and trace logging (CASSANDRA-9526)
 - * Fix RangeNamesQueryPager (CASSANDRA-10509)
 - * Deprecate Pig support (CASSANDRA-10542)
 - * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
 - * Fix IllegalArgumentException in DataOutputBuffer.reallocate for large 
buffers (CASSANDRA-10592)
  Merged from 2.1:
+  * Fix incremental repair hang when replica is down (CASSANDRA-10288)
 - * Avoid writing range tombstones after END_OF_ROW marker (CASSANDRA-10791)
   * Optimize the way we check if a token is repaired in anticompaction 
(CASSANDRA-10768)
   * Add proper error handling to stream receiver (CASSANDRA-10774)
   * Warn or fail when changing cluster topology live (CASSANDRA-10243)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e00e32eb/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/ActiveRepairService.java
index f9de140,61f4196..4722156
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@@ -268,9 -267,21 +268,18 @@@ public class ActiveRepairServic
  
          for (InetAddress neighbour : endpoints)
          {
-             PrepareMessage message = new PrepareMessage(parentRepairSession, 
cfIds, options.getRanges(), options.isIncremental(), timestamp, 
options.isGlobal());
-             MessageOut<RepairMessage> msg = message.createMessage();
-             MessagingService.instance().sendRR(msg, neighbour, callback, 
TimeUnit.HOURS.toMillis(1), true);
+             if (FailureDetector.instance.isAlive(neighbour))
+             {
 -                CassandraVersion peerVersion = 
SystemKeyspace.getReleaseVersion(neighbour);
 -                boolean isGlobal = options.isGlobal() && peerVersion != null 
&& peerVersion.compareTo(SUPPORTS_GLOBAL_PREPARE_FLAG_VERSION) >= 0;
 -                logger.debug("Sending prepare message: options.isGlobal = {}, 
peerVersion = {}", options.isGlobal(), peerVersion);
 -                PrepareMessage message = new 
PrepareMessage(parentRepairSession, cfIds, options.getRanges(), 
options.isIncremental(), isGlobal);
++                PrepareMessage message = new 
PrepareMessage(parentRepairSession, cfIds, options.getRanges(), 
options.isIncremental(), timestamp, options.isGlobal());
+                 MessageOut<RepairMessage> msg = message.createMessage();
+                 MessagingService.instance().sendRR(msg, neighbour, callback, 
TimeUnit.HOURS.toMillis(1), true);
+             }
+             else
+             {
+                 status.set(false);
+                 failedNodes.add(neighbour.getHostAddress());
+                 prepareLatch.countDown();
+             }
          }
          try
          {

Reply via email to