You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Paulo Motta (Jira)" <ji...@apache.org> on 2022/12/08 14:12:00 UTC
[jira] [Commented] (CASSANDRA-11537) Give clear error when certain nodetool commands are issued before server is ready
[ https://issues.apache.org/jira/browse/CASSANDRA-11537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17644827#comment-17644827 ]
Paulo Motta commented on CASSANDRA-11537:
-----------------------------------------
I might take a stab at this prehistoric ticket. I think the cleanest way to do that would be to check if {{StorageServiceMBean.isInitialized()}} at the end of [NodeProbe.connect()|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java#L292] and throw a friendly error if not.
However, I'm not sure this is the right thing to do, as other Mbeans (ie. GCInspectorMXBean) would be inacessible before {{StorageServiceMBean}} is ready. Do you know if this would be a problem [~brandon.williams]?
Otherwise we need to check if {{StorageServiceMBean.isInitialized()}} per {{NodeProbe}} method, and exclude any method which should be accessible before storage service is ready, which would make this a bit uglier and more fragile.
> 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
> Components: Legacy/Observability, Local/Startup and Shutdown
> Reporter: Edward Capriolo
> Priority: Low
> 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
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org