You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yu...@apache.org on 2015/02/02 23:56:58 UTC

[1/3] cassandra git commit: Fix hang when repairing empty keyspace

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 2a283e10f -> 8c003a2a5
  refs/heads/trunk 6e9aec312 -> 0cfeab60a


Fix hang when repairing empty keyspace

patch by Jeff Jirsa; reviewed by yukim for CASSANDRA-8694


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

Branch: refs/heads/cassandra-2.1
Commit: 8c003a2a5ab261db06fbda784b5353d38982f488
Parents: 2a283e1
Author: Jeff Jirsa <je...@jeffjirsa.net>
Authored: Mon Feb 2 16:52:03 2015 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Mon Feb 2 16:52:03 2015 -0600

----------------------------------------------------------------------
 CHANGES.txt                                                    | 1 +
 src/java/org/apache/cassandra/service/ActiveRepairService.java | 2 ++
 2 files changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c003a2a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 40d844c..b95fd3a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -83,6 +83,7 @@
  * Log failed host when preparing incremental repair (CASSANDRA-8228)
  * Force config client mode in CQLSSTableWriter (CASSANDRA-8281)
  * Fix sstableupgrade throws exception (CASSANDRA-8688)
+ * Fix hang when repairing empty keyspace (CASSANDRA-8694)
 Merged from 2.0:
  * Prevent non-zero default_time_to_live on tables with counters
    (CASSANDRA-8678)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c003a2a/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/ActiveRepairService.java b/src/java/org/apache/cassandra/service/ActiveRepairService.java
index 1c5138b..15e7641 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -122,6 +122,8 @@ public class ActiveRepairService
      */
     public RepairFuture submitRepairSession(UUID parentRepairSession, Range<Token> range, String keyspace, RepairParallelism parallelismDegree, Set<InetAddress> endpoints, String... cfnames)
     {
+        if (cfnames.length == 0)
+            return null;
         RepairSession session = new RepairSession(parentRepairSession, range, keyspace, parallelismDegree, endpoints, cfnames);
         if (session.endpoints.isEmpty())
             return null;


[3/3] cassandra git commit: Merge branch 'cassandra-2.1' into trunk

Posted by yu...@apache.org.
Merge branch 'cassandra-2.1' into trunk

Conflicts:
	src/java/org/apache/cassandra/service/ActiveRepairService.java


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

Branch: refs/heads/trunk
Commit: 0cfeab60a44bf80cdd60a7887012f33db3fc57ab
Parents: 6e9aec3 8c003a2
Author: Yuki Morishita <yu...@apache.org>
Authored: Mon Feb 2 16:56:46 2015 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Mon Feb 2 16:56:46 2015 -0600

----------------------------------------------------------------------
 CHANGES.txt                                                    | 1 +
 src/java/org/apache/cassandra/service/ActiveRepairService.java | 3 +++
 2 files changed, 4 insertions(+)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0cfeab60/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/ActiveRepairService.java
index fa9be8a,15e7641..1882a7b
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@@ -109,40 -120,29 +109,43 @@@ public class ActiveRepairServic
       *
       * @return Future for asynchronous call or null if there is no need to repair
       */
 -    public RepairFuture submitRepairSession(UUID parentRepairSession, Range<Token> range, String keyspace, RepairParallelism parallelismDegree, Set<InetAddress> endpoints, String... cfnames)
 +    public RepairSession submitRepairSession(UUID parentRepairSession,
 +                                             Range<Token> range,
 +                                             String keyspace,
 +                                             RepairParallelism parallelismDegree,
 +                                             Set<InetAddress> endpoints,
 +                                             long repairedAt,
 +                                             ListeningExecutorService executor,
 +                                             String... cfnames)
      {
 -        if (cfnames.length == 0)
 +        if (endpoints.isEmpty())
              return null;
 -        RepairSession session = new RepairSession(parentRepairSession, range, keyspace, parallelismDegree, endpoints, cfnames);
 -        if (session.endpoints.isEmpty())
 +
++        if (cfnames.length == 0)
+             return null;
 -        RepairFuture futureTask = new RepairFuture(session);
 -        executor.execute(futureTask);
 -        return futureTask;
 -    }
+ 
 -    public void addToActiveSessions(RepairSession session)
 -    {
 +        final RepairSession session = new RepairSession(parentRepairSession, UUIDGen.getTimeUUID(), range, keyspace, parallelismDegree, endpoints, repairedAt, cfnames);
 +
          sessions.put(session.getId(), session);
 -        Gossiper.instance.register(session);
 -        FailureDetector.instance.registerFailureDetectionEventListener(session);
 -    }
 +        // register listeners
 +        gossiper.register(session);
 +        failureDetector.registerFailureDetectionEventListener(session);
  
 -    public void removeFromActiveSessions(RepairSession session)
 -    {
 -        Gossiper.instance.unregister(session);
 -        sessions.remove(session.getId());
 +        // unregister listeners at completion
 +        session.addListener(new Runnable()
 +        {
 +            /**
 +             * When repair finished, do clean up
 +             */
 +            public void run()
 +            {
 +                failureDetector.unregisterFailureDetectionEventListener(session);
 +                gossiper.unregister(session);
 +                sessions.remove(session.getId());
 +            }
 +        }, MoreExecutors.sameThreadExecutor());
 +        session.start(executor);
 +        return session;
      }
  
      public synchronized void terminateSessions()


[2/3] cassandra git commit: Fix hang when repairing empty keyspace

Posted by yu...@apache.org.
Fix hang when repairing empty keyspace

patch by Jeff Jirsa; reviewed by yukim for CASSANDRA-8694


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

Branch: refs/heads/trunk
Commit: 8c003a2a5ab261db06fbda784b5353d38982f488
Parents: 2a283e1
Author: Jeff Jirsa <je...@jeffjirsa.net>
Authored: Mon Feb 2 16:52:03 2015 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Mon Feb 2 16:52:03 2015 -0600

----------------------------------------------------------------------
 CHANGES.txt                                                    | 1 +
 src/java/org/apache/cassandra/service/ActiveRepairService.java | 2 ++
 2 files changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c003a2a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 40d844c..b95fd3a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -83,6 +83,7 @@
  * Log failed host when preparing incremental repair (CASSANDRA-8228)
  * Force config client mode in CQLSSTableWriter (CASSANDRA-8281)
  * Fix sstableupgrade throws exception (CASSANDRA-8688)
+ * Fix hang when repairing empty keyspace (CASSANDRA-8694)
 Merged from 2.0:
  * Prevent non-zero default_time_to_live on tables with counters
    (CASSANDRA-8678)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c003a2a/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/ActiveRepairService.java b/src/java/org/apache/cassandra/service/ActiveRepairService.java
index 1c5138b..15e7641 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -122,6 +122,8 @@ public class ActiveRepairService
      */
     public RepairFuture submitRepairSession(UUID parentRepairSession, Range<Token> range, String keyspace, RepairParallelism parallelismDegree, Set<InetAddress> endpoints, String... cfnames)
     {
+        if (cfnames.length == 0)
+            return null;
         RepairSession session = new RepairSession(parentRepairSession, range, keyspace, parallelismDegree, endpoints, cfnames);
         if (session.endpoints.isEmpty())
             return null;