Skip to content

Commit c7b961c

Browse files
kevincaiclaude
andauthored
[Enhancement] Adopt JDK 21 and warn on deprecated JDK versions (#76058)
Signed-off-by: Kevin Cai <kevin.cai@phoenixdata.ai> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 92d6b85 commit c7b961c

5 files changed

Lines changed: 27 additions & 17 deletions

File tree

bin/start_backend.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,20 @@ if [[ "${MACHINE_TYPE}" == "aarch64" ]]; then
102102
jvm_arch="aarch64"
103103
fi
104104

105+
# min jdk version required for jni features
106+
MIN_JDK_VERSION=17
107+
# recommended jdk version; versions in [MIN_JDK_VERSION, RECOMMENDED_JDK_VERSION) are deprecated
108+
RECOMMENDED_JDK_VERSION=21
105109
if [ "$JAVA_HOME" = "" ]; then
106110
echo "[WARNING] JAVA_HOME env not set. Functions or features that requires jni will not work at all."
107111
export LD_LIBRARY_PATH=$STARROCKS_HOME/lib:$LD_LIBRARY_PATH
108112
else
109113
export LD_LIBRARY_PATH=$JAVA_HOME/lib/server:$JAVA_HOME/lib:$LD_LIBRARY_PATH
110114
java_version=$(jdk_version)
111-
if [[ $java_version -lt 17 ]]; then
112-
echo "[WARNING] jdk versions lower than 17 are not supported"
115+
if [[ $java_version -lt $MIN_JDK_VERSION ]]; then
116+
echo "[ERROR] JDK $java_version is not supported, please use JDK version $RECOMMENDED_JDK_VERSION or higher"
117+
elif [[ $java_version -lt $RECOMMENDED_JDK_VERSION ]]; then
118+
echo "[WARNING] JDK $java_version is deprecated and support will be removed in a future release, please upgrade to JDK version $RECOMMENDED_JDK_VERSION or higher"
113119
fi
114120
fi
115121

bin/start_fe.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ FAILPOINT=
6060
RUN_LOG_CONSOLE=${SYS_LOG_TO_CONSOLE:-0}
6161
# min jdk version required
6262
MIN_JDK_VERSION=17
63+
# recommended jdk version; versions in [MIN_JDK_VERSION, RECOMMENDED_JDK_VERSION) are deprecated
64+
RECOMMENDED_JDK_VERSION=21
6365
while true; do
6466
case "$1" in
6567
--daemon) RUN_DAEMON=1 ; shift ;;
@@ -149,8 +151,10 @@ JAVA=$JAVA_HOME/bin/java
149151
# check java version and choose correct JAVA_OPTS
150152
JAVA_VERSION=$(jdk_version)
151153
if [[ "$JAVA_VERSION" -lt $MIN_JDK_VERSION ]]; then
152-
echo "Error: JDK $JAVA_VERSION is not supported, please use JDK version $MIN_JDK_VERSION or higher"
154+
echo "Error: JDK $JAVA_VERSION is not supported, please use JDK version $RECOMMENDED_JDK_VERSION or higher"
153155
exit -1
156+
elif [[ "$JAVA_VERSION" -lt $RECOMMENDED_JDK_VERSION ]]; then
157+
echo "Warning: JDK $JAVA_VERSION is deprecated and support will be removed in a future release, please upgrade to JDK version $RECOMMENDED_JDK_VERSION or higher"
154158
fi
155159

156160
final_java_opt=${JAVA_OPTS}

docker/dockerfiles/allin1/allin1-ubuntu.Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ ARG DEPLOYDIR=/data/deploy
3333
ENV SR_HOME=${DEPLOYDIR}/starrocks
3434

