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

Reply via email to