[
https://issues.apache.org/jira/browse/CASSANDRA-2356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290598#comment-13290598
]
Robert Coli commented on CASSANDRA-2356:
----------------------------------------
(
though I know this ticket is resolved WONTFIX, I came across this ticket and
saw jeromatron say :
" Another case might be when a downed node comes back up and starts by default
and tries to claim a token that has already been claimed by another newly
bootstrapped node. Rob is more familiar with that case so I'll let him explain
it in the comments. "
I believe I was probably supposed to comment on this ticket in 2011 and
didn't...
)
I think that configuring Cassandra to auto-start under any circumstances should
be considered harmful, because of this case :
1) node A has token X
2) node A dies and the OS crashes
3) node A is replaced by node B, also at token X (say by restoring a full
snapshot)
4) node A is rebooted (say as part of RMA process)
5) cluster accepts node A as the rightful owner of token X, because it has a
later generation number by virtue of having been more recently started
6) you have a two nodes which contain the same but desychronized dataset, at
the same token, and no straightforward way to unify them
Are there any circumstances where auto-starting, esp. on packaged install or
upgrade, is actually desirable?
> make the debian package never start by default
> ----------------------------------------------
>
> Key: CASSANDRA-2356
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2356
> Project: Cassandra
> Issue Type: Improvement
> Components: Packaging
> Reporter: Jeremy Hanna
> Priority: Minor
> Labels: debian, packaging
> Attachments: 2356.txt
>
>
> Currently the debian package that installs cassandra starts cassandra by
> default. It sounds like that is a standard debian packaging convention.
> However, if you want to bootstrap a new node and want to configure it before
> it creates any sort of state information, it's a pain. I would think that
> the common use case would be to have it install all of the init scripts and
> such but *not* have it start up by default. That way an admin can configure
> cassandra with seed, token, host, etc. information and then start it. That
> makes it easier to programmatically do this as well - have chef/puppet
> install cassandra, do some configuration, then do the service start.
> With the current setup, it sounds like cassandra creates state on startup
> that has to be cleaned before a new configuration can take effect. So the
> process of installing turns into:
> * install debian package
> * shutdown cassandra
> * clean out state (data/log dirs)
> * configure cassandra
> * start cassandra
> That seems suboptimal for the default case, especially when trying to
> automate new nodes being bootstrapped.
> Another case might be when a downed node comes back up and starts by default
> and tries to claim a token that has already been claimed by another newly
> bootstrapped node. Rob is more familiar with that case so I'll let him
> explain it in the comments.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira