[ 
https://issues.apache.org/jira/browse/CASSANDRA-21156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mykyta Bozhenko updated CASSANDRA-21156:
----------------------------------------
    Test and Documentation Plan: 
TableCountThresholdToGuardrailConverterTest (fresh JVM, no configuration 
loaded): both converters are invoked, and DatabaseDescriptor.getRawConfig() 
must still be null afterwards. Against unpatched production, it fails with 
ExceptionInInitializerError at SystemKeyspace.<clinit>, the stack from the 
description.

SystemTableNamesConsistencyTest: every hoisted name set in SchemaConstants is 
compared with the table names of the corresponding keyspace metadata, so the 
constants cannot drift from the real schema.

AccordJournalDaemonYamlInitializationTest and 
AccordJournalToolYamlInitializationTest, each in its own JVM: the journal_sai 
index on system_accord.journal is still configured after YAML initialization in 
daemon and tool mode.

Five tests, clean full build, Java 11, Linux. No documentation change.

> Static init race between paxos v2 and table count guardrail causes NPE on 
> startup
> ---------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-21156
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21156
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Local/Startup and Shutdown
>            Reporter: Blake Eggleston
>            Assignee: Mykyta Bozhenko
>            Priority: Normal
>             Fix For: 5.0.x
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Set the following config values:
> table_count_warn_threshold: 400
> causes this exception on startup:
> {{ERROR [main] 2026-02-02 15:52:22,389 CassandraDaemon.java:887 - Exception 
> encountered during startup
> java.lang.ExceptionInInitializerError: null
>        at 
> org.apache.cassandra.db.SystemKeyspace.<clinit>(SystemKeyspace.java:239)
>        at 
> org.apache.cassandra.schema.SchemaConstants.getLocalAndReplicatedSystemTableNames(SchemaConstants.java:184)
>        at 
> org.apache.cassandra.config.Converters.lambda$static$32(Converters.java:128)
>        at org.apache.cassandra.config.Converters.convert(Converters.java:174)
>        at org.apache.cassandra.config.Replacement$1.set(Replacement.java:76)
>        at 
> org.apache.cassandra.config.YamlConfigurationLoader$PropertiesChecker$1.set(YamlConfigurationLoader.java:376)
>        at 
> org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:276)
>        at 
> org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:169)
>        at 
> org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:320)
>        at 
> org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:264)
>        at 
> org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:247)
>        at 
> org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:201)
>        at 
> org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:185)
>        at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:493)
>        at org.yaml.snakeyaml.Yaml.loadAs(Yaml.java:486)
>        at 
> org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:310)
>        at 
> org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:141)
>        at 
> org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:116)
>        at 
> org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:399)
>        at 
> org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:261)
>        at 
> org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:246)
>        at 
> org.apache.cassandra.service.CassandraDaemon.applyConfig(CassandraDaemon.java:780)
>        at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:723)
>        at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:865)
> Caused by: java.lang.NullPointerException: null
>        at org.apache.cassandra.db.DataRange.allData(DataRange.java:71)
>        at 
> org.apache.cassandra.service.paxos.uncommitted.PaxosUncommittedIndex.<clinit>(PaxosUncommittedIndex.java:90)
>        ... 24 common frames omitted}}



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