You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2013/12/20 22:24:01 UTC
git commit: add StorageService.stopDaemon patch by Lyuben Todorov;
reviewed by Tyler Hobbs for CASSANDRA-4268
Updated Branches:
refs/heads/cassandra-2.0 7bf14648e -> 142e13f34
add StorageService.stopDaemon
patch by Lyuben Todorov; reviewed by Tyler Hobbs for CASSANDRA-4268
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/142e13f3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/142e13f3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/142e13f3
Branch: refs/heads/cassandra-2.0
Commit: 142e13f34031167cae61991de468613d905eb76f
Parents: 7bf1464
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Dec 20 15:23:36 2013 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Fri Dec 20 15:23:36 2013 -0600
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/java/org/apache/cassandra/service/StorageService.java | 9 +++++++++
.../org/apache/cassandra/service/StorageServiceMBean.java | 3 +++
src/java/org/apache/cassandra/tools/NodeCmd.java | 7 +++++++
src/java/org/apache/cassandra/tools/NodeProbe.java | 5 +++++
5 files changed, 25 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/142e13f3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 67036c5..916ed7d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.0.4
+ * add StorageService.stopDaemon() (CASSANDRA-4268)
* add IRE for invalid CF supplied to get_count (CASSANDRA-5701)
* add client encryption support to sstableloader (CASSANDRA-6378)
* Fix accept() loop for SSL sockets post-shutdown (CASSANDRA-6468)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/142e13f3/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index c341684..cca7b00 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -380,6 +380,15 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
return initialized;
}
+ public void stopDaemon()
+ {
+ if (daemon == null)
+ throw new IllegalStateException("No configured daemon");
+ daemon.deactivate();
+ // completely shut down cassandra
+ System.exit(0);
+ }
+
public synchronized Collection<Token> prepareReplacementInfo() throws ConfigurationException
{
logger.info("Gathering node replacement information for {}", DatabaseDescriptor.getReplaceAddress());
http://git-wip-us.apache.org/repos/asf/cassandra/blob/142e13f3/src/java/org/apache/cassandra/service/StorageServiceMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
index be1b0aa..df85901 100644
--- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java
+++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
@@ -395,6 +395,9 @@ public interface StorageServiceMBean extends NotificationEmitter
// allows a user to recover a forcibly 'killed' node
public void startGossiping();
+ // allows a user to forcibly completely stop cassandra
+ public void stopDaemon();
+
// to determine if gossip is disabled
public boolean isInitialized();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/142e13f3/src/java/org/apache/cassandra/tools/NodeCmd.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java
index 5c071b6..c32539f 100644
--- a/src/java/org/apache/cassandra/tools/NodeCmd.java
+++ b/src/java/org/apache/cassandra/tools/NodeCmd.java
@@ -162,6 +162,7 @@ public class NodeCmd
STATUSBINARY,
STATUSTHRIFT,
STOP,
+ STOPDAEMON,
TPSTATS,
UPGRADESSTABLES,
VERSION,
@@ -1288,6 +1289,12 @@ public class NodeCmd
probe.stop(arguments[0].toUpperCase());
break;
+ case STOPDAEMON:
+ if (arguments.length != 0) { badUse("stopdaemon does not take arguments."); }
+ try { probe.stopCassandraDaemon(); }
+ catch (Throwable t) { System.out.println("Cassandra has shut down.\n"); }
+ break;
+
case DESCRIBERING :
if (arguments.length != 1) { badUse("Missing keyspace argument for describering."); }
nodeCmd.printDescribeRing(arguments[0], System.out);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/142e13f3/src/java/org/apache/cassandra/tools/NodeProbe.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java
index d784f29..4f60464 100644
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@ -766,6 +766,11 @@ public class NodeProbe
return ssProxy.isRPCServerRunning();
}
+ public void stopCassandraDaemon()
+ {
+ ssProxy.stopDaemon();
+ }
+
public boolean isInitialized()
{
return ssProxy.isInitialized();