Merge branch 'cassandra-3.0' into cassandra-3.5

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

Branch: refs/heads/cassandra-3.5
Commit: cd69d9d3333e9c89a559eac4795e7a8cfa3e13c4
Parents: 7fbdce8 6807c59
Author: Marcus Eriksson <marc...@apache.org>
Authored: Thu Mar 31 09:44:35 2016 +0200
Committer: Marcus Eriksson <marc...@apache.org>
Committed: Thu Mar 31 09:44:35 2016 +0200

----------------------------------------------------------------------
 CHANGES.txt                                       |  1 +
 .../db/compaction/CompactionManager.java          | 17 ++++++++++-------
 .../repair/RepairMessageVerbHandler.java          | 18 ++++++++++--------
 .../cassandra/service/ActiveRepairService.java    |  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/cd69d9d3/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/cd69d9d3/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index 3b23b1f,eeefec4..519fe5f
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@@ -98,17 -98,19 +98,19 @@@ public class RepairMessageVerbHandler i
                                     !sstable.metadata.isIndex() && // exclude 
SSTables from 2i
                                     new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(repairingRange);
                          }
 -                    }, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
 +                    }, true, false); //ephemeral snapshot, if repair fails, 
it will be cleaned next startup
- 
-                     Set<SSTableReader> currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
-                     if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+                     if 
(ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).isGlobal)
                      {
-                         // clear snapshot that we just created
-                         cfs.clearSnapshot(desc.sessionId.toString());
-                         logErrorAndSendFailureResponse("Cannot start multiple 
repair sessions over the same sstables", message.from, id);
-                         return;
+                         Set<SSTableReader> currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
+                         if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+                         {
+                             // clear snapshot that we just created
+                             cfs.clearSnapshot(desc.sessionId.toString());
+                             logErrorAndSendFailureResponse("Cannot start 
multiple repair sessions over the same sstables", message.from, id);
+                             return;
+                         }
+                         
ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).addSSTables(cfs.metadata.cfId,
 snapshottedSSSTables);
                      }
-                     
ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).addSSTables(cfs.metadata.cfId,
 snapshottedSSSTables);
                      logger.debug("Enqueuing response to snapshot request {} 
to {}", desc.sessionId, message.from);
                      MessagingService.instance().sendReply(new 
MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from);
                      break;

Reply via email to