From 52d9108e999d344b251b7f77a4661200c5980105 Mon Sep 17 00:00:00 2001 From: Cheng Pan Date: Tue, 10 Mar 2026 15:05:38 +0800 Subject: [PATCH 1/3] Java 25 --- .github/workflows/master.yml | 4 ++-- bin/load-kyuubi-env.sh | 8 ++++++-- pom.xml | 18 +++++++++++++++++- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index f071a034fc5..d07e22b0d25 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -72,7 +72,7 @@ jobs: spark-archive: '-Pscala-2.13' exclude-tags: '' comment: 'normal' - - java: 21 + - java: 25 python: '3.11' spark: '4.2' spark-archive: '-Pscala-2.13' @@ -245,7 +245,7 @@ jobs: spark-compile: "3.5" spark-runtime: "4.1" comment: "normal" - - java: 21 + - java: 25 scala: "2.13" spark-compile: "3.5" spark-runtime: "4.2" diff --git a/bin/load-kyuubi-env.sh b/bin/load-kyuubi-env.sh index aa7cee023eb..79f1144698f 100755 --- a/bin/load-kyuubi-env.sh +++ b/bin/load-kyuubi-env.sh @@ -68,7 +68,6 @@ if [[ -z ${JAVA_HOME} ]]; then fi KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions" -KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS -Dio.netty.tryReflectionSetAccessible=true" KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/java.lang=ALL-UNNAMED" KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/java.lang.invoke=ALL-UNNAMED" KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" @@ -85,10 +84,12 @@ KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/sun.security.action=AL KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/sun.security.tools.keytool=ALL-UNNAMED" KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/sun.security.x509=ALL-UNNAMED" KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --add-opens=java.base/sun.util.calendar=ALL-UNNAMED" +KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS -Djdk.reflect.useDirectMethodHandle=false" +KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --enable-native-access=ALL-UNNAMED" +KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS --sun-misc-unsafe-memory-access=allow" export KYUUBI_JAVA_OPTS="$KYUUBI_JAVA_OPTS" KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions" -KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS -Dio.netty.tryReflectionSetAccessible=true" KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS --add-opens=java.base/java.lang=ALL-UNNAMED" KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS --add-opens=java.base/java.lang.invoke=ALL-UNNAMED" KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" @@ -105,6 +106,9 @@ KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS --add-opens=java.base/sun.security.a KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS --add-opens=java.base/sun.security.tools.keytool=ALL-UNNAMED" KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS --add-opens=java.base/sun.security.x509=ALL-UNNAMED" KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS --add-opens=java.base/sun.util.calendar=ALL-UNNAMED" +KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS -Djdk.reflect.useDirectMethodHandle=false" +KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS --sun-misc-unsafe-memory-access=allow" +KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS --enable-native-access=ALL-UNNAMED" export KYUUBI_CTL_JAVA_OPTS="$KYUUBI_CTL_JAVA_OPTS" export KYUUBI_SCALA_VERSION="${KYUUBI_SCALA_VERSION:-"2.12"}" diff --git a/pom.xml b/pom.xml index 80dba978981..7b666a9879c 100644 --- a/pom.xml +++ b/pom.xml @@ -307,7 +307,8 @@ --add-opens=java.base/sun.security.x509=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED -Djdk.reflect.useDirectMethodHandle=false - -Dio.netty.tryReflectionSetAccessible=true + --enable-native-access=ALL-UNNAMED + --sun-misc-unsafe-memory-access=allow -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 @@ -2017,6 +2018,21 @@ + + java-25 + + 25 + + + + 2.43.0 + true + 1.22.0 + + + scala-2.12 From 4bf8ab93e177566476a2c305682491af22aab8a5 Mon Sep 17 00:00:00 2001 From: Cheng Pan Date: Tue, 25 Aug 2026 11:01:27 +0800 Subject: [PATCH 2/3] skip one test on JDK 25 --- .../kyuubi/operation/KyuubiOperationPerGroupSuite.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerGroupSuite.scala b/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerGroupSuite.scala index 173b4d2932a..9df7501255b 100644 --- a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerGroupSuite.scala +++ b/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerGroupSuite.scala @@ -17,8 +17,8 @@ package org.apache.kyuubi.operation +import org.apache.commons.lang3.{JavaVersion, SystemUtils} import org.apache.hadoop.security.UserGroupInformation - import org.apache.kyuubi.{Utils, WithKyuubiServer} import org.apache.kyuubi.config.KyuubiConf import org.apache.kyuubi.session.KyuubiSession @@ -68,6 +68,9 @@ class KyuubiOperationPerGroupSuite extends WithKyuubiServer with SparkQueryTests } test("kyuubi defined function - system_user/session_user") { + // TODO: re-enable this test on JDK 25 after upgrading Hadoop that includes + // HADOOP-19906 (3.4.4, 3.5.1, 3.6.0) + assume(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22)) withSessionConf(Map("hive.server2.proxy.user" -> "user1"))(Map.empty)(Map.empty) { withJdbcStatement() { statement => val res = statement.executeQuery("select system_user() as c1, session_user() as c2") From 3503556384de966be4a34f132c82ee5312b19f15 Mon Sep 17 00:00:00 2001 From: Cheng Pan Date: Tue, 25 Aug 2026 11:07:05 +0800 Subject: [PATCH 3/3] fix style --- .../apache/kyuubi/operation/KyuubiOperationPerGroupSuite.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerGroupSuite.scala b/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerGroupSuite.scala index 9df7501255b..c5b8211954f 100644 --- a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerGroupSuite.scala +++ b/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerGroupSuite.scala @@ -19,6 +19,7 @@ package org.apache.kyuubi.operation import org.apache.commons.lang3.{JavaVersion, SystemUtils} import org.apache.hadoop.security.UserGroupInformation + import org.apache.kyuubi.{Utils, WithKyuubiServer} import org.apache.kyuubi.config.KyuubiConf import org.apache.kyuubi.session.KyuubiSession