Robert Coli created CASSANDRA-4967:
--------------------------------------
Summary: config options have different bounds when set via
different methods
Key: CASSANDRA-4967
URL: https://issues.apache.org/jira/browse/CASSANDRA-4967
Project: Cassandra
Issue Type: Improvement
Components: Core
Affects Versions: 1.2.0 beta 2
Reporter: Robert Coli
Priority: Minor
(similar to some of the work done in
https://issues.apache.org/jira/browse/CASSANDRA-4479
)
If one sets a value in cassandra.yaml, that value might be subject to bounds
checking there. However if one sets that same value via JMX, it doesn't get set
via a bounds-checking code path.
"./src/java/org/apache/cassandra/config/DatabaseDescriptor.java" (JMX set)
{noformat}
public static void setPhiConvictThreshold(double phiConvictThreshold)
{
conf.phi_convict_threshold = phiConvictThreshold;
}
{noformat}
Versus..
./src/java/org/apache/cassandra/config/DatabaseDescriptor.java (cassandra.yaml)
{noformat}
static void loadYaml()
...
/* phi convict threshold for FailureDetector */
if (conf.phi_convict_threshold < 5 || conf.phi_convict_threshold >
16)
{
throw new ConfigurationException("phi_convict_threshold must be
between 5 and 16");
}
{noformat}
This seems to create a confusing situation where the range of potential values
for a given configuration option is different when set by different methods.
It's difficult to imagine a circumstance where you want bounds checking to keep
your node from starting if you set that value in cassandra.yaml, but also want
to allow circumvention of that bounds checking if you set via JMX.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira