From aaac07fa55cb73f9f5108d53110425af2ed610e3 Mon Sep 17 00:00:00 2001 From: "Wang, Fei" Date: Mon, 23 Jun 2025 19:27:58 -0700 Subject: [PATCH] [KYUUBI #7110] Fix `serverOnlyPrefixConfigKeys` is iterator issue ### Why are the changes needed? Followup for #7055 Before this PR, the `serverOnlyPrefixConfigKeys` is type of iterator. After one time iteration, it become empty. In this PR, we convert it to `Set` to fix this issue. ### How was this patch tested? UT. ### Was this patch authored or co-authored using generative AI tooling? No. Closes #7110 from turboFei/exclude_prefix. Closes #7110 91a54b6f0 [Wang, Fei] prefix Authored-by: Wang, Fei Signed-off-by: Wang, Fei --- .../main/scala/org/apache/kyuubi/config/KyuubiConf.scala | 6 +++--- .../scala/org/apache/kyuubi/config/KyuubiConfSuite.scala | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/kyuubi-common/src/main/scala/org/apache/kyuubi/config/KyuubiConf.scala b/kyuubi-common/src/main/scala/org/apache/kyuubi/config/KyuubiConf.scala index 5e9010215..5ca5c78a8 100644 --- a/kyuubi-common/src/main/scala/org/apache/kyuubi/config/KyuubiConf.scala +++ b/kyuubi-common/src/main/scala/org/apache/kyuubi/config/KyuubiConf.scala @@ -193,15 +193,15 @@ case class KyuubiConf(loadSysDefault: Boolean = true) extends Logging { cloned } - private lazy val serverOnlyPrefixes = get(KyuubiConf.SERVER_ONLY_PREFIXES) - private lazy val serverOnlyPrefixConfigKeys = settings.keys().asScala + private lazy val serverOnlyPrefixes: Set[String] = get(KyuubiConf.SERVER_ONLY_PREFIXES) + private lazy val serverOnlyPrefixConfigKeys: Set[String] = settings.keys().asScala // for ConfigEntry, respect the serverOnly flag and exclude it here .filter(key => getConfigEntry(key) == null) .filter { key => serverOnlyPrefixes.exists { prefix => key.startsWith(prefix) } - } + }.toSet def getUserDefaults(user: String): KyuubiConf = { val cloned = KyuubiConf(false) diff --git a/kyuubi-common/src/test/scala/org/apache/kyuubi/config/KyuubiConfSuite.scala b/kyuubi-common/src/test/scala/org/apache/kyuubi/config/KyuubiConfSuite.scala index 4b1a45fbc..45c9b3c36 100644 --- a/kyuubi-common/src/test/scala/org/apache/kyuubi/config/KyuubiConfSuite.scala +++ b/kyuubi-common/src/test/scala/org/apache/kyuubi/config/KyuubiConfSuite.scala @@ -231,9 +231,10 @@ class KyuubiConfSuite extends KyuubiFunSuite { Some("/var/run/secrets/kubernetes.io/token.ns2")) } - test("KYUUBI #7053 - Support to exclude server only configs with prefixes") { + test("KYUUBI #7055 - Support to exclude server only configs with prefixes") { val kyuubiConf = KyuubiConf(false) kyuubiConf.set("kyuubi.backend.server.event.kafka.broker", "localhost:9092") assert(kyuubiConf.getUserDefaults("kyuubi").getAll.size == 0) + assert(kyuubiConf.getUserDefaults("user").getAll.size == 0) } }