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/08/06 00:07:13 UTC
[02/10] cassandra git commit: Fix nodetool info error when the node
is not joined
Fix nodetool info error when the node is not joined
patch by yukim; reviewed by stefania for CASSANDRA-9031
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/20f12e97
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/20f12e97
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/20f12e97
Branch: refs/heads/cassandra-2.2
Commit: 20f12e97446eee55461a8d3512a94389a67e79ee
Parents: 1a2c1bc
Author: Yuki Morishita <yu...@apache.org>
Authored: Wed Aug 5 15:58:36 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Wed Aug 5 16:01:53 2015 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/tools/NodeProbe.java | 16 ++-------------
.../org/apache/cassandra/tools/NodeTool.java | 21 ++++++++++++++------
3 files changed, 18 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/20f12e97/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index de7cfa8..9a475ea 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -12,6 +12,7 @@
* Remove repair snapshot leftover on startup (CASSANDRA-7357)
* Use random nodes for batch log when only 2 racks (CASSANDRA-8735)
* Ensure atomicity inside thrift and stream session (CASSANDRA-7757)
+ * Fix nodetool info error when the node is not joined (CASSANDRA-9031)
Merged from 2.0:
* Don't cast expected bf size to an int (CASSANDRA-9959)
* Log when messages are dropped due to cross_node_timeout (CASSANDRA-9793)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/20f12e97/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 d3bce4d..caa12c3 100644
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@ -807,20 +807,8 @@ public class NodeProbe implements AutoCloseable
public String getEndpoint()
{
- // Try to find the endpoint using the local token, doing so in a crazy manner
- // to maintain backwards compatibility with the MBean interface
- String stringToken = ssProxy.getTokens().get(0);
- Map<String, String> tokenToEndpoint = ssProxy.getTokenToEndpointMap();
-
- for (Map.Entry<String, String> pair : tokenToEndpoint.entrySet())
- {
- if (pair.getKey().equals(stringToken))
- {
- return pair.getValue();
- }
- }
-
- throw new RuntimeException("Could not find myself in the endpoint list, something is very wrong! Is the Cassandra node fully started?");
+ Map<String, String> hostIdToEndpoint = ssProxy.getHostIdMap();
+ return hostIdToEndpoint.get(ssProxy.getLocalHostId());
}
public String getDataCenter()
http://git-wip-us.apache.org/repos/asf/cassandra/blob/20f12e97/src/java/org/apache/cassandra/tools/NodeTool.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeTool.java b/src/java/org/apache/cassandra/tools/NodeTool.java
index a2d4ead..6a7a930 100644
--- a/src/java/org/apache/cassandra/tools/NodeTool.java
+++ b/src/java/org/apache/cassandra/tools/NodeTool.java
@@ -463,13 +463,22 @@ public class NodeTool
probe.getCacheMetric("CounterCache", "HitRate"),
cacheService.getCounterCacheSavePeriodInSeconds());
- // Tokens
- List<String> tokens = probe.getTokens();
- if (tokens.size() == 1 || this.tokens)
- for (String token : tokens)
- System.out.printf("%-23s: %s%n", "Token", token);
+ // check if node is already joined, before getting tokens, since it throws exception if not.
+ if (probe.isJoined())
+ {
+ // Tokens
+ List<String> tokens = probe.getTokens();
+ if (tokens.size() == 1 || this.tokens)
+ for (String token : tokens)
+ System.out.printf("%-23s: %s%n", "Token", token);
+ else
+ System.out.printf("%-23s: (invoke with -T/--tokens to see all %d tokens)%n", "Token",
+ tokens.size());
+ }
else
- System.out.printf("%-23s: (invoke with -T/--tokens to see all %d tokens)%n", "Token", tokens.size());
+ {
+ System.out.printf("%-23s: (node is not joined to the cluster)%n", "Token");
+ }
}
/**