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;