diff --git a/CHANGES.txt b/CHANGES.txt index 65875b8a15..c195d65179 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -28,6 +28,7 @@ * Fixed multiple single-node SAI query bugs relating to static columns (CASSANDRA-20338) * Upgrade com.datastax.cassandra:cassandra-driver-core:3.11.5 to org.apache.cassandra:cassandra-driver-core:3.12.1 (CASSANDRA-17231) Merged from 4.1: + * Do not crash on first boot with data_disk_usage_max_disk_size set when data directory is not created yet (CASSANDRA-20787) * Rework / simplification of nodetool get/setguardrailsconfig commands (CASSANDRA-20778) * IntrusiveStack.accumulate is not accumulating correctly (CASSANDRA-20670) * Add nodetool get/setguardrailsconfig commands (CASSANDRA-19552) diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index b8991c1572..68be14cd8f 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -467,6 +467,8 @@ public class DatabaseDescriptor applySslContext(); + createAllDirectories(); + applyGuardrails(); applyStartupChecks(); diff --git a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java index e0eda7afce..89d7a9c348 100644 --- a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java +++ b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java @@ -608,7 +608,6 @@ public class Instance extends IsolatedExecutor implements IInvokableInstance CONSISTENT_SIMULTANEOUS_MOVES_ALLOW.setBoolean(true); } - mkdirs(); assert config.networkTopology().contains(config.broadcastAddress()) : String.format("Network topology %s doesn't contain the address %s", config.networkTopology(), config.broadcastAddress()); @@ -621,7 +620,6 @@ public class Instance extends IsolatedExecutor implements IInvokableInstance LoggingSupportFactory.getLoggingSupport().onStartup(); FileUtils.setFSErrorHandler(new DefaultFSErrorHandler()); - DatabaseDescriptor.createAllDirectories(); CassandraDaemon.getInstanceForTesting().migrateSystemDataIfNeeded(); CassandraDaemon.logSystemInfo(inInstancelogger); CommitLog.instance.start(); @@ -824,15 +822,6 @@ public class Instance extends IsolatedExecutor implements IInvokableInstance ).run(); } - private void mkdirs() - { - new File(config.getString("saved_caches_directory")).tryCreateDirectories(); - new File(config.getString("hints_directory")).tryCreateDirectories(); - new File(config.getString("commitlog_directory")).tryCreateDirectories(); - for (String dir : (String[]) config.get("data_file_directories")) - new File(dir).tryCreateDirectories(); - } - private Config loadConfig(IInstanceConfig overrides) { Map params = overrides.getParams(); diff --git a/test/distributed/org/apache/cassandra/distributed/test/guardrails/GuardrailDiskUsageTest.java b/test/distributed/org/apache/cassandra/distributed/test/guardrails/GuardrailDiskUsageTest.java index b2bb8ea098..dd205bf87a 100644 --- a/test/distributed/org/apache/cassandra/distributed/test/guardrails/GuardrailDiskUsageTest.java +++ b/test/distributed/org/apache/cassandra/distributed/test/guardrails/GuardrailDiskUsageTest.java @@ -72,6 +72,7 @@ public class GuardrailDiskUsageTest extends GuardrailTester cluster = init(Cluster.build(2) .withInstanceInitializer(DiskStateInjection::install) .withConfig(c -> c.with(Feature.GOSSIP, Feature.NATIVE_PROTOCOL) + .set("data_disk_usage_max_disk_size", "10GiB") .set("data_disk_usage_percentage_warn_threshold", 98) .set("data_disk_usage_percentage_fail_threshold", 99) .set("authenticator", "PasswordAuthenticator"))