[ https://issues.apache.org/jira/browse/CASSANDRA-20787?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paulo Motta updated CASSANDRA-20787: ------------------------------------ Status: Review In Progress (was: Needs Committer) > Cassandra crashes on first boot with data_disk_usage_max_disk_size set when > data directory is not created > --------------------------------------------------------------------------------------------------------- > > Key: CASSANDRA-20787 > URL: https://issues.apache.org/jira/browse/CASSANDRA-20787 > Project: Apache Cassandra > Issue Type: Bug > Components: Feature/Guardrails > Reporter: Isaac Reath > Assignee: Isaac Reath > Priority: Normal > Fix For: 4.1.x, 5.0.x, 5.x > > Time Spent: 0.5h > Remaining Estimate: 0h > > When starting a new node whose data directory is not yet created (e.g. > $CASSANDRA_HOME/data/data) , and data_disk_usage_max_disk_size set to any > value Cassandra will crash with the following exception: > ERROR [main] 2025-07-14 15:34:21,880 CassandraDaemon.java:900 - Exception > encountered during startup > java.lang.RuntimeException: Cannot get data directories grouped by file store > at > org.apache.cassandra.service.disk.usage.DiskUsageMonitor.dataDirectoriesGroupedByFileStore(DiskUsageMonitor.java:202) > at > org.apache.cassandra.service.disk.usage.DiskUsageMonitor.totalDiskSpace(DiskUsageMonitor.java:209) > at > org.apache.cassandra.config.GuardrailsOptions.validateDataDiskUsageMaxDiskSize(GuardrailsOptions.java:786) > at > org.apache.cassandra.config.GuardrailsOptions.<init>(GuardrailsOptions.java:83) > at > org.apache.cassandra.config.DatabaseDescriptor.applyGuardrails(DatabaseDescriptor.java:1000) > at > org.apache.cassandra.config.DatabaseDescriptor.applyAll(DatabaseDescriptor.java:396) > at > org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:204) > at > org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:188) > 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:878) > Caused by: java.nio.file.NoSuchFileException: /path/to/data > at > java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) > at > java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) > at > java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) > at java.base/sun.nio.fs.UnixFileStore.devFor(UnixFileStore.java:61) > at java.base/sun.nio.fs.UnixFileStore.<init>(UnixFileStore.java:68) > at java.base/sun.nio.fs.LinuxFileStore.<init>(LinuxFileStore.java:49) > at > java.base/sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:51) > at > java.base/sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:39) > at > java.base/sun.nio.fs.UnixFileSystemProvider.getFileStore(UnixFileSystemProvider.java:373) > at java.base/java.nio.file.Files.getFileStore(Files.java:1488) > at > org.apache.cassandra.service.disk.usage.DiskUsageMonitor.dataDirectoriesGroupedByFileStore(DiskUsageMonitor.java:196) > ... 10 common frames omitted > > This happens because DatabaseDescriptor#applyGuardrails() is called before > any calls to DatabaseDescriptor#createAllDirectories occurs. Calling > createAllDirectories before the call to applyGuardrails fixes this issue. > > Reproduction steps: > * Set a value in cassandra.yaml for data_disk_usage_max_disk_size > * Start cassandra bin/cassandra -f > * The crash should be observed on startup. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org