This is an automated email from the ASF dual-hosted git repository.
malliaridis pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/main by this push:
new 97a11cfb6ca SOLR-17321: Cleanup JDK version related logic in scripts
(#2792)
97a11cfb6ca is described below
commit 97a11cfb6caf38fdc914c2edf4bff5406d4192fd
Author: Christos Malliaridis <[email protected]>
AuthorDate: Mon Oct 28 23:18:03 2024 +0100
SOLR-17321: Cleanup JDK version related logic in scripts (#2792)
* Cleanup JDK related logic in scripts
* Match logic for GC_LOG_OPTS in scripts
---
solr/bin/solr | 27 ++++--------------------
solr/bin/solr.cmd | 63 +++++++++++--------------------------------------------
2 files changed, 16 insertions(+), 74 deletions(-)
diff --git a/solr/bin/solr b/solr/bin/solr
index 61f61f8692b..812972bf6af 100755
--- a/solr/bin/solr
+++ b/solr/bin/solr
@@ -1054,31 +1054,13 @@ fi
# Establish default GC logging opts if no env var set (otherwise init to
sensible default)
if [ -z "${GC_LOG_OPTS}" ]; then
- if [[ "$JAVA_VER_NUM" -lt "9" ]] ; then
- GC_LOG_OPTS=('-verbose:gc' '-XX:+PrintHeapAtGC' '-XX:+PrintGCDetails' \
- '-XX:+PrintGCDateStamps' '-XX:+PrintGCTimeStamps'
'-XX:+PrintTenuringDistribution' \
- '-XX:+PrintGCApplicationStoppedTime')
- else
- GC_LOG_OPTS=('-Xlog:gc*')
- fi
-else
- # TODO: Should probably not overload GC_LOG_OPTS as both string and array,
but leaving it be for now
- # shellcheck disable=SC2128
- GC_LOG_OPTS=($GC_LOG_OPTS)
+ GC_LOG_OPTS=('-Xlog:gc*')
fi
# if verbose gc logging enabled, setup the location of the log file and
rotation
if [ "${#GC_LOG_OPTS[@]}" -gt 0 ]; then
- if [[ "$JAVA_VER_NUM" -lt "9" ]] || [ "$JAVA_VENDOR" == "OpenJ9" ]; then
- gc_log_flag="-Xloggc"
- if [ "$JAVA_VENDOR" == "OpenJ9" ]; then
- gc_log_flag="-Xverbosegclog"
- fi
- if [ -z ${JAVA8_GC_LOG_FILE_OPTS+x} ]; then
- GC_LOG_OPTS+=("$gc_log_flag:$SOLR_LOGS_DIR/solr_gc.log"
'-XX:+UseGCLogFileRotation' '-XX:NumberOfGCLogFiles=9' '-XX:GCLogFileSize=20M')
- else
- GC_LOG_OPTS+=($JAVA8_GC_LOG_FILE_OPTS)
- fi
+ if [ "$JAVA_VENDOR" == "OpenJ9" ]; then
+ GC_LOG_OPTS+=("-Xverbosegclog:$SOLR_LOGS_DIR/solr_gc.log"
'-XX:+UseGCLogFileRotation' '-XX:NumberOfGCLogFiles=9' '-XX:GCLogFileSize=20M')
else
# https://openjdk.java.net/jeps/158
for i in "${!GC_LOG_OPTS[@]}";
@@ -1322,8 +1304,7 @@ function start_solr() {
exit 1
fi
- # Vector optimizations are only supported for Java 20 and 21 for now.
- # This will need to change as Lucene is upgraded and newer Java versions are
released
+ # Add vector optimizations module
SCRIPT_SOLR_OPTS+=("--add-modules" "jdk.incubator.vector")
SOLR_START_OPTS=('-server' "${JAVA_MEM_OPTS[@]}" "${GC_TUNE_ARR[@]}"
"${GC_LOG_OPTS[@]}" "${IP_ACL_OPTS[@]}" \
diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd
index db94bc8691a..d6ff9e62492 100755
--- a/solr/bin/solr.cmd
+++ b/solr/bin/solr.cmd
@@ -20,6 +20,8 @@
IF "%OS%"=="Windows_NT" setlocal enabledelayedexpansion enableextensions
+@REM What version of Java is required to run this version of Solr.
+set REQUIRED_JAVA_VERSION=21
set "PASS_TO_RUN_EXAMPLE="
REM Determine top-level Solr directory
@@ -61,8 +63,8 @@ IF NOT EXIST "%JAVA_HOME%\bin\java.exe" (
)
set "JAVA=%JAVA_HOME%\bin\java"
CALL :resolve_java_info
-IF !JAVA_MAJOR_VERSION! LSS 8 (
- set "SCRIPT_ERROR=Java 1.8 or later is required to run Solr. Current Java
version is: !JAVA_VERSION_INFO! (detected major: !JAVA_MAJOR_VERSION!)"
+IF !JAVA_MAJOR_VERSION! LSS !REQUIRED_JAVA_VERSION! (
+ set "SCRIPT_ERROR=Java !REQUIRED_JAVA_VERSION! or later is required to run
Solr. Current Java version is: !JAVA_VERSION_INFO! (detected major:
!JAVA_MAJOR_VERSION!)"
goto err
)
@@ -890,18 +892,6 @@ IF ERRORLEVEL 1 (
set IS_JDK=true
set "SERVEROPT=-server"
)
-if !JAVA_MAJOR_VERSION! LSS 9 (
- "%JAVA%" -d64 -version > nul 2>&1
- IF ERRORLEVEL 1 (
- set "IS_64BIT=false"
- @echo WARNING: 32-bit Java detected. Not recommended for production. Point
your JAVA_HOME to a 64-bit JDK
- @echo.
- ) ELSE (
- set IS_64bit=true
- )
-) ELSE (
- set IS_64bit=true
-)
IF NOT "%ZK_HOST%"=="" set SOLR_MODE=solrcloud
IF "%SOLR_MODE%"=="" set SOLR_MODE=solrcloud
@@ -1015,41 +1005,16 @@ IF "%GC_TUNE%"=="" (
-XX:+ExplicitGCInvokesConcurrent
)
-REM Workaround for JIT crash, see
https://issues.apache.org/jira/browse/SOLR-16463
-if !JAVA_MAJOR_VERSION! GEQ 17 (
- set SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS%
-XX:CompileCommand=exclude,com.github.benmanes.caffeine.cache.BoundedLocalCache::put
- echo Java %JAVA_MAJOR_VERSION% detected. Enabled workaround for SOLR-16463
-)
+REM Add vector optimizations module
+set SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% --add-modules jdk.incubator.vector
-REM Vector optimizations are only supported for Java 20 and 21 for now.
-REM This will need to change as Lucene is upgraded and newer Java versions are
released
-if !JAVA_MAJOR_VERSION! GEQ 20 if !JAVA_MAJOR_VERSION! LEQ 21 (
- set SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% --add-modules jdk.incubator.vector
- echo Java %JAVA_MAJOR_VERSION% detected. Incubating Panama Vector APIs have
been enabled
+IF "%GC_LOG_OPTS%"=="" (
+ set GC_LOG_OPTS="-Xlog:gc*"
)
-
-if !JAVA_MAJOR_VERSION! GEQ 9 if NOT "%JAVA_VENDOR%" == "OpenJ9" (
- IF NOT "%GC_LOG_OPTS%"=="" (
- echo ERROR: On Java 9 you cannot set GC_LOG_OPTS, only default GC logging
is available. Exiting
- GOTO :eof
- )
- set
GC_LOG_OPTS="-Xlog:gc*:file=\"!SOLR_LOGS_DIR!\solr_gc.log\":time,uptime:filecount=9,filesize=20M"
+if "%JAVA_VENDOR%" == "OpenJ9" (
+ set GC_LOG_OPTS=!GC_LOG_OPTS! "-Xverbosegclog:!SOLR_LOGS_DIR!\solr_gc.log"
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=9 -XX:GCLogFileSize=20M
) else (
- IF "%GC_LOG_OPTS%"=="" (
- rem Set defaults for Java 8
- set GC_LOG_OPTS=-verbose:gc ^
- -XX:+PrintHeapAtGC ^
- -XX:+PrintGCDetails ^
- -XX:+PrintGCDateStamps ^
- -XX:+PrintGCTimeStamps ^
- -XX:+PrintTenuringDistribution ^
- -XX:+PrintGCApplicationStoppedTime
- )
- if "%JAVA_VENDOR%" == "OpenJ9" (
- set GC_LOG_OPTS=!GC_LOG_OPTS! "-Xverbosegclog:!SOLR_LOGS_DIR!\solr_gc.log"
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=9 -XX:GCLogFileSize=20M
- ) else (
- set GC_LOG_OPTS=!GC_LOG_OPTS! "-Xloggc:!SOLR_LOGS_DIR!\solr_gc.log"
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=9 -XX:GCLogFileSize=20M
- )
+ set GC_LOG_OPTS=!GC_LOG_OPTS! "-Xloggc:!SOLR_LOGS_DIR!\solr_gc.log"
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=9 -XX:GCLogFileSize=20M
)
IF "%verbose%"=="1" (
@@ -1565,11 +1530,7 @@ IF "%FIRST_ARG%"=="start" (
)
:need_java_home
-@echo Please set the JAVA_HOME environment variable to the path where you
installed Java 1.8+
-goto done
-
-:need_java_vers
-@echo Java 1.8 or later is required to run Solr.
+@echo Please set the JAVA_HOME environment variable to the path where you
installed Java 21+
goto done
:err