StarRocks / starrocks

The world's fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.
https://starrocks.io
Apache License 2.0
8.89k stars 1.78k forks source link

Starrocks-3.2.9 fe start failed with jdk17 #48388

Open ganymedewuke opened 3 months ago

ganymedewuke commented 3 months ago

Steps to reproduce the behavior (Required)

从Starrocks-3.2.7升级至Starrocks-3.2.9版本 ,BE升级成功,FE升级失败

Expected behavior (Required)

using java version 17 -Dlog4j2.formatMsgNoLookups=true -Xmx8192m -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data/starrocks/app/fe/log/fe.gc.log.20240715-154600 -XX:+PrintConcurrentLocks -Djava.security.policy=/data/starrocks/app/fe/conf/udf_security.policy start time: Mon Jul 15 15:46:00 CST 2024, server uptime: 15:46:00 up 381 days, 23:34, 2 users, load average: 0.36, 0.33, 0.50 Unrecognized VM option 'PrintGCDateStamps' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

Real behavior (Required)

目前可以修改start_fe.sh可以解决这个bug 8

StarRocks version (Required)

Starrocks-3.2.9

ganymedewuke commented 3 months ago

补充一下,用的是jdk17(jdk17的性能比jdk8、jdk11都要好,因此公司选型的是jdk17),Starrocks-3.2.7版本没有问题,Starrocks-3.2.9的start_be.sh脚本有bug。

kevincai commented 3 months ago

This is work as design, be sure you configured the java options with JAVA_OPTS, JAVA_OPTS_FOR_JDK_11 is not supposed to control options for java version larger than v11.

kevincai commented 3 months ago

check #47495 and #47451 for why we made the change.

ganymedewuke commented 3 months ago

Hello, I would like to ask why the support for jdk17 was removed in StarRocks version 3.2.9. Version 3.2.9 still retains the prompt for jdk17 support in the start_fe.sh script. " echo "JDK $JAVA_VERSION is not supported, please use JDK 8, 11 or 17" " , the current production environment is jdk17, is it necessary to roll back the jdk version? Thanks

This is work as design, be sure you configured the java options with JAVA_OPTS, JAVA_OPTS_FOR_JDK_11 is not supposed to control options for java version larger than v11.

kevincai commented 3 months ago

The support for JDK17 is not removed or disabled, it is to use JAVA_OPTS to specify java options for JDK17 instead of using JAVA_OPTS_FOR_JDK_11 which is misleading.

ganymedewuke commented 3 months ago

The support for JDK17 is not removed or disabled, it is to use JAVA_OPTS to specify java options for JDK17 instead of using JAVA_OPTS_FOR_JDK_11 which is misleading.

Hello, the fe.conf file of Starrocks 3.2.9 version JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx8192m -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:${LOGDIR}/fe.gc.log.$DATE -XX:+PrintConcurrentLocks -Djava. security.policy=${STARROCKS HOME}/conf/udf_security.policy" An error will be reported when starting with jdk17, and the PrintGCDateStamps parameter is not supported. File configuration item JAVA_OPTS_FOR_JDK_11="-Dlog4j2.formatMsgNoLookups=true -Xmx8192m -XX:+UseG1GC -Xlog:gc*:${LOG_DIR}/fe.gc.log.$DATE:time -Djava.security.policy=${STARROCKS_HOME }/conf/udf_security.policy" It works normally using jdk17 . Therefore, if JAVA_OPTS is modified according to the configuration of jdk17, it may affect the configuration of jdk8. Thanks

kevincai commented 3 months ago

since you are running on jdk17, why need to keep it working with jdk8?