[ 
https://issues.apache.org/jira/browse/CASSANDRA-11537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15253854#comment-15253854
 ] 

Robert Stupp commented on CASSANDRA-11537:
------------------------------------------

I think the better indicator if C* startup has completed, is 
{{o.a.c.service.CassandraDaemon#setupCompleted}}.

I'd rather not like to see a new, custom exception being thrown and serialized 
to nodetool or another management tool. Just stick with the Java ones, probably 
IllegalStateException. Java serialization issues could otherwise hide the real 
cause (so, instead of NotInitializedException you'd maybe get a strange 
ClassNotFoundExcepion).

You could also expose {{o.a.c.service.StorageService#isSetupCompleted}} via 
JMX, which would be a nice LHF IMO. This would also allow tools to check this 
status _before_ these actually try to execute a command.

> 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
>              Labels: lhf
>
> 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)

Reply via email to