apache/cassandra · warning
Cassandra system property flag
Error message
Cassandra system property flag %s is deprecated and you should use startup check configuration in cassandra.yaml
What it means
FileSystemOwnershipCheck warns that the FILE_SYSTEM_CHECK_OWNERSHIP_FILENAME system property (cassandra.fs_ownership_filename style flag) is deprecated; ownership-check file configuration should live in cassandra.yaml startup-check config instead. The property's value is still honored, so behavior works but emits the warning.
Solutions
- Move the ownership filename setting into cassandra.yaml (startup check / file_system_ownership config) and remove the -D system property from jvm-server.options
- Restart and verify the warning no longer appears and ownership check still finds the token/ownership file
- Search deployment tooling (ansible/chef/puppet templates) for the old flag to prevent regression
Example fix
# before (jvm-server.options) -Dcassandra.fs_ownership_filename=/var/lib/cassandra/ownership # after (cassandra.yaml) file_system_ownership_check: ownership_filename: /var/lib/cassandra/ownership
Defensive patterns
Strategy: validation
Validate before calling
// fail fast in deployment tooling if the deprecated flag is present
if (System.getProperty("cassandra.fs_ownership_filename") != null)
throw new IllegalStateException("Use cassandra.yaml file_system_ownership config instead of the deprecated -D flag"); Prevention
- Configure ownership check settings only in cassandra.yaml
- Grep jvm-server.options, cassandra-env.sh and CI images for deprecated -Dcassandra.* flags after upgrades
- Treat deprecation warnings at startup as migration work items, not noise
When it happens
Trigger: getFsOwnershipFilename() is called (via tokenFilename) while the CassandraRelevantProperties.FILE_SYSTEM_CHECK_OWNERSHIP_FILENAME system property is set on the JVM command line or in jvm-server.options.
Common situations: Upgrades from older Cassandra versions where the ownership filename was configured via -D system property; operators copying old jvm-server.options files onto new versions.
Understand the failure class
Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.
Related errors
- Disabling compaction by setting compaction thresholds to 0…
- Replace method removed; use cassandra.replace_address…
- is requested but not allowed, restart cassandra with -D…
- System property was set to but must be 1 or 2. Running with
- To set concurrent_validations > concurrent_compactors, set…
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/5a8ee733082a2816.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/service/FileSystemOwnershipCheck.java:298
}
}
private StartupException exception(String message)
{
return new StartupException(StartupException.ERR_WRONG_DISK_STATE, ERROR_PREFIX + message);
}
public boolean isEnabled(StartupChecksConfiguration options)
{
boolean enabledFromYaml = options.isEnabled(name());
return CassandraRelevantProperties.FILE_SYSTEM_CHECK_ENABLE.getBoolean(enabledFromYaml);
}
public String getFsOwnershipFilename(Map<String, Object> config)
{
if (CassandraRelevantProperties.FILE_SYSTEM_CHECK_OWNERSHIP_FILENAME.isPresent())
{
logger.warn(String.format("Cassandra system property flag %s is deprecated and you should " +
"use startup check configuration in cassandra.yaml",
CassandraRelevantProperties.FILE_SYSTEM_CHECK_OWNERSHIP_FILENAME.getKey()));
return CassandraRelevantProperties.FILE_SYSTEM_CHECK_OWNERSHIP_FILENAME.getString();
}
else
{
Object fsOwnershipFilename = config.get("ownership_filename");
return fsOwnershipFilename == null
? CassandraRelevantProperties.FILE_SYSTEM_CHECK_OWNERSHIP_FILENAME.getDefaultValue()
: (String) fsOwnershipFilename;
}
}
public String getOwnershipToken(Map<String, Object> config)
{
if (CassandraRelevantProperties.FILE_SYSTEM_CHECK_OWNERSHIP_TOKEN.isPresent())
{
logger.warn(String.format("Cassandra system property flag %s is deprecated and you should " +View on GitHub (pinned to 88fd0f6a0e)