[ 
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]

Reply via email to