Skip to content

Commit 64ab222

Browse files
Remove parsed JVM settings from general settings (elastic#49061)
The Apache Commons Daemon has some helpful features for Java applications, like nice little next boxes for min heap, max heap, and thread stack size. Our elasticsearch-service.bat script parses those values out of the ES_JAVA_OPTS environment variable and provides them to the Apache Commons Daemon invocation command in order to provide sensible defaults. However, we failed to remove those values from the ES_JAVA_OPTS environment variable, which meant they ended up in the "Java Options" text box and would, from there, override whatever the user put in the specific boxes for heap size or thread stack size. This commit modifies the loop that parses ES_JAVA_OPTS to construct a new enviroment variable containing only the values that aren't parsed out for heap size or thread stack size, then uses that new enviroment variable in the commons daemon invocation command.
1 parent 6075c30 commit 64ab222

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

distribution/src/bin/elasticsearch-service.bat

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,32 +131,40 @@ echo %ES_JAVA_OPTS%
131131
@setlocal EnableDelayedExpansion
132132
for %%a in ("%ES_JAVA_OPTS:;=","%") do (
133133
set var=%%a
134+
set other_opt=true
134135
if "!var:~1,4!" == "-Xms" (
135136
set XMS=!var:~5,-1!
137+
set other_opt=false
136138
call:convertxm !XMS! JVM_MS
137139
)
138140
if "!var:~1,16!" == "-XX:MinHeapSize=" (
139141
set XMS=!var:~17,-1!
142+
set other_opt=false
140143
call:convertxm !XMS! JVM_MS
141144
)
142145
if "!var:~1,4!" == "-Xmx" (
143146
set XMX=!var:~5,-1!
147+
set other_opt=false
144148
call:convertxm !XMX! JVM_MX
145149
)
146150
if "!var:~1,16!" == "-XX:MaxHeapSize=" (
147151
set XMX=!var:~17,-1!
152+
set other_opt=false
148153
call:convertxm !XMX! JVM_MX
149154
)
150155
if "!var:~1,4!" == "-Xss" (
151156
set XSS=!var:~5,-1!
157+
set other_opt=false
152158
call:convertxk !XSS! JVM_SS
153159
)
154160
if "!var:~1,20!" == "-XX:ThreadStackSize=" (
155161
set XSS=!var:~21,-1!
162+
set other_opt=false
156163
call:convertxk !XSS! JVM_SS
157164
)
165+
if "!other_opt!" == "true" set OTHER_JAVA_OPTS=!OTHER_JAVA_OPTS!;!var!
158166
)
159-
@endlocal & set JVM_MS=%JVM_MS% & set JVM_MX=%JVM_MX% & set JVM_SS=%JVM_SS%
167+
@endlocal & set JVM_MS=%JVM_MS% & set JVM_MX=%JVM_MX% & set JVM_SS=%JVM_SS% & set OTHER_JAVA_OPTS=%OTHER_JAVA_OPTS%
160168

161169
if "%JVM_MS%" == "" (
162170
echo minimum heap size not set; configure using -Xms via "%ES_JVM_OPTIONS%" or ES_JAVA_OPTS
@@ -170,6 +178,8 @@ if "%JVM_SS%" == "" (
170178
echo thread stack size not set; configure using -Xss via "%ES_JVM_OPTIONS%" or ES_JAVA_OPTS
171179
goto:eof
172180
)
181+
set OTHER_JAVA_OPTS=%OTHER_JAVA_OPTS:"=%
182+
set OTHER_JAVA_OPTS=%OTHER_JAVA_OPTS:~1%
173183

174184
set ES_PARAMS=-Delasticsearch;-Des.path.home="%ES_HOME%";-Des.path.conf="%ES_PATH_CONF%";-Des.distribution.flavor="%ES_DISTRIBUTION_FLAVOR%";-Des.distribution.type="%ES_DISTRIBUTION_TYPE%";-Des.bundled_jdk="%ES_BUNDLED_JDK%"
175185

@@ -184,7 +194,7 @@ if not "%SERVICE_USERNAME%" == "" (
184194
set SERVICE_PARAMS=%SERVICE_PARAMS% --ServiceUser "%SERVICE_USERNAME%" --ServicePassword "%SERVICE_PASSWORD%"
185195
)
186196
)
187-
"%EXECUTABLE%" //IS//%SERVICE_ID% --Startup %ES_START_TYPE% --StopTimeout %ES_STOP_TIMEOUT% --StartClass org.elasticsearch.bootstrap.Elasticsearch --StartMethod main ++StartParams --quiet --StopClass org.elasticsearch.bootstrap.Elasticsearch --StopMethod close --Classpath "%ES_CLASSPATH%" --JvmMs %JVM_MS% --JvmMx %JVM_MX% --JvmSs %JVM_SS% --JvmOptions %ES_JAVA_OPTS% ++JvmOptions %ES_PARAMS% %LOG_OPTS% --PidFile "%SERVICE_ID%.pid" --DisplayName "%SERVICE_DISPLAY_NAME%" --Description "%SERVICE_DESCRIPTION%" --Jvm "%JAVA_HOME%%JVM_DLL%" --StartMode jvm --StopMode jvm --StartPath "%ES_HOME%" %SERVICE_PARAMS% ++Environment HOSTNAME="%%COMPUTERNAME%%"
197+
"%EXECUTABLE%" //IS//%SERVICE_ID% --Startup %ES_START_TYPE% --StopTimeout %ES_STOP_TIMEOUT% --StartClass org.elasticsearch.bootstrap.Elasticsearch --StartMethod main ++StartParams --quiet --StopClass org.elasticsearch.bootstrap.Elasticsearch --StopMethod close --Classpath "%ES_CLASSPATH%" --JvmMs %JVM_MS% --JvmMx %JVM_MX% --JvmSs %JVM_SS% --JvmOptions %OTHER_JAVA_OPTS% ++JvmOptions %ES_PARAMS% %LOG_OPTS% --PidFile "%SERVICE_ID%.pid" --DisplayName "%SERVICE_DISPLAY_NAME%" --Description "%SERVICE_DESCRIPTION%" --Jvm "%JAVA_HOME%%JVM_DLL%" --StartMode jvm --StopMode jvm --StartPath "%ES_HOME%" %SERVICE_PARAMS% ++Environment HOSTNAME="%%COMPUTERNAME%%"
188198

189199
if not errorlevel 1 goto installed
190200
echo Failed installing '%SERVICE_ID%' service

0 commit comments

Comments
 (0)