From e943b665fe8db734c21efae28a89db70ad3044a1 Mon Sep 17 00:00:00 2001 From: Giuseppe Lillo Date: Thu, 19 Feb 2026 08:35:11 +0100 Subject: [PATCH] fix(inkless): Fix error message when diskless.enable and remote.storage.enable are set --- .../kafka/server/DisklessAndRemoteStorageConfigsTest.java | 2 +- core/src/test/scala/unit/kafka/log/LogConfigTest.scala | 4 ++-- .../org/apache/kafka/storage/internals/log/LogConfig.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/test/java/kafka/server/DisklessAndRemoteStorageConfigsTest.java b/core/src/test/java/kafka/server/DisklessAndRemoteStorageConfigsTest.java index 7d1c778df85..8d9bd131d74 100644 --- a/core/src/test/java/kafka/server/DisklessAndRemoteStorageConfigsTest.java +++ b/core/src/test/java/kafka/server/DisklessAndRemoteStorageConfigsTest.java @@ -71,7 +71,7 @@ public class DisklessAndRemoteStorageConfigsTest { private static final String ENABLE_DISKLESS_ERROR = "It is invalid to enable diskless on an already existing topic."; private static final String DISABLE_DISKLESS_ERROR = "It is invalid to disable diskless."; - private static final String DISKLESS_REMOTE_SET_ERROR = "remote.storage.enable cannot be set if diskless.enable is set to true."; + private static final String DISKLESS_REMOTE_SET_ERROR = "It is not valid to set a value for both diskless.enable and remote.storage.enable."; private static final String DISABLE_REMOTE_WITHOUT_DELETE_ERROR = "It is invalid to disable remote storage without deleting remote data. " + "If you want to keep the remote data and turn to read only, please set `remote.storage.enable=true,remote.log.copy.disable=true`. " + "If you want to disable remote storage and delete all remote data, please set `remote.storage.enable=false,remote.log.delete.on.disable=true`."; diff --git a/core/src/test/scala/unit/kafka/log/LogConfigTest.scala b/core/src/test/scala/unit/kafka/log/LogConfigTest.scala index 21349722196..dac9beefe92 100644 --- a/core/src/test/scala/unit/kafka/log/LogConfigTest.scala +++ b/core/src/test/scala/unit/kafka/log/LogConfigTest.scala @@ -434,7 +434,7 @@ class LogConfigTest { def testDisklessAndRemoteStorageAtCreation(): Unit = { val kafkaConfig = KafkaConfig.fromProps(TestUtils.createDummyBrokerConfig()) val noExisting: util.Map[String, String] = util.Map.of() - val mutualExclusionError = "remote.storage.enable cannot be set if diskless.enable is set to true." + val mutualExclusionError = "It is not valid to set a value for both diskless.enable and remote.storage.enable." // Allowed to set diskless.enable=true at creation assertValid(noExisting, topicProps(TopicConfig.DISKLESS_ENABLE_CONFIG -> "true"), kafkaConfig) @@ -474,7 +474,7 @@ class LogConfigTest { @Test def testDisklessAndRemoteStorageAtUpdate(): Unit = { val kafkaConfig = KafkaConfig.fromProps(TestUtils.createDummyBrokerConfig()) - val mutualExclusionError = "remote.storage.enable cannot be set if diskless.enable is set to true." + val mutualExclusionError = "It is not valid to set a value for both diskless.enable and remote.storage.enable." val existingWithoutDisklessOrRemote = util.Map.of(TopicConfig.RETENTION_MS_CONFIG, "1000") val existingWithDisklessFalse = util.Map.of(TopicConfig.DISKLESS_ENABLE_CONFIG, "false") val existingWithDisklessTrue = util.Map.of(TopicConfig.DISKLESS_ENABLE_CONFIG, "true") diff --git a/storage/src/main/java/org/apache/kafka/storage/internals/log/LogConfig.java b/storage/src/main/java/org/apache/kafka/storage/internals/log/LogConfig.java index 697948184ea..ed5697574c9 100644 --- a/storage/src/main/java/org/apache/kafka/storage/internals/log/LogConfig.java +++ b/storage/src/main/java/org/apache/kafka/storage/internals/log/LogConfig.java @@ -528,7 +528,7 @@ private static void validateDiskless(Map existingConfigs, final boolean hasExplicitRemoteStorage = isRemoteStorageExplicitlySet || wasRemoteStorageExplicitlySet; if ((isDisklessExplicitlySet && hasExplicitRemoteStorage) || (isRemoteStorageExplicitlySet && hasExplicitDiskless)) { - throw new InvalidConfigurationException("remote.storage.enable cannot be set if diskless.enable is set to true."); + throw new InvalidConfigurationException("It is not valid to set a value for both diskless.enable and remote.storage.enable."); } }