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 {