[
https://issues.apache.org/jira/browse/CASSANDRA-20749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18012933#comment-18012933
]
Paulo Motta commented on CASSANDRA-20749:
-----------------------------------------
Thanks for the review!
{quote} using JSON for complex types would be great here... im not sure how
people feel about if thats a breaking change or not...
{quote}
That's a pity. Will open a discuss thread to check what people think.
Found an issue during manual testing during guardrails validation, will address
and add a dtest to reproduce:
{noformat}
export
CASSANDRA_OPT_TABLE_PROPERTIES_WARNED='["sstable_preemptive_open_interval_in_mb",
"index_summary_resize_interval_in_minutes"]'
Exception (org.apache.cassandra.exceptions.ConfigurationException) encountered
during startup: Invalid guardrails configuration: Invalid value for
table_properties_warned: '[sstable_preemptive_open_interval_in_mb,
index_summary_resize_interval_in_minutes]' do not parse as valid table
properties
org.apache.cassandra.exceptions.ConfigurationException: Invalid guardrails
configuration: Invalid value for table_properties_warned:
'[sstable_preemptive_open_interval_in_mb,
index_summary_resize_interval_in_minutes]' do not parse as valid table
properties
at
org.apache.cassandra.config.DatabaseDescriptor.applyGuardrails(DatabaseDescriptor.java:1305)
at
org.apache.cassandra.config.DatabaseDescriptor.applyAll(DatabaseDescriptor.java:569)
at
org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:293)
at
org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:279)
at
org.apache.cassandra.service.CassandraDaemon.applyConfig(CassandraDaemon.java:797)
at
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:740)
at
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:898)
Caused by: java.lang.IllegalArgumentException: Invalid value for
table_properties_warned: '[sstable_preemptive_open_interval_in_mb,
index_summary_resize_interval_in_minutes]' do not parse as valid table
properties
at
org.apache.cassandra.config.GuardrailsOptions.validateTableProperties(GuardrailsOptions.java:1427)
at
org.apache.cassandra.config.GuardrailsOptions.<init>(GuardrailsOptions.java:72)
at
org.apache.cassandra.config.DatabaseDescriptor.applyGuardrails(DatabaseDescriptor.java:1301)
... 6 more
ERROR [main] 2025-08-08T22:55:09,597 CassandraDaemon.java:925 - Exception
encountered during startup
org.apache.cassandra.exceptions.ConfigurationException: Invalid guardrails
configuration: Invalid value for table_properties_warned:
'[sstable_preemptive_open_interval_in_mb,
index_summary_resize_interval_in_minutes]' do not parse as valid table
properties
at
org.apache.cassandra.config.DatabaseDescriptor.applyGuardrails(DatabaseDescriptor.java:1305)
at
org.apache.cassandra.config.DatabaseDescriptor.applyAll(DatabaseDescriptor.java:569)
at
org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:293)
at
org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:279)
at
org.apache.cassandra.service.CassandraDaemon.applyConfig(CassandraDaemon.java:797)
at
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:740)
at
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:898)
Caused by: java.lang.IllegalArgumentException: Invalid value for
table_properties_warned: '[sstable_preemptive_open_interval_in_mb,
index_summary_resize_interval_in_minutes]' do not parse as valid table
properties
at
org.apache.cassandra.config.GuardrailsOptions.validateTableProperties(GuardrailsOptions.java:1427)
at
org.apache.cassandra.config.GuardrailsOptions.<init>(GuardrailsOptions.java:72)
at
org.apache.cassandra.config.DatabaseDescriptor.applyGuardrails(DatabaseDescriptor.java:1301)
... 6 common frames omitted
{noformat}
> Allow overriding arbitrary settings via environment variables
> -------------------------------------------------------------
>
> Key: CASSANDRA-20749
> URL: https://issues.apache.org/jira/browse/CASSANDRA-20749
> Project: Apache Cassandra
> Issue Type: Improvement
> Components: Local/Config
> Reporter: Paulo Motta
> Assignee: Paulo Motta
> Priority: Normal
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> Allow arbitrary cassandra.yaml settings to be overriden via environment
> variables. This allows performing runtime overrides to a cassandra node
> configuration without updating cassandra.yaml, what can be useful to test
> isolated changes or in docker environments where runtime environment
> variables can be supplied via the {{--env}} flag.
> This should transparently override arbitrary configuration supported in
> cassandra.yaml via environment variables loaded during startup matching the
> format {{{}CASS_{CASSANDRA_YAML_CONFIG_NAME{}}}}. So for example, to override
> the {{cassandra.yaml}} configuration cdc_enabled, this can be overriden via
> the environment variable {{{}CASS_CDC_ENABLED{}}}, the cassandra.yaml setting
> {{key_cache_save_period}} can be overriden via {{CASS_KEY_CACHE_SAVE_PERIOD}}
> and so on. This should support both simple and complex properties.
> This is analogous to the functionality added by CASSANDRA-17166 to override
> arbitrary configurations via system properties enabled by the flag
> {{{}-Dcassandra.config.allow_system_properties{}}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]