3535
RUN apt-get update -y && apt-get install -y --no-install-recommends \
36-
openjdk-17-jdk python3 python-is-python3 mysql-client curl vim tree net-tools less tzdata linux-tools-common linux-tools-generic supervisor nginx netcat-traditional locales tini libssl-dev && \
36+
openjdk-21-jdk python3 python-is-python3 mysql-client curl vim tree net-tools less tzdata linux-tools-common linux-tools-generic supervisor nginx netcat-traditional locales tini libssl-dev && \
3737
ln -fs /usr/share/zoneinfo/UTC /etc/localtime && \
3838
dpkg-reconfigure -f noninteractive tzdata && \
3939
locale-gen en_US.UTF-8 && \
4040
rm -rf /var/lib/apt/lists/*
41-
RUN echo "export PATH=/usr/lib/linux-tools/linux-tools-6.8.0-106:$PATH" >> /etc/bash.bashrc ; ARCH=`uname -m` && cd /lib/jvm && \
42-
if [ "$ARCH" = "aarch64" ] ; then ln -s java-17-openjdk-arm64 java-17-openjdk ; else ln -s java-17-openjdk-amd64 java-17-openjdk ; fi ;
43-
ENV JAVA_HOME=/lib/jvm/java-17-openjdk
41+
RUN echo "export PATH=/usr/lib/linux-tools/linux-tools-6.8.0-106:$PATH" >> /etc/bash.bashrc && cd /lib/jvm && \
42+
ln -s java-21-openjdk-$(dpkg --print-architecture) java-21-openjdk
43+
ENV JAVA_HOME=/lib/jvm/java-21-openjdk
4444

4545
WORKDIR $DEPLOYDIR
4646

docker/dockerfiles/be/be-ubuntu.Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,16 @@ ARG GROUP=starrocks
4444
ARG MINIMAL
4545

4646
# TODO: switch to `openjdk-##-jre` when the starrocks core is ready.
47-
RUN OPTIONAL_PKGS="" && if [ "x$MINIMAL" = "xfalse" ] ; then OPTIONAL_PKGS="openjdk-17-jdk curl vim tree net-tools less pigz inotify-tools rclone gdb" ; fi && \
47+
RUN OPTIONAL_PKGS="" && if [ "x$MINIMAL" = "xfalse" ] ; then OPTIONAL_PKGS="openjdk-21-jdk curl vim tree net-tools less pigz inotify-tools rclone gdb" ; fi && \
4848
apt-get update -y && apt-get install -y --no-install-recommends \
49-
openjdk-17-jdk mysql-client tzdata locales tini libssl-dev $OPTIONAL_PKGS && \
49+
openjdk-21-jdk mysql-client tzdata locales tini libssl-dev $OPTIONAL_PKGS && \
5050
ln -fs /usr/share/zoneinfo/UTC /etc/localtime && \
5151
dpkg-reconfigure -f noninteractive tzdata && \
5252
locale-gen en_US.UTF-8 && \
5353
rm -rf /var/lib/apt/lists/*
54-
RUN touch /.dockerenv ; ARCH=`uname -m` && cd /lib/jvm && \
55-
if [ "$ARCH" = "aarch64" ] ; then ln -s java-17-openjdk-arm64 java-17-openjdk ; else ln -s java-17-openjdk-amd64 java-17-openjdk ; fi ;
56-
ENV JAVA_HOME=/lib/jvm/java-17-openjdk
54+
RUN touch /.dockerenv && cd /lib/jvm && \
55+
ln -s java-21-openjdk-$(dpkg --print-architecture) java-21-openjdk
56+
ENV JAVA_HOME=/lib/jvm/java-21-openjdk
5757

5858
WORKDIR $STARROCKS_ROOT
5959

docker/dockerfiles/fe/fe-ubuntu.Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,16 @@ ARG GROUP=starrocks
4242
ARG MINIMAL
4343

4444
# TODO: switch to `openjdk-##-jre` when the starrocks core is ready.
45-
RUN OPTIONAL_PKGS="" && if [ "x$MINIMAL" = "xfalse" ] ; then OPTIONAL_PKGS="openjdk-17-jdk curl vim tree net-tools less pigz rclone" ; fi && \
45+
RUN OPTIONAL_PKGS="" && if [ "x$MINIMAL" = "xfalse" ] ; then OPTIONAL_PKGS="openjdk-21-jdk curl vim tree net-tools less pigz rclone" ; fi && \
4646
apt-get update -y && apt-get install -y --no-install-recommends \
47-
openjdk-17-jdk mysql-client tzdata locales netcat-traditional tini libssl-dev $OPTIONAL_PKGS && \
47+
openjdk-21-jdk mysql-client tzdata locales netcat-traditional tini libssl-dev $OPTIONAL_PKGS && \
4848
ln -fs /usr/share/zoneinfo/UTC /etc/localtime && \
4949
dpkg-reconfigure -f noninteractive tzdata && \
5050
locale-gen en_US.UTF-8 && \
5151
rm -rf /var/lib/apt/lists/*
52-
RUN touch /.dockerenv ; ARCH=`uname -m` && cd /lib/jvm && \
53-
if [ "$ARCH" = "aarch64" ] ; then ln -s java-17-openjdk-arm64 java-17-openjdk ; else ln -s java-17-openjdk-amd64 java-17-openjdk ; fi ;
54-
ENV JAVA_HOME=/lib/jvm/java-17-openjdk
52+
RUN touch /.dockerenv && cd /lib/jvm && \
53+
ln -s java-21-openjdk-$(dpkg --print-architecture) java-21-openjdk
54+
ENV JAVA_HOME=/lib/jvm/java-21-openjdk
5555

5656
WORKDIR $STARROCKS_ROOT
5757

0 commit comments

Comments
 (0)