[
https://issues.apache.org/jira/browse/CASSANDRA-17379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17523894#comment-17523894
]
Ekaterina Dimitrova edited comment on CASSANDRA-17379 at 4/18/22 8:47 PM:
--------------------------------------------------------------------------
I left small comments and overall looks good. I have one question - currently
it fails to start also if we provide _same_ value to old and new config. I
don't think this was wanted? I think this is a bug because the value needs
conversion if we want to compare those. I think this case will be a bit more
involved probably.
Example:
{code:java}
Exception (org.apache.cassandra.exceptions.ConfigurationException) encountered
during startup: Config contains conflicting values for old and new
configuration parameters:
old: [commitlog_sync_period_in_ms: 15000], new: [commitlog_sync_period: 15000ms]
org.apache.cassandra.exceptions.ConfigurationException: Config contains
conflicting values for old and new configuration parameters:
old: [commitlog_sync_period_in_ms: 15000], new: [commitlog_sync_period: 15000ms]
{code}
was (Author: e.dimitrova):
I left small comments and overall looks good. I have one question - currently
it fails to start also if we provide same value to old and new config. I don't
think this was wanted? I think this is a bug because the value needs conversion
if we want to compare those. I think this case will be a bit more involved
probably.
Example:
{code:java}
Exception (org.apache.cassandra.exceptions.ConfigurationException) encountered
during startup: Config contains conflicting values for old and new
configuration parameters:
old: [commitlog_sync_period_in_ms: 15000], new: [commitlog_sync_period: 15000ms]
org.apache.cassandra.exceptions.ConfigurationException: Config contains
conflicting values for old and new configuration parameters:
old: [commitlog_sync_period_in_ms: 15000], new: [commitlog_sync_period: 15000ms]
{code}
> Fail starting when the same parameter exists more than once with different
> values in cassandra.yaml
> ----------------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-17379
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17379
> Project: Cassandra
> Issue Type: Improvement
> Components: Local/Config
> Reporter: Ekaterina Dimitrova
> Assignee: Marcus Eriksson
> Priority: Low
> Fix For: 4.x
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The way that SnakeYAML works, if someone has added the same parameter more
> than once - the last occurrence will be the one that will take precedence.
> Now after CASSANDRA-15234 we can even add the parameter with the old name and
> with the new name and the occurrences will replace each other. Again,
> whatever is last in cassandra.yaml will take precedence. Example:
> If you add the following in cassandra.yaml
> {code:java}
> hinted_handoff_enabled: true
> enabled_hinted_handolff: false
> {code}
> you will get loaded in Config -
> {code:java}
> hinted_handoff_enabled: false{code}
> //there is backward compatibility from the old name to load into the new one
> Currently Cassandra prints in the logs what config was loaded but it is good
> also to detect the case mentioned and emit a warning for the user so they can
> verify that the value they wanted was loaded in config.
> To do that you might want to look at the PropertiesChecker and the way we
> emit other warnings in
> [check()|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java#L376]
> in YamlConfigurationLoader.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]