[
https://issues.apache.org/jira/browse/CASSANDRA-11537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15235059#comment-15235059
]
Edward Capriolo commented on CASSANDRA-11537:
---------------------------------------------
We could. Let me explain how this works (as I understand it). Nodetool is
making JMX calls and printing the results. The old code path was asserting,
this code path throws an exception. We could have handled this by returning a
status code and mapping the result on the nodetool side to a message.
My opinion your approach of trapping the exception and controlling the output
is valid. My opinion is that this code is more-or-less a fail safe and under
normal circumstances the average user never sees this. Because of my opinion I
think we should keep it lean.
If however we were going to do a more in-depth patch I would focus on making
sure we know which nodetool commands could be implemented at which state, and
we build that more into the protocol/storage proxy.
> Give clear error when certain nodetool commands are issued before server is
> ready
> ---------------------------------------------------------------------------------
>
> Key: CASSANDRA-11537
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11537
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Edward Capriolo
> Assignee: Edward Capriolo
> Priority: Minor
>
> As an ops person upgrading and servicing Cassandra servers, I require a more
> clear message when I issue a nodetool command that the server is not ready
> for it so that I am not confused.
> Technical description:
> If you deploy a new binary, restart, and issue nodetool
> scrub/compact/updatess etc you get unfriendly assertion. An exception would
> be easier to understand. Also if a user has turned assertions off it is
> unclear what might happen.
> {noformat}
> EC1: Throw exception to make it clear server is still in start up process.
> :~# nodetool upgradesstables
> error: null
> -- StackTrace --
> java.lang.AssertionError
> at org.apache.cassandra.db.Keyspace.open(Keyspace.java:97)
> at
> org.apache.cassandra.service.StorageService.getValidKeyspace(StorageService.java:2573)
> at
> org.apache.cassandra.service.StorageService.getValidColumnFamilies(StorageService.java:2661)
> at
> org.apache.cassandra.service.StorageService.upgradeSSTables(StorageService.java:2421)
> {noformat}
> EC1:
> Patch against 2.1 (branch)
> https://github.com/apache/cassandra/compare/trunk...edwardcapriolo:exception-on-startup?expand=1
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)