You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2025/12/18 10:13:16 UTC
(doris) branch branch-3.1 updated: branch-3.1: [opt](jvm) add more --add-opens #58936 #59073 (#59024)
This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new ec7c4b7248d branch-3.1: [opt](jvm) add more --add-opens #58936 #59073 (#59024)
ec7c4b7248d is described below
commit ec7c4b7248db988f1cf213db59a8c2aad5e23f50
Author: Mingyu Chen (Rayner) <mo...@163.com>
AuthorDate: Thu Dec 18 18:13:07 2025 +0800
branch-3.1: [opt](jvm) add more --add-opens #58936 #59073 (#59024)
bp #58936 #59073
---
bin/start_be.sh | 126 ++++++++++++++++++++++++-
bin/start_fe.sh | 124 ++++++++++++++++++++++++
conf/be.conf | 5 +-
conf/fe.conf | 5 +-
regression-test/pipeline/external/conf/be.conf | 2 +-
regression-test/pipeline/external/conf/fe.conf | 5 +-
regression-test/pipeline/p0/conf/be.conf | 2 +-
regression-test/pipeline/p0/conf/fe.conf | 2 +-
regression-test/pipeline/p1/conf/be.conf | 2 +-
regression-test/pipeline/p1/conf/fe.conf | 2 +-
10 files changed, 257 insertions(+), 18 deletions(-)
diff --git a/bin/start_be.sh b/bin/start_be.sh
index fec1eb01723..7d8e837b544 100755
--- a/bin/start_be.sh
+++ b/bin/start_be.sh
@@ -393,7 +393,7 @@ COMMON_OPTS="-Dsun.java.command=DorisBE -XX:-CriticalJNINatives"
if [[ "${java_version}" -eq 17 ]]; then
if [[ -z ${JAVA_OPTS_FOR_JDK_17} ]]; then
- JAVA_OPTS_FOR_JDK_17="-Xmx1024m ${LOG_PATH} -Xlog:gc:${DORIS_HOME}/log/be.gc.log.${CUR_DATE} ${COMMON_OPTS} --add-opens=java.base/java.net=ALL-UNNAMED"
+ JAVA_OPTS_FOR_JDK_17="-Xmx1024m ${LOG_PATH} -Xlog:gc:${DORIS_HOME}/log/be.gc.log.${CUR_DATE} ${COMMON_OPTS} --add-opens java.base/java.net=ALL-UNNAMED"
fi
final_java_opt="${JAVA_OPTS_FOR_JDK_17}"
else
@@ -413,6 +413,130 @@ if [[ "${MACHINE_OS}" == "Darwin" ]]; then
fi
fi
+# Extract the matching key from a Java option for deduplication purposes.
+# Different option types have different key extraction rules:
+# --add-opens java.base/sun.util.calendar=ALL-UNNAMED -> --add-opens java.base/sun.util.calendar
+# -XX:+HeapDumpOnOutOfMemoryError -> -XX:[+-]HeapDumpOnOutOfMemoryError
+# -XX:HeapDumpPath=/path -> -XX:HeapDumpPath
+# -Dfile.encoding=UTF-8 -> -Dfile.encoding
+# -Xmx8192m -> -Xmx
+extract_java_opt_key() {
+ local param="$1"
+
+ case "${param}" in
+ "--add-opens "* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+ # --add-opens java.base/sun.util.calendar=ALL-UNNAMED
+ # Extract module/package path as key: --add-opens java.base/sun.util.calendar
+ echo "${param%=*}"
+ ;;
+ -XX:+* | -XX:-*)
+ # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+ # Extract flag name for pattern matching: -XX:[+-]FlagName
+ local flag_name="${param#-XX:?}"
+ echo "-XX:[+-]${flag_name}"
+ ;;
+ -XX:*=*)
+ # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+ # Extract key before '=': -XX:HeapDumpPath
+ echo "${param%%=*}"
+ ;;
+ -D*=*)
+ # -Dfile.encoding=UTF-8
+ # Extract property name: -Dfile.encoding
+ echo "${param%%=*}"
+ ;;
+ -D*)
+ # -Dfoo (boolean property without value)
+ echo "${param}"
+ ;;
+ -Xms* | -Xmx* | -Xmn* | -Xss*)
+ # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+ # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+ echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+ ;;
+ -Xlog:*)
+ # -Xlog:gc*:file:decorators
+ # Use prefix as key
+ echo "-Xlog:"
+ ;;
+ *)
+ # For other options, use the full parameter as key
+ echo "${param}"
+ ;;
+ esac
+}
+
+# Check if a Java option already exists in the options string.
+# Arguments:
+# $1 - The full java options string
+# $2 - The option to check
+# Returns: 0 if exists, 1 if not exists
+java_opt_exists() {
+ local java_opts="$1"
+ local param="$2"
+ local key
+ key="$(extract_java_opt_key "${param}")"
+
+ # For -XX:[+-] boolean flags, use regex matching
+ if [[ "${key}" =~ ^\-XX:\[\+\-\](.+)$ ]]; then
+ local flag_name="${BASH_REMATCH[1]}"
+ # Add spaces around to ensure word boundary matching
+ if echo " ${java_opts} " | grep -qE " -XX:[+-]${flag_name}( |$)"; then
+ return 0
+ fi
+ else
+ # For other options, use fixed string matching
+ # Add spaces around to ensure word boundary matching
+ if echo " ${java_opts} " | grep -qF " ${key}"; then
+ return 0
+ fi
+ fi
+ return 1
+}
+
+# Add a Java option to final_java_opt if it doesn't already exist.
+# This function modifies the global variable 'final_java_opt'.
+# Arguments:
+# $1 - The option to add
+# Usage:
+# add_java_opt_if_missing "--add-opens java.base/sun.util.calendar=ALL-UNNAMED"
+# add_java_opt_if_missing "-XX:+HeapDumpOnOutOfMemoryError"
+# add_java_opt_if_missing "-Dfile.encoding=UTF-8"
+add_java_opt_if_missing() {
+ local param="$1"
+ if ! java_opt_exists "${final_java_opt}" "${param}"; then
+ final_java_opt="${final_java_opt} ${param}"
+ log "Added missing Java option: ${param}"
+ fi
+}
+
+# Add essential Java options if they are not already present in final_java_opt.
+# Users can customize JAVA_OPTS_FOR_JDK_17 in fe.conf, but these options ensure
+# basic functionality and compatibility.
+add_java_opt_if_missing "-Dhadoop.shell.setsid.enabled=false"
+add_java_opt_if_missing "-Darrow.enable_null_check_for_get=false"
+add_java_opt_if_missing "-Djol.skipHotspotSAAttach=true"
+add_java_opt_if_missing "-Djavax.security.auth.useSubjectCredsOnly=false"
+add_java_opt_if_missing "-Dsun.security.krb5.debug=true"
+add_java_opt_if_missing "-Dfile.encoding=UTF-8"
+add_java_opt_if_missing "--add-opens java.base/java.lang=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.lang.invoke=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.lang.reflect=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.io=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.net=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.nio=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.util=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.util.concurrent=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/sun.nio.ch=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/sun.nio.cs=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/sun.security.action=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/sun.util.calendar=ALL-UNNAME"
+add_java_opt_if_missing "--add-opens java.security.jgss/sun.security.krb5=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.management/sun.management=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/jdk.internal.ref=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
+
# set LIBHDFS_OPTS for hadoop libhdfs
export LIBHDFS_OPTS="${final_java_opt}"
export JAVA_OPTS="${final_java_opt}"
diff --git a/bin/start_fe.sh b/bin/start_fe.sh
index 2fd0920df63..c04c3c55537 100755
--- a/bin/start_fe.sh
+++ b/bin/start_fe.sh
@@ -187,6 +187,103 @@ log() {
fi
}
+# Extract the matching key from a Java option for deduplication purposes.
+# Different option types have different key extraction rules:
+# --add-opens java.base/sun.util.calendar=ALL-UNNAMED -> --add-opens java.base/sun.util.calendar
+# -XX:+HeapDumpOnOutOfMemoryError -> -XX:[+-]HeapDumpOnOutOfMemoryError
+# -XX:HeapDumpPath=/path -> -XX:HeapDumpPath
+# -Dfile.encoding=UTF-8 -> -Dfile.encoding
+# -Xmx8192m -> -Xmx
+extract_java_opt_key() {
+ local param="$1"
+
+ case "${param}" in
+ "--add-opens "* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+ # --add-opens java.base/sun.util.calendar=ALL-UNNAMED
+ # Extract module/package path as key: --add-opens java.base/sun.util.calendar
+ echo "${param%=*}"
+ ;;
+ -XX:+* | -XX:-*)
+ # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+ # Extract flag name for pattern matching: -XX:[+-]FlagName
+ local flag_name="${param#-XX:?}"
+ echo "-XX:[+-]${flag_name}"
+ ;;
+ -XX:*=*)
+ # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+ # Extract key before '=': -XX:HeapDumpPath
+ echo "${param%%=*}"
+ ;;
+ -D*=*)
+ # -Dfile.encoding=UTF-8
+ # Extract property name: -Dfile.encoding
+ echo "${param%%=*}"
+ ;;
+ -D*)
+ # -Dfoo (boolean property without value)
+ echo "${param}"
+ ;;
+ -Xms* | -Xmx* | -Xmn* | -Xss*)
+ # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+ # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+ echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+ ;;
+ -Xlog:*)
+ # -Xlog:gc*:file:decorators
+ # Use prefix as key
+ echo "-Xlog:"
+ ;;
+ *)
+ # For other options, use the full parameter as key
+ echo "${param}"
+ ;;
+ esac
+}
+
+# Check if a Java option already exists in the options string.
+# Arguments:
+# $1 - The full java options string
+# $2 - The option to check
+# Returns: 0 if exists, 1 if not exists
+java_opt_exists() {
+ local java_opts="$1"
+ local param="$2"
+ local key
+ key="$(extract_java_opt_key "${param}")"
+
+ # For -XX:[+-] boolean flags, use regex matching
+ if [[ "${key}" =~ ^\-XX:\[\+\-\](.+)$ ]]; then
+ local flag_name="${BASH_REMATCH[1]}"
+ # Add spaces around to ensure word boundary matching
+ if echo " ${java_opts} " | grep -qE " -XX:[+-]${flag_name}( |$)"; then
+ return 0
+ fi
+ else
+ # For other options, use fixed string matching
+ # Add spaces around to ensure word boundary matching
+ if echo " ${java_opts} " | grep -qF " ${key}"; then
+ return 0
+ fi
+ fi
+ return 1
+}
+
+# Add a Java option to final_java_opt if it doesn't already exist.
+# This function modifies the global variable 'final_java_opt'.
+# Arguments:
+# $1 - The option to add
+# Usage:
+# add_java_opt_if_missing "--add-opens java.base/sun.util.calendar=ALL-UNNAMED"
+# add_java_opt_if_missing "-XX:+HeapDumpOnOutOfMemoryError"
+# add_java_opt_if_missing "-Dfile.encoding=UTF-8"
+add_java_opt_if_missing() {
+ local param="$1"
+ if ! java_opt_exists "${final_java_opt}" "${param}"; then
+ final_java_opt="${final_java_opt} ${param}"
+ log "Added missing Java option: ${param}"
+ fi
+}
+
# check java version and choose correct JAVA_OPTS
java_version="$(
set -e
@@ -203,6 +300,33 @@ else
exit 1
fi
log "Using Java version ${java_version}"
+
+# Add essential Java options if they are not already present in final_java_opt.
+# Users can customize JAVA_OPTS_FOR_JDK_17 in fe.conf, but these options ensure
+# basic functionality and compatibility.
+add_java_opt_if_missing "-Dhadoop.shell.setsid.enabled=false"
+add_java_opt_if_missing "-Darrow.enable_null_check_for_get=false"
+add_java_opt_if_missing "-Djavax.security.auth.useSubjectCredsOnly=false"
+add_java_opt_if_missing "-Dsun.security.krb5.debug=true"
+add_java_opt_if_missing "-Dfile.encoding=UTF-8"
+add_java_opt_if_missing "--add-opens java.base/java.lang=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.lang.invoke=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.lang.reflect=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.io=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.net=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.nio=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.util=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.util.concurrent=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/sun.nio.ch=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/sun.nio.cs=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/sun.security.action=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/sun.util.calendar=ALL-UNNAME"
+add_java_opt_if_missing "--add-opens java.security.jgss/sun.security.krb5=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.management/sun.management=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.base/jdk.internal.ref=ALL-UNNAMED"
+add_java_opt_if_missing "--add-opens java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
+
log "${final_java_opt}"
export JAVA_OPTS="${final_java_opt}"
diff --git a/conf/be.conf b/conf/be.conf
index aca7e641676..8f829ffda58 100644
--- a/conf/be.conf
+++ b/conf/be.conf
@@ -20,11 +20,8 @@ CUR_DATE=`date +%Y%m%d-%H%M%S`
# Log dir
LOG_DIR="${DORIS_HOME}/log/"
-# For jdk 8
-JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xloggc:$LOG_DIR/be.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives"
-
# For jdk 17, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-U [...]
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions -Darrow.enable_null_check_for_get=false --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add [...]
# Set your own JAVA_HOME
# JAVA_HOME=/path/to/jdk/
diff --git a/conf/fe.conf b/conf/fe.conf
index b02e5abc6b7..7bddd2bcd6b 100644
--- a/conf/fe.conf
+++ b/conf/fe.conf
@@ -26,11 +26,8 @@ CUR_DATE=`date +%Y%m%d-%H%M%S`
# Log dir
LOG_DIR = ${DORIS_HOME}/log
-# For jdk 8
-JAVA_OPTS="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintClassHistogramAfterFullGC -Xloggc:$LOG_DIR/log/fe.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Dlog4j2.formatMsgNoLookups=true"
-
# For jdk 17, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Darrow.enable_null_check_for_get=false --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAME [...]
# Set your own JAVA_HOME
# JAVA_HOME=/path/to/jdk/
diff --git a/regression-test/pipeline/external/conf/be.conf b/regression-test/pipeline/external/conf/be.conf
index 93907c43982..9728f8ecee5 100644
--- a/regression-test/pipeline/external/conf/be.conf
+++ b/regression-test/pipeline/external/conf/be.conf
@@ -23,7 +23,7 @@ PPROF_TMPDIR="$DORIS_HOME/log/"
JAVA_OPTS="-Xcheck:jni -Xmx2048m -DlogPath=$DORIS_HOME/log/jni.log -Xloggc:$DORIS_HOME/log/be.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
# For jdk 17, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_17="-Xcheck:jni -Xmx2048m -DlogPath=$DORIS_HOME/log/jni.log -Xlog:gc*:$DORIS_HOME/log/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.bas [...]
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions -Darrow.enable_null_check_for_get=false --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add [...]
# Set your own JAVA_HOME
# JAVA_HOME=/path/to/jdk/
diff --git a/regression-test/pipeline/external/conf/fe.conf b/regression-test/pipeline/external/conf/fe.conf
index 505563a21e1..adc88801872 100644
--- a/regression-test/pipeline/external/conf/fe.conf
+++ b/regression-test/pipeline/external/conf/fe.conf
@@ -27,11 +27,8 @@ LOG_DIR = ${DORIS_HOME}/log
DATE = `date +%Y%m%d-%H%M%S`
JAVA_OPTS="-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$DORIS_HOME/log/fe.jmap -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintClassHistogramAfterFullGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$DORIS_HOME/log/fe.gc.log.$DATE -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
-# For jdk 9+, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_9="-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$DORIS_HOME/log/fe.jmap -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlog:gc*:$DORIS_HOME/log/fe.gc.log.$DATE:time -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
-
# For jdk 17+, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_17="-Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$DORIS_HOME/log/ -Xlog:gc*,classhisto*=trace:$DORIS_HOME/log/fe.gc.log.$CUR_DATE:time -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Darrow.enable_null_check_for_get=false --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java. [...]
##
## the lowercase properties are read by main program.
diff --git a/regression-test/pipeline/p0/conf/be.conf b/regression-test/pipeline/p0/conf/be.conf
index 09dddd3c2d0..41fc2f37967 100644
--- a/regression-test/pipeline/p0/conf/be.conf
+++ b/regression-test/pipeline/p0/conf/be.conf
@@ -23,7 +23,7 @@ PPROF_TMPDIR="$DORIS_HOME/log/"
JAVA_OPTS="-Xcheck:jni -Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Xloggc:$DORIS_HOME/log/be.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
# For jdk 17, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_17="-Xcheck:jni -Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Xlog:gc*:$DORIS_HOME/log/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.bas [...]
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions -Darrow.enable_null_check_for_get=false --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add [...]
# Set your own JAVA_HOME
# JAVA_HOME=/path/to/jdk/
diff --git a/regression-test/pipeline/p0/conf/fe.conf b/regression-test/pipeline/p0/conf/fe.conf
index 5816d8f1f12..bab603d78a9 100644
--- a/regression-test/pipeline/p0/conf/fe.conf
+++ b/regression-test/pipeline/p0/conf/fe.conf
@@ -30,7 +30,7 @@ LOG_DIR = ${DORIS_HOME}/log
JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintClassHistogramAfterFullGC -Xloggc:$DORIS_HOME/log/fe.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Dlog4j2.formatMsgNoLookups=true -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
# For jdk 17, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_17="-Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$DORIS_HOME/log/ -Xlog:gc*,classhisto*=trace:$DORIS_HOME/log/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens java.base/jdk.internal.ref=ALL-UNNAMED"
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Darrow.enable_null_check_for_get=false --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java. [...]
sys_log_level = INFO
sys_log_mode = NORMAL
diff --git a/regression-test/pipeline/p1/conf/be.conf b/regression-test/pipeline/p1/conf/be.conf
index b57c3abca74..cc776b5cbd7 100644
--- a/regression-test/pipeline/p1/conf/be.conf
+++ b/regression-test/pipeline/p1/conf/be.conf
@@ -23,7 +23,7 @@ PPROF_TMPDIR="$DORIS_HOME/log/"
JAVA_OPTS="-Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Xloggc:$DORIS_HOME/log/be.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
# For jdk 17, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_17="-Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Xlog:gc*:$DORIS_HOME/log/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=AL [...]
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions -Darrow.enable_null_check_for_get=false --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add [...]
# Set your own JAVA_HOME
# JAVA_HOME=/path/to/jdk/
diff --git a/regression-test/pipeline/p1/conf/fe.conf b/regression-test/pipeline/p1/conf/fe.conf
index 168fe99c6e0..63e6e1bdf64 100644
--- a/regression-test/pipeline/p1/conf/fe.conf
+++ b/regression-test/pipeline/p1/conf/fe.conf
@@ -30,7 +30,7 @@ LOG_DIR = ${DORIS_HOME}/log
JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintClassHistogramAfterFullGC -Xloggc:$DORIS_HOME/log/fe.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Dlog4j2.formatMsgNoLookups=true -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
# For jdk 17, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_17="-Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$DORIS_HOME/log/ -Xlog:gc*,classhisto*=trace:$DORIS_HOME/log/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Darrow.enable_null_check_for_get=false --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java. [...]
sys_log_level = INFO
sys_log_mode = NORMAL
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org