This is an automated email from the ASF dual-hosted git repository.
epugh pushed a commit to branch branch_10x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_10x by this push:
new ca623761013 SOLR-15442: Sync up Solr (Jetty) host and ports variable
naming (#3814)
ca623761013 is described below
commit ca623761013259e1dd2f4ecae566308011197325
Author: Eric Pugh <[email protected]>
AuthorDate: Mon Nov 3 20:35:58 2025 -0500
SOLR-15442: Sync up Solr (Jetty) host and ports variable naming (#3814)
Sync up port and host variable naming:
* solr.jetty.host --> solr.host.bind
* SOLR_HOST/host --> solr.host.advertise
* jetty.port --> solr.port.listen and SOLR_PORT_LISTEN
---------
Co-authored-by: Copilot <[email protected]>
Co-authored-by: David Smiley <[email protected]>
---
changelog/unreleased/SOLR-15442.yml | 10 ++
gradle/ide/eclipse/run-solr-cloud.launch | 2 +-
gradle/ide/eclipse/run-solr.launch | 2 +-
solr/bin/install_solr_service.sh | 8 +-
solr/bin/solr | 122 +++++++++++----------
solr/bin/solr.cmd | 105 ++++++++++--------
solr/bin/solr.in.cmd | 6 +-
solr/bin/solr.in.sh | 6 +-
.../src/java/org/apache/solr/cli/CLIUtils.java | 3 +-
.../java/org/apache/solr/cli/RunExampleTool.java | 9 +-
.../org/apache/solr/cli/SolrProcessManager.java | 5 +-
.../java/org/apache/solr/core/SolrXmlConfig.java | 5 +-
.../apache/solr/servlet/CoreContainerProvider.java | 2 +-
.../src/test/org/apache/solr/cli/CLIUtilsTest.java | 4 +-
.../src/test/org/apache/solr/cli/PostToolTest.java | 4 +-
.../apache/solr/cli/SolrProcessManagerTest.java | 8 +-
.../org/apache/solr/cli/TestSolrCLIRunExample.java | 7 +-
.../src/test/org/apache/solr/core/TestSolrXml.java | 2 +-
solr/docker/scripts/docker-entrypoint.sh | 6 +-
solr/docker/scripts/solr-create | 2 +-
solr/docker/scripts/start-local-solr | 2 +-
solr/docker/scripts/wait-for-solr.sh | 6 +-
solr/docker/templates/Dockerfile.body.template | 2 +-
.../cross-dc/src/test-files/mirroring-solr.xml | 4 +-
solr/packaging/build.gradle | 1 +
solr/packaging/test/test_zk.bats | 6 +-
solr/server/etc/jetty-http.xml | 4 +-
solr/server/etc/jetty-https.xml | 2 +-
solr/server/solr/solr.xml | 2 +-
.../pages/configuring-solr-xml.adoc | 4 +-
.../configuration-guide/pages/solr-properties.adoc | 8 ++
.../pages/system-info-handler.adoc | 4 +-
.../deployment-guide/pages/securing-solr.adoc | 6 +-
.../pages/taking-solr-to-production.adoc | 2 +
.../getting-started/pages/tutorial-aws.adoc | 2 +-
.../pages/major-changes-in-solr-10.adoc | 9 ++
.../DeprecatedSystemPropertyMappings.properties | 4 +
.../src/resources/EnvToSyspropMappings.properties | 1 -
.../org/apache/solr/common/util/EnvUtilsTest.java | 3 +-
.../org/apache/solr/cloud/AbstractZkTestCase.java | 4 +-
40 files changed, 225 insertions(+), 169 deletions(-)
diff --git a/changelog/unreleased/SOLR-15442.yml
b/changelog/unreleased/SOLR-15442.yml
new file mode 100644
index 00000000000..ba5a5175974
--- /dev/null
+++ b/changelog/unreleased/SOLR-15442.yml
@@ -0,0 +1,10 @@
+# See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc
+title: Sync up various system properties related to Solr's Jetty process for
hosts and ports
+type: changed # added, changed, fixed, deprecated, removed, dependency_update,
security, other
+authors:
+ - name: Eric Pugh
+links:
+ - name: SOLR-15442
+ url: https://issues.apache.org/jira/browse/SOLR-15442
+issues:
+ - 15442
diff --git a/gradle/ide/eclipse/run-solr-cloud.launch
b/gradle/ide/eclipse/run-solr-cloud.launch
index 1cd8734f1a4..3ef940dcc66 100644
--- a/gradle/ide/eclipse/run-solr-cloud.launch
+++ b/gradle/ide/eclipse/run-solr-cloud.launch
@@ -16,5 +16,5 @@
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE"
value="org.eclipse.jetty.start.Main"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"
value="--module=http"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR"
value="@ECLIPSEPROJECTNAME@"/>
- <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Xms512m -Djetty.port=8983 -DSTOP.PORT=7983
-DSTOP.KEY=solrrock -Dlog4j.configurationFile="file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml" -Djetty.home="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -Djetty.base="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -
[...]
+ <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Xms512m -Dsolr.port.listen=8983 -DSTOP.PORT=7983
-DSTOP.KEY=solrrock -Dlog4j.configurationFile="file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml" -Djetty.home="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -Djetty.base="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server"
[...]
</launchConfiguration>
diff --git a/gradle/ide/eclipse/run-solr.launch
b/gradle/ide/eclipse/run-solr.launch
index 2cebe437425..985f08825d9 100644
--- a/gradle/ide/eclipse/run-solr.launch
+++ b/gradle/ide/eclipse/run-solr.launch
@@ -16,5 +16,5 @@
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE"
value="org.eclipse.jetty.start.Main"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"
value="--module=http"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR"
value="@ECLIPSEPROJECTNAME@"/>
- <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Xms512m -Djetty.port=8983 -DSTOP.PORT=7983
-DSTOP.KEY=solrrock -Dlog4j.configurationFile="file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml" -Djetty.home="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -Djetty.base="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" 
[...]
+ <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Xms512m -Dsolr.port.listen=8983 -DSTOP.PORT=7983
-DSTOP.KEY=solrrock -Dlog4j.configurationFile="file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml" -Djetty.home="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -Djetty.base="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server"&#
[...]
</launchConfiguration>
diff --git a/solr/bin/install_solr_service.sh b/solr/bin/install_solr_service.sh
index 59ca0e54d69..9f98b66e928 100755
--- a/solr/bin/install_solr_service.sh
+++ b/solr/bin/install_solr_service.sh
@@ -159,7 +159,7 @@ if [ $# -gt 1 ]; then
print_usage "Port is required when using the $1 option!"
exit 1
fi
- SOLR_PORT="$2"
+ SOLR_PORT_LISTEN="$2"
shift 2
;;
-f)
@@ -220,8 +220,8 @@ if [ -z "$SOLR_USER" ]; then
SOLR_USER=solr
fi
-if [ -z "$SOLR_PORT" ]; then
- SOLR_PORT=8983
+if [ -z "$SOLR_PORT_LISTEN" ]; then
+ SOLR_PORT_LISTEN=8983
fi
if [ -z "$SOLR_UPGRADE" ]; then
@@ -330,7 +330,7 @@ SOLR_PID_DIR=\"$SOLR_VAR_DIR\"
SOLR_HOME=\"$SOLR_VAR_DIR/data\"
LOG4J_PROPS=\"$SOLR_VAR_DIR/log4j2.xml\"
SOLR_LOGS_DIR=\"$SOLR_VAR_DIR/logs\"
-SOLR_PORT=\"$SOLR_PORT\"
+SOLR_PORT_LISTEN=\"$SOLR_PORT_LISTEN\"
" >> "/etc/default/$SOLR_SERVICE.in.sh"
fi
chown root:${SOLR_USER} "/etc/default/$SOLR_SERVICE.in.sh"
diff --git a/solr/bin/solr b/solr/bin/solr
index 5c9e1a3f438..bc2d475e6d2 100755
--- a/solr/bin/solr
+++ b/solr/bin/solr
@@ -155,9 +155,9 @@ fi
: "${SOLR_START_WAIT:=$SOLR_STOP_WAIT}" # defaulting to $SOLR_STOP_WAIT for
backwards compatibility reasons
# Store whether a solr port was explicitly provided, for the "solr stop"
command.
-PROVIDED_SOLR_PORT="${SOLR_PORT:-}"
-: "${SOLR_PORT:=8983}"
-export SOLR_PORT
+PROVIDED_SOLR_PORT="${SOLR_PORT_LISTEN:-}"
+: "${SOLR_PORT_LISTEN:=8983}"
+export SOLR_PORT_LISTEN
# test that Java exists, is executable and correct version
JAVA_VER=$("$JAVA" -version 2>&1)
@@ -382,8 +382,8 @@ function print_usage() {
echo " --host <host> Specify the hostname for this Solr instance"
echo ""
echo " -p/--port <port> Specify the port to start the Solr HTTP
listener on; default is 8983"
- echo " The specified port (SOLR_PORT) will also
be used to determine the stop port"
- echo " STOP_PORT=(\$SOLR_PORT-1000) and JMX RMI
listen port RMI_PORT=(\$SOLR_PORT+10000). "
+ echo " The specified port (SOLR_PORT_LISTEN) will
also be used to determine the stop port"
+ echo " STOP_PORT=(\$SOLR_PORT_LISTEN-1000) and
JMX RMI listen port RMI_PORT=(\$SOLR_PORT_LISTEN+10000). "
echo " For instance, if you set -p 8985, then the
STOP_PORT=7985 and RMI_PORT=18985"
echo ""
echo " --server-dir <dir> Specify the Solr server directory; defaults
to server"
@@ -475,21 +475,21 @@ function solr_pid_by_port() {
fi
}
-# extract the value of the -Djetty.port parameter from a running Solr process
-function jetty_port() {
+# extract the value of the -Dsolr.port.listen parameter from a running Solr
process
+function solr_port_listen() {
SOLR_PID="$1"
- SOLR_PROC=$(ps -fww -p "$SOLR_PID" | grep start\.jar | grep jetty\.port)
+ SOLR_PROC=$(ps -fww -p "$SOLR_PID" | grep start\.jar | grep
solr\.port\.listen)
IFS=' ' read -a proc_args <<< "$SOLR_PROC"
for arg in "${proc_args[@]}"
do
IFS='=' read -a pair <<< "$arg"
- if [ "${pair[0]}" == "-Djetty.port" ]; then
- local jetty_port="${pair[1]}"
+ if [ "${pair[0]}" == "-Dsolr.port.listen" ]; then
+ local solr_port="${pair[1]}"
break
fi
done
- echo "$jetty_port"
-} # end jetty_port func
+ echo "$solr_port"
+} # end solr_port_listen func
# run a Solr command-line tool using the SolrCLI class;
# useful for doing cross-platform work from the command-line using Java
@@ -511,13 +511,13 @@ function run_tool() {
function stop_solr() {
DIR="$1"
- SOLR_PORT="$2"
- THIS_STOP_PORT="${STOP_PORT:-$((SOLR_PORT - 1000))}"
+ SOLR_PORT_LISTEN="$2"
+ THIS_STOP_PORT="${STOP_PORT:-$((SOLR_PORT_LISTEN - 1000))}"
STOP_KEY="$3"
SOLR_PID="$4"
if [ -n "$SOLR_PID" ]; then
- echo -e "Sending stop command to Solr running on port $SOLR_PORT ...
waiting up to $SOLR_STOP_WAIT seconds to allow Jetty process $SOLR_PID to stop
gracefully."
+ echo -e "Sending stop command to Solr running on port $SOLR_PORT_LISTEN
... waiting up to $SOLR_STOP_WAIT seconds to allow Jetty process $SOLR_PID to
stop gracefully."
# shellcheck disable=SC2086,SC2164
"$JAVA" -Djava.io.tmpdir="$(cd "${TMPDIR:-${TEMP:-${TMP:-/tmp}}}"; pwd
-P)" $SOLR_SSL_OPTS $AUTHC_OPTS ${SOLR_TOOL_OPTS:-} \
-jar "$DIR/start.jar" "STOP.PORT=$THIS_STOP_PORT" "STOP.KEY=$STOP_KEY"
--stop || true
@@ -542,7 +542,7 @@ function stop_solr() {
fi
done) &
spinner $!
- rm -f "$SOLR_PID_DIR/solr-$SOLR_PORT.pid"
+ rm -f "$SOLR_PID_DIR/solr-$SOLR_PORT_LISTEN.pid"
else
echo -e "No Solr nodes found to stop."
exit 0
@@ -561,7 +561,7 @@ function stop_solr() {
echo -e "Solr process $SOLR_PID is still running; forcefully killing it
now."
kill -9 "$SOLR_PID"
echo "Killed process $SOLR_PID"
- rm -f "$SOLR_PID_DIR/solr-$SOLR_PORT.pid"
+ rm -f "$SOLR_PID_DIR/solr-$SOLR_PORT_LISTEN.pid"
sleep 10
fi
@@ -752,8 +752,8 @@ if [ $# -gt 0 ]; then
print_usage "$SCRIPT_CMD" "Hostname is required when using the
$1 option!"
exit 1
fi
- SOLR_HOST="$2"
- PASS_TO_RUN_EXAMPLE+=("--host" "$SOLR_HOST")
+ SOLR_HOST_ADVERTISE="$2"
+ PASS_TO_RUN_EXAMPLE+=("--solr.host.advertise"
"$SOLR_HOST_ADVERTISE")
shift 2
;;
-m|--memory)
@@ -770,9 +770,9 @@ if [ $# -gt 0 ]; then
print_usage "$SCRIPT_CMD" "Port number is required when using
the $1 option!"
exit 1
fi
- SOLR_PORT="$2"
- PROVIDED_SOLR_PORT="${SOLR_PORT}"
- PASS_TO_RUN_EXAMPLE+=("-p" "$SOLR_PORT")
+ SOLR_PORT_LISTEN="$2"
+ PROVIDED_SOLR_PORT="${SOLR_PORT_LISTEN}"
+ PASS_TO_RUN_EXAMPLE+=("-p" "$SOLR_PORT_LISTEN")
shift 2
;;
-z|--zk-host)
@@ -892,13 +892,21 @@ if $verbose ; then
"$JAVA" -version
fi
-if [ -n "${SOLR_HOST:-}" ]; then
- SOLR_HOST_ARG=("-Dhost=$SOLR_HOST")
-elif [[ "${SOLR_JETTY_HOST:-127.0.0.1}" == "127.0.0.1" ]]; then
+# Check for deprecated SOLR_JETTY_HOST and show warning
+if [[ -n "${SOLR_JETTY_HOST:-}" && -z "${SOLR_HOST_BIND:-}" ]]; then
+ echo "WARNING: SOLR_JETTY_HOST is deprecated and will be removed in a future
release."
+ echo "Please update your configuration to use SOLR_HOST_BIND instead of
SOLR_JETTY_HOST."
+ SOLR_HOST_BIND="$SOLR_JETTY_HOST"
+fi
+
+
+if [ -n "${SOLR_HOST_ADVERTISE:-}" ]; then
+ SOLR_HOST_ADVERTISE_ARG=("-Dsolr.host.advertise=$SOLR_HOST_ADVERTISE")
+elif [[ "${SOLR_HOST_BIND:-127.0.0.1}" == "127.0.0.1" ]]; then
# Jetty will only bind on localhost interface, so nodes must advertise
themselves with localhost
- SOLR_HOST_ARG=("-Dhost=localhost")
+ SOLR_HOST_ADVERTISE_ARG=("-Dsolr.host.advertise=localhost")
else
- SOLR_HOST_ARG=()
+ SOLR_HOST_ADVERTISE_ARG=()
fi
: "${STOP_KEY:=solrrocks}"
@@ -910,7 +918,7 @@ if [[ "$SCRIPT_CMD" == "stop" ]]; then
find "$SOLR_PID_DIR" -name "solr-*.pid" -type f | while read PIDF
do
NEXT_PID=$(cat "$PIDF")
- port=$(jetty_port "$NEXT_PID")
+ port=$(solr_port_listen "$NEXT_PID")
if [ "$port" != "" ]; then
stop_solr "$SOLR_SERVER_DIR" "$port" "$STOP_KEY" "$NEXT_PID"
none_stopped=false
@@ -932,7 +940,7 @@ if [[ "$SCRIPT_CMD" == "stop" ]]; then
PID="$(cat "$(find "$SOLR_PID_DIR" -name "solr-*.pid" -type f)")"
CHECK_PID=$(ps -o pid='' -p "$PID" | tr -d ' ')
if [ "$CHECK_PID" != "" ]; then
- port=$(jetty_port "$CHECK_PID")
+ port=$(solr_port_listen "$CHECK_PID")
if [ "$port" != "" ]; then
stop_solr "$SOLR_SERVER_DIR" "$port" "$STOP_KEY" "$CHECK_PID"
none_stopped=false
@@ -956,11 +964,11 @@ if [ -n "${SOLR_PORT_ADVERTISE:-}" ]; then
SCRIPT_SOLR_OPTS+=("-Dsolr.port.advertise=$SOLR_PORT_ADVERTISE")
fi
-if [ -n "${SOLR_JETTY_HOST:-}" ]; then
- SCRIPT_SOLR_OPTS+=("-Dsolr.jetty.host=$SOLR_JETTY_HOST")
+if [ -n "${SOLR_HOST_BIND:-}" ]; then
+ SCRIPT_SOLR_OPTS+=("-Dsolr.host.bind=$SOLR_HOST_BIND")
fi
-: "${STOP_PORT:=$((SOLR_PORT - 1000))}"
+: "${STOP_PORT:=$((SOLR_PORT_LISTEN - 1000))}"
if [ "$SCRIPT_CMD" == "start" ] || [ "$SCRIPT_CMD" == "restart" ] ; then
if [[ $EUID -eq 0 ]] && [[ "$FORCE" == "false" ]] ; then
@@ -972,30 +980,30 @@ fi
if [[ "$SCRIPT_CMD" == "start" ]]; then
# see if Solr is already running
- SOLR_PID=$(solr_pid_by_port "$SOLR_PORT")
+ SOLR_PID=$(solr_pid_by_port "$SOLR_PORT_LISTEN")
if [ -z "${SOLR_PID:-}" ]; then
# not found using the pid file ... but use ps to ensure not found
- SOLR_PID=$(ps auxww | grep start\.jar | awk "/\-Djetty\.port=$SOLR_PORT/"'
{print $2}' | sort -r)
+ SOLR_PID=$(ps auxww | grep start\.jar | awk
"/\-Dsolr\.port\.listen=$SOLR_PORT_LISTEN/"' {print $2}' | sort -r)
fi
if [ -n "${SOLR_PID:-}" ]; then
- echo -e "\nPort $SOLR_PORT is already being used by another process (pid:
$SOLR_PID)\nPlease choose a different port using the -p option.\n"
+ echo -e "\nPort $SOLR_PORT_LISTEN is already being used by another process
(pid: $SOLR_PID)\nPlease choose a different port using the -p option.\n"
exit 1
fi
else
# either stop or restart
# see if Solr is already running
- SOLR_PID=$(solr_pid_by_port "$SOLR_PORT")
+ SOLR_PID=$(solr_pid_by_port "$SOLR_PORT_LISTEN")
if [ -z "$SOLR_PID" ]; then
# not found using the pid file ... but use ps to ensure not found
- SOLR_PID=$(ps auxww | grep start\.jar | awk "/\-Djetty\.port=$SOLR_PORT/"'
{print $2}' | sort -r)
+ SOLR_PID=$(ps auxww | grep start\.jar | awk
"/\-Djetty\.port=$SOLR_PORT_LISTEN/"' {print $2}' | sort -r)
fi
if [ "$SOLR_PID" != "" ]; then
- stop_solr "$SOLR_SERVER_DIR" "$SOLR_PORT" "$STOP_KEY" "$SOLR_PID"
+ stop_solr "$SOLR_SERVER_DIR" "$SOLR_PORT_LISTEN" "$STOP_KEY" "$SOLR_PID"
else
if [ "$SCRIPT_CMD" == "stop" ]; then
- echo -e "No process found for Solr node running on port $SOLR_PORT"
+ echo -e "No process found for Solr node running on port
$SOLR_PORT_LISTEN"
exit 1
fi
fi
@@ -1072,8 +1080,8 @@ if [ "${SOLR_MODE:-}" == 'solrcloud' ]; then
if [ -n "${ZK_HOST:-}" ]; then
CLOUD_MODE_OPTS+=("-DzkHost=$ZK_HOST")
else
- if [ $SOLR_PORT -gt 64535 ]; then
- echo -e "\nZK_HOST is not set and Solr port is $SOLR_PORT, which would
result in an invalid embedded Zookeeper port!\n"
+ if [ $SOLR_PORT_LISTEN -gt 64535 ]; then
+ echo -e "\nZK_HOST is not set and Solr port is $SOLR_PORT_LISTEN, which
would result in an invalid embedded Zookeeper port!\n"
exit 1
fi
if $verbose ; then
@@ -1111,7 +1119,7 @@
IP_ACL_OPTS=("-Dsolr.jetty.inetaccess.includes=${SOLR_IP_ALLOWLIST:-}" \
if [ "${ENABLE_REMOTE_JMX_OPTS:-false}" == "true" ]; then
if [ -z "$RMI_PORT" ]; then
- RMI_PORT=$((SOLR_PORT + 10000))
+ RMI_PORT=$((SOLR_PORT_LISTEN + 10000))
if [ $RMI_PORT -gt 65535 ]; then
echo -e "\nRMI_PORT is $RMI_PORT, which is invalid!\n"
exit 1
@@ -1204,8 +1212,8 @@ function start_solr() {
# If SSL-related system props are set, add them to SCRIPT_SOLR_OPTS
if [ "$SOLR_SSL_ENABLED" == "true" ]; then
- # If using SSL and solr.jetty.https.port not set explicitly, use the
jetty.port
- SSL_PORT_PROP="-Dsolr.jetty.https.port=$SOLR_PORT"
+ # If using SSL and solr.jetty.https.port not set explicitly, use the
solr.port.listen
+ SSL_PORT_PROP="-Dsolr.jetty.https.port=$SOLR_PORT_LISTEN"
SCRIPT_SOLR_OPTS+=($SOLR_SSL_OPTS "$SSL_PORT_PROP")
fi
@@ -1233,8 +1241,8 @@ function start_solr() {
echo -e " JAVA = $JAVA"
echo -e " SOLR_SERVER_DIR = $SOLR_SERVER_DIR"
echo -e " SOLR_HOME = $SOLR_HOME"
- echo -e " SOLR_HOST = ${SOLR_HOST:-}"
- echo -e " SOLR_PORT = $SOLR_PORT"
+ echo -e " SOLR_HOST_ADVERTISE= ${SOLR_HOST_ADVERTISE:-}"
+ echo -e " SOLR_PORT_LISTEN = $SOLR_PORT_LISTEN"
echo -e " STOP_PORT = $STOP_PORT"
echo -e " JAVA_MEM_OPTS = ${JAVA_MEM_OPTS[*]}"
echo -e " GC_TUNE = ${GC_TUNE_ARR[*]}"
@@ -1288,11 +1296,11 @@ function start_solr() {
# shellcheck disable=SC2164
SOLR_START_OPTS=('-server' "${JAVA_MEM_OPTS[@]}" "${GC_TUNE_ARR[@]}"
"${GC_LOG_OPTS[@]}" "${IP_ACL_OPTS[@]}" \
"${REMOTE_JMX_OPTS[@]}" "${CLOUD_MODE_OPTS[@]}"
-Dsolr.logs.dir="$SOLR_LOGS_DIR" \
- "-Djetty.port=$SOLR_PORT" "-DSTOP.PORT=$stop_port" "-DSTOP.KEY=$STOP_KEY" \
+ "-Dsolr.port.listen=$SOLR_PORT_LISTEN" "-DSTOP.PORT=$stop_port"
"-DSTOP.KEY=$STOP_KEY" \
"-Djava.io.tmpdir=$(cd "${TMPDIR:-${TEMP:-${TMP:-/tmp}}}"; pwd -P)" \
# '-OmitStackTraceInFastThrow' ensures stack traces in errors,
# users who don't care about useful error msgs can override in SOLR_OPTS
with +OmitStackTraceInFastThrow
- "${SOLR_HOST_ARG[@]}" "-Duser.timezone=$SOLR_TIMEZONE"
"-XX:-OmitStackTraceInFastThrow" \
+ "${SOLR_HOST_ADVERTISE_ARG[@]}" "-Duser.timezone=$SOLR_TIMEZONE"
"-XX:-OmitStackTraceInFastThrow" \
# '+CrashOnOutOfMemoryError' ensures that Solr crashes whenever
# OOME is thrown. Program operation after OOME is unpredictable.
"-XX:+CrashOnOutOfMemoryError"
"-XX:ErrorFile=${SOLR_LOGS_DIR}/jvm_crash_%p.log" \
@@ -1318,7 +1326,7 @@ function start_solr() {
# shellcheck disable=SC2086
nohup "$JAVA" "${SOLR_START_OPTS[@]}" $SOLR_ADDL_ARGS
-Dsolr.log.muteconsole \
-jar start.jar "${SOLR_JETTY_CONFIG[@]}" $SOLR_JETTY_ADDL_CONFIG \
- 1>"$SOLR_LOGS_DIR/solr-$SOLR_PORT-console.log" 2>&1 & echo $! >
"$SOLR_PID_DIR/solr-$SOLR_PORT.pid"
+ 1>"$SOLR_LOGS_DIR/solr-$SOLR_PORT_LISTEN-console.log" 2>&1 & echo $! >
"$SOLR_PID_DIR/solr-$SOLR_PORT_LISTEN.pid"
# Check and warn about low entropy on Linux systems
if [ -e /proc/sys/kernel/random ]; then
@@ -1345,34 +1353,34 @@ function start_solr() {
# no lsof on cygwin though
if lsof -v 2>&1 | grep -q revision; then
- echo -n "Waiting up to $SOLR_START_WAIT seconds to see Solr running on
port $SOLR_PORT"
+ echo -n "Waiting up to $SOLR_START_WAIT seconds to see Solr running on
port $SOLR_PORT_LISTEN"
# Launch in a subshell to show the spinner
(loops=0
while true
do
- running=$(lsof -t -PniTCP:$SOLR_PORT -sTCP:LISTEN || :)
+ running=$(lsof -t -PniTCP:$SOLR_PORT_LISTEN -sTCP:LISTEN || :)
if [ -z "${running:-}" ]; then
slept=$((loops * 2))
if [ $slept -lt $SOLR_START_WAIT ]; then
sleep 2
loops=$((loops+1))
else
- echo -e "Still not seeing Solr listening on $SOLR_PORT after
$SOLR_START_WAIT seconds!"
+ echo -e "Still not seeing Solr listening on $SOLR_PORT_LISTEN
after $SOLR_START_WAIT seconds!"
tail -30 "$SOLR_LOGS_DIR/solr.log"
exit # subshell!
fi
else
- SOLR_PID=$(ps auxww | grep start\.jar | awk
"/\-Djetty\.port=$SOLR_PORT/"' {print $2}' | sort -r)
- echo -e "\nStarted Solr server on port $SOLR_PORT (pid=$SOLR_PID).
Happy searching!\n"
+ SOLR_PID=$(ps auxww | grep start\.jar | awk
"/\-Dsolr\.port\.listen=$SOLR_PORT_LISTEN/"' {print $2}' | sort -r)
+ echo -e "\nStarted Solr server on port $SOLR_PORT_LISTEN
(pid=$SOLR_PID). Happy searching!\n"
exit # subshell!
fi
done) &
spinner $!
else
- echo -e "NOTE: Please install lsof as this script needs it to determine
if Solr is listening on port $SOLR_PORT."
+ echo -e "NOTE: Please install lsof as this script needs it to determine
if Solr is listening on port $SOLR_PORT_LISTEN."
sleep 10
- SOLR_PID=$(ps auxww | grep start\.jar | awk
"/\-Djetty\.port=$SOLR_PORT/"' {print $2}' | sort -r)
- echo -e "\nStarted Solr server on port $SOLR_PORT (pid=$SOLR_PID). Happy
searching!\n"
+ SOLR_PID=$(ps auxww | grep start\.jar | awk
"/\-Dsolr\.port\.listen=$SOLR_PORT_LISTEN/"' {print $2}' | sort -r)
+ echo -e "\nStarted Solr server on port $SOLR_PORT_LISTEN
(pid=$SOLR_PID). Happy searching!\n"
return;
fi
fi
diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd
index 70a05e72e4a..76bcab0ba83 100755
--- a/solr/bin/solr.cmd
+++ b/solr/bin/solr.cmd
@@ -243,8 +243,17 @@ IF DEFINED SOLR_AUTHENTICATION_CLIENT_BUILDER (
)
set "AUTHC_OPTS=%AUTHC_CLIENT_BUILDER_ARG% %SOLR_AUTHENTICATION_OPTS%"
-IF "%SOLR_JETTY_HOST%"=="" (
- set "SOLR_JETTY_HOST=127.0.0.1"
+REM Check for deprecated SOLR_JETTY_HOST and show warning
+IF NOT "%SOLR_JETTY_HOST%"=="" (
+ IF "%SOLR_HOST_BIND%"=="" (
+ echo WARNING: SOLR_JETTY_HOST is deprecated and will be removed in a
future release.
+ echo Please update your configuration to use SOLR_HOST_BIND instead of
SOLR_JETTY_HOST.
+ set "SOLR_HOST_BIND=%SOLR_JETTY_HOST%"
+ )
+)
+
+IF "%SOLR_HOST_BIND%"=="" (
+ set "SOLR_HOST_BIND=127.0.0.1"
)
@@ -291,8 +300,8 @@ goto err
@echo --host host Specify the hostname for this Solr instance
@echo.
@echo -p/--port port Specify the port to start the Solr HTTP listener on;
default is 8983
-@echo The specified port (SOLR_PORT) will also be used to
determine the stop port
-@echo STOP_PORT=(%%SOLR_PORT%%-1000) and JMX RMI listen port
RMI_PORT=(%%SOLR_PORT%%+10000).
+@echo The specified port (SOLR_PORT_LISTEN) will also be
used to determine the stop port
+@echo STOP_PORT=(%%SOLR_PORT_LISTEN%%-1000) and JMX RMI
listen port RMI_PORT=(%%SOLR_PORT_LISTEN%%+10000).
@echo For instance, if you set -p 8985, then the
STOP_PORT=7985 and RMI_PORT=18985
@echo.
@echo --server-dir dir Specify the Solr server directory; defaults to server
@@ -567,7 +576,7 @@ IF "%firstChar%"=="-" (
goto invalid_cmd_line
)
-set SOLR_PORT=%~2
+set SOLR_PORT_LISTEN=%~2
set "PASS_TO_RUN_EXAMPLE=-p %~2 !PASS_TO_RUN_EXAMPLE!"
SHIFT
SHIFT
@@ -714,14 +723,14 @@ IF "%verbose%"=="1" (
@echo.
)
-IF NOT "%SOLR_HOST%"=="" (
- set SOLR_HOST_ARG=-Dhost=%SOLR_HOST%
-) ELSE IF "%SOLR_JETTY_HOST%"=="" (
- set "SOLR_HOST_ARG=-Dhost=localhost"
-) ELSE IF "%SOLR_JETTY_HOST%"=="127.0.0.1" (
- set "SOLR_HOST_ARG=-Dhost=localhost"
+IF NOT "%SOLR_HOST_ADVERTISE%"=="" (
+ set SOLR_HOST_ADVERTISE_ARG=-Dsolr.host.advertise=%SOLR_HOST_ADVERTISE%
+) ELSE IF "%SOLR_HOST_BIND%"=="" (
+ set "SOLR_HOST_ADVERTISE_ARG=-Dsolr.host.advertise=localhost"
+) ELSE IF "%SOLR_HOST_BIND%"=="127.0.0.1" (
+ set "SOLR_HOST_ADVERTISE_ARG=-Dsolr.host.advertise=localhost"
) ELSE (
- set SOLR_HOST_ARG=
+ set SOLR_HOST_ADVERTISE_ARG=
)
set SCRIPT_SOLR_OPTS=
@@ -756,7 +765,7 @@ IF NOT "%EXAMPLE%"=="" (
set IS_RESTART=0
IF "%SCRIPT_CMD%"=="restart" (
- IF "%SOLR_PORT%"=="" (
+ IF "%SOLR_PORT_LISTEN%"=="" (
set "SCRIPT_ERROR=Must specify the port when trying to restart Solr."
goto err
)
@@ -772,7 +781,7 @@ IF "%SCRIPT_CMD%"=="start" goto start_solr
IF "%SOLR_STOP_WAIT%"=="" (
set SOLR_STOP_WAIT=180
)
-IF "%SOLR_PORT%"=="" (
+IF "%SOLR_PORT_LISTEN%"=="" (
IF "%STOP_ALL%"=="1" (
REM Stop all running Solr instances
set found_it=0
@@ -783,7 +792,7 @@ IF "%SOLR_PORT%"=="" (
for /f "tokens=2,5" %%j in ('netstat -aon ^| find "TCP " ^| find ":0 "
^| find ":!SOME_SOLR_PORT! "') do (
@REM j is the ip:port and k is the pid
IF NOT "%%k"=="0" (
- IF "%%j"=="%SOLR_JETTY_HOST%:!SOME_SOLR_PORT!" (
+ IF "%%j"=="%SOLR_HOST_BIND%:!SOME_SOLR_PORT!" (
set found_it=1
@echo Stopping Solr process %%k running on port !SOME_SOLR_PORT!
IF "%STOP_PORT%"=="" (
@@ -814,14 +823,14 @@ IF "%SOLR_PORT%"=="" (
) ELSE (
REM Stop Solr running on specific port
set found_it=0
- For /f "tokens=2,5" %%M in ('netstat -nao ^| find "TCP " ^| find ":0 " ^|
find ":%SOLR_PORT% "') do (
+ For /f "tokens=2,5" %%M in ('netstat -nao ^| find "TCP " ^| find ":0 " ^|
find ":%SOLR_PORT_LISTEN% "') do (
IF NOT "%%N"=="0" (
- IF "%%M"=="%SOLR_JETTY_HOST%:%SOLR_PORT%" (
+ IF "%%M"=="%SOLR_HOST_BIND%:%SOLR_PORT_LISTEN%" (
set found_it=1
- @echo Stopping Solr process %%N running on port %SOLR_PORT%
- IF "%STOP_PORT%"=="" set /A STOP_PORT=%SOLR_PORT% - 1000
+ @echo Stopping Solr process %%N running on port %SOLR_PORT_LISTEN%
+ IF "%STOP_PORT%"=="" set /A STOP_PORT=%SOLR_PORT_LISTEN% - 1000
"%JAVA%" %SOLR_SSL_OPTS% %SOLR_TOOL_OPTS%
-Djetty.home="%SOLR_SERVER_DIR%" -jar "%SOLR_SERVER_DIR%\start.jar"
%SOLR_JETTY_CONFIG% STOP.PORT=!STOP_PORT! STOP.KEY=%STOP_KEY% --stop
- del "%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port
+ del "%SOLR_TIP%"\bin\solr-%SOLR_PORT_LISTEN%.port
REM wait for the process to terminate
CALL :wait_for_process_exit %%N !SOLR_STOP_WAIT!
REM Kill it if it is still running after the graceful shutdown
@@ -833,7 +842,7 @@ IF "%SOLR_PORT%"=="" (
)
)
)
- if "!found_it!"=="0" echo No Solr found running on port %SOLR_PORT%
+ if "!found_it!"=="0" echo No Solr found running on port %SOLR_PORT_LISTEN%
)
IF "!IS_RESTART!"=="0" goto done
@@ -870,22 +879,22 @@ IF NOT "%TMP_SOLR_HOME%"=="%SOLR_HOME%" (
)
-IF "%SOLR_PORT%"=="" set SOLR_PORT=8983
-IF "%STOP_PORT%"=="" set /A STOP_PORT=%SOLR_PORT% - 1000
+IF "%SOLR_PORT_LISTEN%"=="" set SOLR_PORT_LISTEN=8983
+IF "%STOP_PORT%"=="" set /A STOP_PORT=%SOLR_PORT_LISTEN% - 1000
IF DEFINED SOLR_PORT_ADVERTISE (
set "SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS%
-Dsolr.port.advertise=%SOLR_PORT_ADVERTISE%"
)
-IF DEFINED SOLR_JETTY_HOST (
- set "SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% -Dsolr.jetty.host=%SOLR_JETTY_HOST%"
+IF DEFINED SOLR_HOST_BIND (
+ set "SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% -Dsolr.host.bind=%SOLR_HOST_BIND%"
)
REM Make sure Solr is not running using netstat
-For /f "tokens=2,5" %%j in ('netstat -aon ^| find "TCP " ^| find ":0 " ^| find
":%SOLR_PORT% "') do (
+For /f "tokens=2,5" %%j in ('netstat -aon ^| find "TCP " ^| find ":0 " ^| find
":%SOLR_PORT_LISTEN% "') do (
IF NOT "%%k"=="0" (
- IF "%%j"=="%SOLR_JETTY_HOST%:%SOLR_PORT%" (
- set "SCRIPT_ERROR=Process %%k is already listening on port %SOLR_PORT%.
If this is Solr, please stop it first before starting (or use restart). If this
is not Solr, then please choose a different port using -p PORT"
+ IF "%%j"=="%SOLR_HOST_BIND%:%SOLR_PORT_LISTEN%" (
+ set "SCRIPT_ERROR=Process %%k is already listening on port
%SOLR_PORT_LISTEN%. If this is Solr, please stop it first before starting (or
use restart). If this is not Solr, then please choose a different port using -p
PORT"
goto err
)
)
@@ -919,8 +928,8 @@ IF "%SOLR_MODE%"=="solrcloud" (
IF NOT "%ZK_HOST%"=="" (
set "CLOUD_MODE_OPTS=!CLOUD_MODE_OPTS! -DzkHost=%ZK_HOST%"
) ELSE (
- IF %SOLR_PORT% GTR 64535 (
- set "SCRIPT_ERROR=ZK_HOST is not set and Solr port is %SOLR_PORT%, which
would result in an invalid embedded Zookeeper port!"
+ IF %SOLR_PORT_LISTEN% GTR 64535 (
+ set "SCRIPT_ERROR=ZK_HOST is not set and Solr port is
%SOLR_PORT_LISTEN%, which would result in an invalid embedded Zookeeper port!"
goto err
)
IF "%verbose%"=="1" echo Configuring SolrCloud to launch an embedded
Zookeeper using -Dsolr.zookeeper.server.enabled
@@ -960,7 +969,7 @@ set
IP_ACL_OPTS=-Dsolr.jetty.inetaccess.includes="%SOLR_IP_ALLOWLIST%" ^
REM These are useful for attaching remove profilers like VisualVM/JConsole
IF "%ENABLE_REMOTE_JMX_OPTS%"=="true" (
IF "!RMI_PORT!"=="" (
- set /A RMI_PORT=%SOLR_PORT%+10000
+ set /A RMI_PORT=%SOLR_PORT_LISTEN%+10000
IF !RMI_PORT! GTR 65535 (
set "SCRIPT_ERROR=RMI_PORT is !RMI_PORT!, which is invalid!"
goto err
@@ -973,7 +982,7 @@ IF "%ENABLE_REMOTE_JMX_OPTS%"=="true" (
-Dcom.sun.management.jmxremote.port=!RMI_PORT! ^
-Dcom.sun.management.jmxremote.rmi.port=!RMI_PORT!
- IF NOT "%SOLR_HOST%"=="" set REMOTE_JMX_OPTS=!REMOTE_JMX_OPTS!
-Djava.rmi.server.hostname=%SOLR_HOST%
+ IF NOT "%SOLR_HOST_ADVERTISE%"=="" set REMOTE_JMX_OPTS=!REMOTE_JMX_OPTS!
-Djava.rmi.server.hostname=%SOLR_HOST_ADVERTISE%
) ELSE (
set REMOTE_JMX_OPTS=
)
@@ -1016,13 +1025,13 @@ IF "%verbose%"=="1" (
CALL :safe_echo " JAVA = %JAVA%"
CALL :safe_echo " SOLR_SERVER_DIR = %SOLR_SERVER_DIR%"
CALL :safe_echo " SOLR_HOME = %SOLR_HOME%"
- @echo SOLR_HOST = %SOLR_HOST%
- @echo SOLR_PORT = %SOLR_PORT%
- @echo STOP_PORT = %STOP_PORT%
- @echo SOLR_JAVA_MEM = %SOLR_JAVA_MEM%
- @echo GC_TUNE = !GC_TUNE!
- @echo GC_LOG_OPTS = %GC_LOG_OPTS%
- @echo SOLR_TIMEZONE = %SOLR_TIMEZONE%
+ @echo SOLR_HOST_ADVERTISE = %SOLR_HOST_ADVERTISE%
+ @echo SOLR_PORT_LISTEN = %SOLR_PORT_LISTEN%
+ @echo STOP_PORT = %STOP_PORT%
+ @echo SOLR_JAVA_MEM = %SOLR_JAVA_MEM%
+ @echo GC_TUNE = !GC_TUNE!
+ @echo GC_LOG_OPTS = %GC_LOG_OPTS%
+ @echo SOLR_TIMEZONE = %SOLR_TIMEZONE%
IF "%SOLR_MODE%"=="solrcloud" (
@echo CLOUD_MODE_OPTS = %CLOUD_MODE_OPTS%
@@ -1073,12 +1082,12 @@ IF NOT "!CLOUD_MODE_OPTS!"=="" set
"START_OPTS=%START_OPTS% !CLOUD_MODE_OPTS!"
IF NOT "!IP_ACL_OPTS!"=="" set "START_OPTS=%START_OPTS% !IP_ACL_OPTS!"
IF NOT "!REMOTE_JMX_OPTS!"=="" set "START_OPTS=%START_OPTS% !REMOTE_JMX_OPTS!"
IF NOT "%SOLR_ADDL_ARGS%"=="" set "START_OPTS=%START_OPTS% %SOLR_ADDL_ARGS%"
-IF NOT "%SOLR_HOST_ARG%"=="" set "START_OPTS=%START_OPTS% %SOLR_HOST_ARG%"
+IF NOT "%SOLR_HOST_ADVERTISE_ARG%"=="" set "START_OPTS=%START_OPTS%
%SOLR_HOST_ADVERTISE_ARG%"
IF NOT "%SCRIPT_SOLR_OPTS%"=="" set "START_OPTS=%START_OPTS%
%SCRIPT_SOLR_OPTS%"
IF NOT "%SOLR_OPTS_INTERNAL%"=="" set "START_OPTS=%START_OPTS%
%SOLR_OPTS_INTERNAL%"
IF NOT "!SECURITY_MANAGER_OPTS!"=="" set "START_OPTS=%START_OPTS%
!SECURITY_MANAGER_OPTS!"
IF "%SOLR_SSL_ENABLED%"=="true" (
- set "SSL_PORT_PROP=-Dsolr.jetty.https.port=%SOLR_PORT%"
+ set "SSL_PORT_PROP=-Dsolr.jetty.https.port=%SOLR_PORT_LISTEN%"
set "START_OPTS=%START_OPTS% %SOLR_SSL_OPTS% !SSL_PORT_PROP!"
)
@@ -1117,22 +1126,22 @@ IF NOT EXIST "%SOLR_SERVER_DIR%\tmp" (
IF "%FG%"=="1" (
REM run solr in the foreground
- title "Solr-%SOLR_PORT%"
- echo %SOLR_PORT%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port
+ title "Solr-%SOLR_PORT_LISTEN%"
+ echo %SOLR_PORT_LISTEN%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT_LISTEN%.port
"%JAVA%" %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% ^
-Dlog4j.configurationFile="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT!
-DSTOP.KEY=%STOP_KEY% ^
-Dsolr.solr.home="%SOLR_HOME%" -Dsolr.install.dir="%SOLR_TIP%"
-Dsolr.install.symDir="%SOLR_TIP%" ^
- -Djetty.port=%SOLR_PORT% -Djetty.home="%SOLR_SERVER_DIR%" ^
+ -Dsolr.port.listen=%SOLR_PORT_LISTEN% -Djetty.home="%SOLR_SERVER_DIR%" ^
-Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar
%SOLR_JETTY_CONFIG% "%SOLR_JETTY_ADDL_CONFIG%"
) ELSE (
- START /B "Solr-%SOLR_PORT%" /D "%SOLR_SERVER_DIR%" ^
+ START /B "Solr-%SOLR_PORT_LISTEN%" /D "%SOLR_SERVER_DIR%" ^
"%JAVA%" %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% ^
-Dlog4j.configurationFile="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT!
-DSTOP.KEY=%STOP_KEY% ^
-Dsolr.log.muteconsole ^
-Dsolr.solr.home="%SOLR_HOME%" -Dsolr.install.dir="%SOLR_TIP%"
-Dsolr.install.symDir="%SOLR_TIP%" ^
- -Djetty.port=%SOLR_PORT% -Djetty.home="%SOLR_SERVER_DIR%" ^
- -Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar
%SOLR_JETTY_CONFIG% "%SOLR_JETTY_ADDL_CONFIG%" >
"!SOLR_LOGS_DIR!\solr-%SOLR_PORT%-console.log"
- echo %SOLR_PORT%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port
+ -Dsolr.port.listen=%SOLR_PORT_LISTEN% -Djetty.home="%SOLR_SERVER_DIR%" ^
+ -Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar
%SOLR_JETTY_CONFIG% "%SOLR_JETTY_ADDL_CONFIG%" >
"!SOLR_LOGS_DIR!\solr-%SOLR_PORT_LISTEN%-console.log"
+ echo %SOLR_PORT_LISTEN%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT_LISTEN%.port
IF "!SOLR_START_WAIT!"=="" (
set SOLR_START_WAIT=180
diff --git a/solr/bin/solr.in.cmd b/solr/bin/solr.in.cmd
index 7449de2cd9d..3e63af456ce 100755
--- a/solr/bin/solr.in.cmd
+++ b/solr/bin/solr.in.cmd
@@ -85,7 +85,7 @@ REM to monitor the JVM hosting Solr; set to "false" to
disable that behavior
REM (false is recommended in production environments)
REM set ENABLE_REMOTE_JMX_OPTS=false
-REM The script will use SOLR_PORT+10000 for the RMI_PORT or you can set it here
+REM The script will use SOLR_PORT_LISTEN+10000 for the RMI_PORT or you can set
it here
REM set RMI_PORT=18983
REM Anything you add to the SOLR_OPTS variable will be included in the java
@@ -117,7 +117,7 @@ REM Enables jetty request log for all requests
REM set SOLR_REQUESTLOG_ENABLED=true
REM Sets the port Solr binds to, default is 8983
-REM set SOLR_PORT=8983
+REM set SOLR_PORT_LISTEN=8983
REM Sets the network interface the Solr binds to. To prevent administrators
from
REM accidentally exposing Solr more widely than intended, this defaults to
127.0.0.1.
@@ -125,7 +125,7 @@ REM Administrators should think carefully about their
deployment environment and
REM set this value as narrowly as required before going to production. In
REM environments where security is not a concern, 0.0.0.0 can be used to allow
REM Solr to accept connections on all network interfaces.
-REM set SOLR_JETTY_HOST=127.0.0.1
+REM set SOLR_HOST_BIND=127.0.0.1
REM Sets the network interface the Embedded ZK binds to.
REM set SOLR_ZOOKEEPER_EMBEDDED_HOST=127.0.0.1
diff --git a/solr/bin/solr.in.sh b/solr/bin/solr.in.sh
index 3ec30035876..8c50528b6f9 100644
--- a/solr/bin/solr.in.sh
+++ b/solr/bin/solr.in.sh
@@ -91,7 +91,7 @@
# (false is recommended in production environments)
#ENABLE_REMOTE_JMX_OPTS="false"
-# The script will use SOLR_PORT+10000 for the RMI_PORT or you can set it here
+# The script will use SOLR_PORT_LISTEN+10000 for the RMI_PORT or you can set
it here
# RMI_PORT=18983
# Anything you add to the SOLR_OPTS variable will be included in the java
@@ -132,7 +132,7 @@
#SOLR_REQUESTLOG_ENABLED=true
# Sets the port Solr binds to, default is 8983
-#SOLR_PORT=8983
+#SOLR_PORT_LISTEN=8983
# Restrict access to solr by IP address.
# Specify a comma-separated list of addresses or networks, for example:
@@ -150,7 +150,7 @@
# set this value as narrowly as required before going to production. In
# environments where security is not a concern, 0.0.0.0 can be used to allow
# Solr to accept connections on all network interfaces.
-#SOLR_JETTY_HOST="127.0.0.1"
+#SOLR_HOST_BIND="127.0.0.1"
# Sets the network interface the Embedded ZK binds to.
#SOLR_ZOOKEEPER_EMBEDDED_HOST="127.0.0.1"
diff --git a/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
b/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
index 340d0fb13a6..59937f79017 100644
--- a/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
+++ b/solr/core/src/java/org/apache/solr/cli/CLIUtils.java
@@ -72,7 +72,8 @@ public final class CLIUtils {
// note that ENV_VAR syntax (and the env vars too) are mapped to env.var
sys props
String scheme = EnvUtils.getProperty("solr.url.scheme", "http");
String host = EnvUtils.getProperty("solr.host", "localhost");
- String port = EnvUtils.getProperty("jetty.port", "8983"); // from
SOLR_PORT env
+ String port = EnvUtils.getProperty("solr.port.listen", "8983");
+
return String.format(Locale.ROOT, "%s://%s:%s",
scheme.toLowerCase(Locale.ROOT), host, port);
}
diff --git a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
index 1c6deb6ffe9..aecc0676ebb 100644
--- a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java
@@ -306,7 +306,8 @@ public class RunExampleTool extends ToolBase {
CLIUtils.getCliOptionOrPropValue(cli, CommonCLIOptions.ZK_HOST_OPTION,
"zkHost", null);
int port =
Integer.parseInt(
- cli.getOptionValue(PORT_OPTION,
System.getenv().getOrDefault("SOLR_PORT", "8983")));
+ cli.getOptionValue(
+ PORT_OPTION, System.getenv().getOrDefault("SOLR_PORT_LISTEN",
"8983")));
Map<String, Object> nodeStatus = startSolr(solrHomeDir, isCloudMode, cli,
port, zkHost, 30);
String solrUrl = CLIUtils.normalizeSolrUrl((String)
nodeStatus.get("baseUrl"), false);
@@ -520,9 +521,11 @@ public class RunExampleTool extends ToolBase {
int[] cloudPorts = new int[] {8983, 7574, 8984, 7575};
int defaultPort =
Integer.parseInt(
- cli.getOptionValue(PORT_OPTION,
System.getenv().getOrDefault("SOLR_PORT", "8983")));
+ cli.getOptionValue(
+ PORT_OPTION, System.getenv().getOrDefault("SOLR_PORT_LISTEN",
"8983")));
if (defaultPort != 8983) {
- // Override the old default port numbers if user has started the example
overriding SOLR_PORT
+ // Override the old default port numbers if user has started the example
overriding
+ // SOLR_PORT_LISTEN
cloudPorts = new int[] {defaultPort, defaultPort + 1, defaultPort + 2,
defaultPort + 3};
}
diff --git a/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java
b/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java
index f45bc5dbd66..5dfdad3a5f8 100644
--- a/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java
+++ b/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java
@@ -61,10 +61,11 @@ public class SolrProcessManager {
if (Constants.WINDOWS) {
pidToWindowsCommandLineMap.putAll(commandLinesWindows());
}
+
pidProcessMap =
ProcessHandle.allProcesses()
.filter(p -> p.info().command().orElse("").contains("java"))
- .filter(p -> commandLine(p).orElse("").contains("-Djetty.port="))
+ .filter(p ->
commandLine(p).orElse("").contains("-Dsolr.port.listen="))
.filter(
p -> !enableTestingMode ||
commandLine(p).orElse("").contains("-DmockSolr=true"))
.collect(
@@ -145,7 +146,7 @@ public class SolrProcessManager {
private Optional<Integer> parsePortFromProcess(ProcessHandle ph) {
Optional<String> portStr =
arguments(ph).stream()
- .filter(a -> a.contains("-Djetty.port="))
+ .filter(a -> a.contains("-Dsolr.port.listen="))
.map(s -> s.split("=")[1])
.findFirst();
return portStr.isPresent() ? portStr.map(Integer::parseInt) :
Optional.empty();
diff --git a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
index 253718c5f13..37bdceea9f1 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
@@ -43,6 +43,7 @@ import org.apache.solr.common.ConfigNode;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.CollectionUtil;
import org.apache.solr.common.util.DOMUtil;
+import org.apache.solr.common.util.EnvUtils;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.StrUtils;
import org.apache.solr.common.util.Utils;
@@ -499,8 +500,8 @@ public class SolrXmlConfig {
int hostPort =
parseInt("hostPort", required("solrcloud", "hostPort", removeValue(nl,
"hostPort")));
if (hostPort <= 0) {
- // Default to the port that jetty is listening on, or 8983 if that is
not provided.
- hostPort = parseInt("jetty.port", System.getProperty("jetty.port",
"8983"));
+ // Default to the port that Solr is listening on, or 8983 if that is not
provided.
+ hostPort = EnvUtils.getPropertyAsInteger("solr.port.listen", 8983);
}
String hostName = required("solrcloud", "host", removeValue(nl, "host"));
diff --git
a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
index 5e5f7e21cb8..1dcf7fd4ae3 100644
--- a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
+++ b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
@@ -282,7 +282,7 @@ public class CoreContainerProvider implements
ServletContextListener {
}
private String getSolrPort() {
- return System.getProperty("jetty.port");
+ return EnvUtils.getProperty("solr.port.listen");
}
/**
diff --git a/solr/core/src/test/org/apache/solr/cli/CLIUtilsTest.java
b/solr/core/src/test/org/apache/solr/cli/CLIUtilsTest.java
index d1806aec670..5ec2ddfa5fa 100644
--- a/solr/core/src/test/org/apache/solr/cli/CLIUtilsTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/CLIUtilsTest.java
@@ -29,7 +29,7 @@ public class CLIUtilsTest extends SolrCloudTestCase {
public void testDefaultSolrUrlWithNoProperties() {
System.clearProperty("solr.url.scheme");
System.clearProperty("solr.host");
- System.clearProperty("jetty.port");
+ System.clearProperty("solr.port.listen");
assertEquals(
"Default Solr URL should match with no properties set.",
"http://localhost:8983",
@@ -40,7 +40,7 @@ public class CLIUtilsTest extends SolrCloudTestCase {
public void testDefaultSolrUrlWithProperties() {
System.setProperty("solr.url.scheme", "https");
System.setProperty("solr.host", "other.local");
- System.setProperty("jetty.port", "1234");
+ System.setProperty("solr.port.listen", "1234");
assertEquals(
"Default Solr URL should match with custom properties set.",
"https://other.local:1234",
diff --git a/solr/core/src/test/org/apache/solr/cli/PostToolTest.java
b/solr/core/src/test/org/apache/solr/cli/PostToolTest.java
index 7a3760992a3..268c532f71b 100644
--- a/solr/core/src/test/org/apache/solr/cli/PostToolTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/PostToolTest.java
@@ -113,7 +113,7 @@ public class PostToolTest extends SolrCloudTestCase {
final String collection = "testRunWithCollectionParam";
// Provide the port for the PostTool to look up.
- EnvUtils.setProperty("jetty.port",
cluster.getJettySolrRunner(0).getLocalPort() + "");
+ EnvUtils.setProperty("solr.port.listen",
cluster.getJettySolrRunner(0).getLocalPort() + "");
withBasicAuth(CollectionAdminRequest.createCollection(collection, "conf1",
1, 1, 0, 0))
.processAndWait(cluster.getSolrClient(), 10);
@@ -150,7 +150,7 @@ public class PostToolTest extends SolrCloudTestCase {
final String collection = "testRunCsvWithCustomSeparatorParam";
// Provide the port for the PostTool to look up.
- EnvUtils.setProperty("jetty.port",
cluster.getJettySolrRunner(0).getLocalPort() + "");
+ EnvUtils.setProperty("solr.port.listen",
cluster.getJettySolrRunner(0).getLocalPort() + "");
withBasicAuth(CollectionAdminRequest.createCollection(collection, "conf1",
1, 1, 0, 0))
.processAndWait(cluster.getSolrClient(), 10);
diff --git a/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java
b/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java
index 6ca700d2f15..6b37c03d802 100644
--- a/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java
@@ -55,7 +55,7 @@ public class SolrProcessManagerTest extends SolrTestCase {
long processHttpValue = isWindows ? processHttp.getKey() :
processHttp.getValue().pid();
long processHttpsValue = isWindows ? processHttps.getKey() :
processHttps.getValue().pid();
SolrProcessManager.enableTestingMode = true;
- System.setProperty("jetty.port", Integer.toString(processHttp.getKey()));
+ System.setProperty("solr.port.listen",
Integer.toString(processHttp.getKey()));
Path pidDir = createTempDir("solr-pid-dir");
System.setProperty("solr.pid.dir", pidDir.toString());
Files.writeString(
@@ -71,7 +71,7 @@ public class SolrProcessManagerTest extends SolrTestCase {
processHttp.getValue().destroyForcibly();
processHttps.getValue().destroyForcibly();
SolrProcessManager.enableTestingMode = false;
- System.clearProperty("jetty.port");
+ System.clearProperty("solr.port.listen");
System.clearProperty("solr.pid.dir");
}
@@ -92,7 +92,7 @@ public class SolrProcessManagerTest extends SolrTestCase {
ProcessBuilder processBuilder =
new ProcessBuilder(
System.getProperty("java.home") + "/bin/java",
- "-Djetty.port=" + port,
+ "-Dsolr.port.listen=" + port,
"-DisHttps=" + https,
"-DmockSolr=true",
"-cp",
@@ -194,7 +194,7 @@ public class SolrProcessManagerTest extends SolrTestCase {
@SuppressWarnings("NewClassNamingConvention")
public static class MockSolrProcess {
public static void main(String[] args) {
- int port = Integer.parseInt(System.getProperty("jetty.port"));
+ int port = Integer.parseInt(System.getProperty("solr.port.listen"));
boolean https = System.getProperty("isHttps").equals("true");
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("Listening on " + (https ? "https" : "http") + "
port " + port);
diff --git a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
index c57f22c23f4..8b1122151c3 100644
--- a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
+++ b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
@@ -125,7 +125,7 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
Path logDir = createTempDir("solr_logs");
System.setProperty("solr.log.dir", logDir.toString());
System.setProperty("host", "localhost");
- System.setProperty("jetty.port", String.valueOf(port));
+ System.setProperty("solr.port.listen", String.valueOf(port));
solrCloudCluster = new MiniSolrCloudCluster(1, createTempDir(),
solrxml, jettyConfig);
} else {
// another member of this cluster -- not supported yet, due to how
@@ -213,7 +213,7 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
Path solrHomeDir = Path.of(getArg("--solr-home", args));
System.setProperty("host", "localhost");
- System.setProperty("jetty.port", String.valueOf(port));
+ System.setProperty("solr.port.listen", String.valueOf(port));
System.setProperty("solr.logs.dir",
createTempDir("solr_logs").toString());
standaloneSolr = new JettySolrRunner(solrHomeDir.toString(), port);
@@ -419,7 +419,8 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
/**
* Tests the interactive SolrCloud example; we cannot test the
non-interactive because we need
* control over the port and can only test with one node since the test
relies on setting the host
- * and jetty.port system properties, i.e. there is no test coverage for the
--no-prompt option.
+ * and solr.port.listen system properties, i.e. there is no test coverage
for the --no-prompt
+ * option.
*/
@Test
public void testInteractiveSolrCloudExample() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
index eec57a73bb4..6090361e420 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
@@ -192,7 +192,7 @@ public class TestSolrXml extends SolrTestCaseJ4 {
}
public void testExplicitNullGivesDefaults() {
- System.setProperty("jetty.port", "8000");
+ System.setProperty("solr.port.listen", "8000");
String solrXml =
"<solr>"
+ "<null name=\"maxBooleanClauses\"/>"
diff --git a/solr/docker/scripts/docker-entrypoint.sh
b/solr/docker/scripts/docker-entrypoint.sh
index 24247039c00..597b0312214 100755
--- a/solr/docker/scripts/docker-entrypoint.sh
+++ b/solr/docker/scripts/docker-entrypoint.sh
@@ -26,9 +26,9 @@ if [[ "$VERBOSE" == "yes" ]]; then
set -x
fi
-if ! [[ ${SOLR_PORT:-} =~ ^[0-9]+$ ]]; then
- SOLR_PORT=8983
- export SOLR_PORT
+if ! [[ ${SOLR_PORT_LISTEN:-} =~ ^[0-9]+$ ]]; then
+ SOLR_PORT_LISTEN=8983
+ export SOLR_PORT_LISTEN
fi
# Essential for running Solr
diff --git a/solr/docker/scripts/solr-create b/solr/docker/scripts/solr-create
index 5868353ee21..2db273e02c7 100755
--- a/solr/docker/scripts/solr-create
+++ b/solr/docker/scripts/solr-create
@@ -60,7 +60,7 @@ else
# See https://github.com/docker-solr/docker-solr/issues/27
echo "Checking core"
- if ! wget -O -
"http://localhost:${SOLR_PORT:-8983}/solr/admin/cores?action=STATUS" | grep
instanceDir >/dev/null; then
+ if ! wget -O -
"http://localhost:${SOLR_PORT_LISTEN:-8983}/solr/admin/cores?action=STATUS" |
grep instanceDir >/dev/null; then
echo "Could not find any cores"
exit 1
fi
diff --git a/solr/docker/scripts/start-local-solr
b/solr/docker/scripts/start-local-solr
index 03284b824f5..d4c9e465867 100755
--- a/solr/docker/scripts/start-local-solr
+++ b/solr/docker/scripts/start-local-solr
@@ -23,7 +23,7 @@ if [[ "${VERBOSE:-}" == "yes" ]]; then
fi
echo "Running solr in the background. Logs are in /var/solr/logs"
-SOLR_OPTS="-Djetty.host=${SOLR_LOCAL_HOST:-localhost}" solr start
--user-managed
+SOLR_OPTS="-Dsolr.host.bind=${SOLR_LOCAL_HOST:-localhost}" solr start
--user-managed
max_try=${MAX_TRY:-12}
wait_seconds=${WAIT_SECONDS:-5}
if ! wait-for-solr.sh --max-attempts "$max_try" --wait-seconds
"$wait_seconds"; then
diff --git a/solr/docker/scripts/wait-for-solr.sh
b/solr/docker/scripts/wait-for-solr.sh
index 147cc3fd071..65e428897d9 100755
--- a/solr/docker/scripts/wait-for-solr.sh
+++ b/solr/docker/scripts/wait-for-solr.sh
@@ -36,12 +36,12 @@ function usage {
max_attempts=12
wait_seconds=5
-if ! [[ ${SOLR_PORT:-8983} =~ ^[0-9]+$ ]]; then
- echo "Invalid SOLR_PORT=${SOLR_PORT:-} environment variable specified"
+if ! [[ ${SOLR_PORT_LISTEN:-8983} =~ ^[0-9]+$ ]]; then
+ echo "Invalid SOLR_PORT=${SOLR_PORT_LISTEN:-} environment variable specified"
exit 1
fi
-solr_url="http://localhost:${SOLR_PORT:-8983}"
+solr_url="http://localhost:${SOLR_PORT_LISTEN:-8983}"
while (( $# > 0 )); do
case "$1" in
diff --git a/solr/docker/templates/Dockerfile.body.template
b/solr/docker/templates/Dockerfile.body.template
index f025f81312c..57c5793a7c3 100644
--- a/solr/docker/templates/Dockerfile.body.template
+++ b/solr/docker/templates/Dockerfile.body.template
@@ -45,7 +45,7 @@ ENV SOLR_USER="solr" \
SOLR_PID_DIR=/var/solr \
SOLR_LOGS_DIR=/var/solr/logs \
LOG4J_PROPS=/var/solr/log4j2.xml \
- SOLR_JETTY_HOST="0.0.0.0" \
+ SOLR_HOST_BIND="0.0.0.0" \
SOLR_ZOOKEEPER_EMBEDDED_HOST="0.0.0.0"
RUN set -ex; \
diff --git a/solr/modules/cross-dc/src/test-files/mirroring-solr.xml
b/solr/modules/cross-dc/src/test-files/mirroring-solr.xml
index 68a1a32f201..d5a8630b56f 100644
--- a/solr/modules/cross-dc/src/test-files/mirroring-solr.xml
+++ b/solr/modules/cross-dc/src/test-files/mirroring-solr.xml
@@ -19,8 +19,8 @@
<str
name="collectionsHandler">org.apache.solr.crossdc.handler.MirroringCollectionsHandler</str>
<str
name="configSetsHandler">org.apache.solr.crossdc.handler.MirroringConfigSetsHandler</str>
<solrcloud>
- <str name="host">${host:}</str>
- <int name="hostPort">${hostPort:0}</int>
+ <str name="host">${solr.host.advertise:}</str>
+ <int name="hostPort">${solr.port.advertise:0}</int>
<str name="hostContext">${hostContext:solr}</str>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
diff --git a/solr/packaging/build.gradle b/solr/packaging/build.gradle
index 8d0e8723b61..feab0004d4a 100644
--- a/solr/packaging/build.gradle
+++ b/solr/packaging/build.gradle
@@ -263,6 +263,7 @@ task integrationTests(type: BatsTask) {
environment SOLR_TIP: distDir.toString()
environment SOLR_HOME: solrHome
environment SOLR_PID_DIR: solrHome
+ environment SOLR_PORT_LISTEN: solrPort
environment SOLR_PORT: solrPort
environment SOLR2_PORT: solrPort + 1
environment SOLR3_PORT: solrPort + 2
diff --git a/solr/packaging/test/test_zk.bats b/solr/packaging/test/test_zk.bats
index fc31f691bef..11ee3a7a76d 100644
--- a/solr/packaging/test/test_zk.bats
+++ b/solr/packaging/test/test_zk.bats
@@ -172,8 +172,8 @@ teardown() {
sleep 1
# Need to unset SOLR_PORT to avoid the tool being smart and look at SOLR_PORT
- export SOLR_PORT_KEEP=$SOLR_PORT
- unset SOLR_PORT
+ export SOLR_PORT_KEEP=$SOLR_PORT_LISTEN
+ unset SOLR_PORT_LISTEN
# First test a command that will fail (no ZK_HOST set, no SOLR_PORT)
run solr zk ls / --recursive
@@ -186,6 +186,6 @@ teardown() {
assert_output --partial "aliases.json"
# Restore SOLR_PORT
- export SOLR_PORT=$SOLR_PORT_KEEP
+ export SOLR_PORT_LISTEN=$SOLR_PORT_KEEP
unset ZK_HOST
}
diff --git a/solr/server/etc/jetty-http.xml b/solr/server/etc/jetty-http.xml
index a226b2e99ba..aeb273e2c0c 100644
--- a/solr/server/etc/jetty-http.xml
+++ b/solr/server/etc/jetty-http.xml
@@ -38,8 +38,8 @@
</Item>
</Array>
</Arg>
- <Set name="host"><Property name="solr.jetty.host"
default="127.0.0.1"/></Set>
- <Set name="port"><Property name="jetty.port" default="8983" /></Set>
+ <Set name="host"><Property name="solr.host.bind"
default="127.0.0.1"/></Set>
+ <Set name="port"><Property name="solr.port.listen" default="8983"
/></Set>
<Set name="idleTimeout"><Property name="solr.jetty.http.idleTimeout"
default="120000"/></Set>
<Set name="acceptorPriorityDelta"><Property
name="solr.jetty.http.acceptorPriorityDelta" default="0"/></Set>
<Set name="acceptQueueSize"><Property
name="solr.jetty.http.acceptQueueSize" default="0"/></Set>
diff --git a/solr/server/etc/jetty-https.xml b/solr/server/etc/jetty-https.xml
index 6ef13f60c20..3f7f1e301d2 100644
--- a/solr/server/etc/jetty-https.xml
+++ b/solr/server/etc/jetty-https.xml
@@ -63,7 +63,7 @@
</Item>
</Array>
</Arg>
- <Set name="host"><Property name="solr.jetty.host"
default="127.0.0.1"/></Set>
+ <Set name="host"><Property name="solr.host.bind"
default="127.0.0.1"/></Set>
<Set name="port"><Property name="solr.jetty.https.port" default="8983"
/></Set>
<Set name="idleTimeout"><Property name="solr.jetty.https.timeout"
default="120000"/></Set>
<Set name="acceptorPriorityDelta"><Property
name="solr.jetty.ssl.acceptorPriorityDelta" default="0"/></Set>
diff --git a/solr/server/solr/solr.xml b/solr/server/solr/solr.xml
index 96dabbcee81..c39cb88a699 100644
--- a/solr/server/solr/solr.xml
+++ b/solr/server/solr/solr.xml
@@ -38,7 +38,7 @@
<solrcloud>
- <str name="host">${host:}</str>
+ <str name="host">${solr.host.advertise:}</str>
<int name="hostPort">${solr.port.advertise:0}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
diff --git
a/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
b/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
index bf5aaa8d15d..374388d180c 100644
---
a/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
+++
b/solr/solr-ref-guide/modules/configuration-guide/pages/configuring-solr-xml.adoc
@@ -41,7 +41,7 @@ The default `solr.xml` file is found in
`$SOLR_TIP/server/solr/solr.xml` and loo
<solrcloud>
- <str name="host">${host:}</str>
+ <str name="host">${solr.host.advertise:}</str>
<int name="hostPort">${solr.port.advertise:0}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
@@ -395,7 +395,7 @@ For example, if the Solr node is running behind a proxy or
in a cloud environmen
`hostPort` is the port that the Solr instance wants other nodes to contact it
at.
+
In the default `solr.xml` file, this is set to `${solr.port.advertise:0}`.
-If no port is passed via the `solr.xml` (i.e., `0`), then Solr will default to
the port that jetty is listening on, defined by `${jetty.port}`.
+If no port is passed via the `solr.xml` (i.e., `0`), then Solr will default to
the port that jetty is listening on, defined by `${solr.port.listen}`.
`leaderVoteWait`::
+
diff --git
a/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
b/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
index 774c37fcf51..a34f654cce1 100644
--- a/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/solr-properties.adoc
@@ -58,6 +58,10 @@ NOTE: Properties marked with "!" indicate inverted meaning
between old and new p
|solr.filestore.filesize.max|max.file.store.size|100MB|Defines the maximum
file size allowed in Solr's filestore.
+|solr.host.advertise| host | | This is the host that is advertised by the Solr
node in the ZK live nodes
+
+|solr.host.bind|solr.jetty.host| |This is the host that Solr's Jetty binds to,
and only accepts requests to.
+
|solr.index.replication.fingerprint.enabled|!solr.disableFingerprint|true|Controls
whether index fingerprinting for replication is disabled.
|solr.index.updatelog.enabled|enable.update.log|true (in default
solrconfig.xml)|Controls whether the UpdateLog is enabled. The UpdateLog is
required for atomic updates, real-time get, and transaction log replay. May be
disabled in testing environments or with schemas that don't support versioning
(older schemas) to improve performance at the cost of data durability.
@@ -70,6 +74,10 @@ NOTE: Properties marked with "!" indicate inverted meaning
between old and new p
|solr.packages.enabled|enable.packages|false|Controls whether the package
management system is enabled.
+|solr.port.advertise| | Default to `solr.port.listen` if not defined. | This
is the port that is advertised by the Solr node in the ZK live nodes.
+
+|solr.port.listen| jetty.port| 8983 or solr.jetty.https.port if defined and
SSL | This is the port that Solr's Jetty binds to, and accepts requests to.
+
|solr.requests.allow.urls|solr.disable.allowUrls||Specifies URLs that are
allowed for streaming. See also solr.requests.streaming.remote.enabled.
|solr.requests.streaming.body.enabled|solr.enableStreamBody|false|Controls
whether streaming request bodies are enabled.
diff --git
a/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
b/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
index 26b3845a47e..f4917573816 100644
---
a/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
+++
b/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
@@ -189,7 +189,7 @@ curl http://localhost:8983/solr/admin/info/system
"-DzkClientTimeout=15000",
"-DzkHost=192.168.32.3:2181",
"-Dsolr.logs.dir=/var/solr/logs",
- "-Djetty.port=8983",
+ "-Dsolr.port.listen=8983",
"-DSTOP.PORT=7983",
"-DSTOP.KEY=solrrocks",
"-Duser.timezone=UTC",
@@ -298,7 +298,7 @@ curl http://localhost:8983/solr/gettingstarted/admin/system
"-Dcom.sun.management.jmxremote.port=18983",
"-Dcom.sun.management.jmxremote.rmi.port=18983",
"-Dsolr.logs.dir=/var/solr/logs",
- "-Djetty.port=8983",
+ "-Dsolr.port.listen=8983",
"-DSTOP.PORT=7983",
"-DSTOP.KEY=solrrocks",
"-Duser.timezone=UTC",
diff --git
a/solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc
b/solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc
index 5add3630aa3..7844f073737 100644
--- a/solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/securing-solr.adoc
@@ -107,14 +107,14 @@ Solr is not designed to be exposed on the open internet.
It is also strongly recommended that Solr listen to only those network
interfaces that are strictly required.
To prevent administrators from unintentionally exposing Solr more broadly,
Solr only listens on the loopback interface ("127.0.0.1") by default.
Most deployments will need to change this value to something less restrictive
so that it can be reached from other boxes.
-This can be done by setting a `SOLR_JETTY_HOST` value in your environment's
"include script" (`solr.in.sh` or `solr.in.cmd`):
+This can be done by setting a `SOLR_HOST_BIND` value in your environment's
"include script" (`solr.in.sh` or `solr.in.cmd`):
[source,bash]
----
- SOLR_JETTY_HOST="0.0.0.0"
+ SOLR_HOST_BIND="0.0.0.0"
----
-The same setting is also available as the `-Dsolr.jetty.host` System Property.
+The same setting is also available as the `-Dsolr.host.bind` System Property.
The same is true for the embedded Zookeeper, if it is run with Solr.
By default, the embedded Zookeeper only listens on the loopback interface
("127.0.0.1")
diff --git
a/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
b/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
index 13a5d4cddcb..81e63454bf1 100644
---
a/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
+++
b/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc
@@ -203,6 +203,8 @@ Apr 16 20:42:01 localhost.localdomain systemd[1]: Started
Apache Solr.
If the `status` command is not successful, look for error messages in
`/var/solr/logs/solr.log`.
+Additionally, if you can't connect to running Solr from an external location,
check your `SOLR_HOST_BIND` setting to make sure Solr is accessible to the
network.
+
== Fine-Tune Your Production Setup
=== Dynamic Defaults for ConcurrentMergeScheduler
diff --git
a/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
index d6047e152e8..b1d07c5516d 100644
--- a/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
+++ b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-aws.adoc
@@ -193,7 +193,7 @@ $ cd $SOLR_HOME
# uncomment and edit the two variables
# vim bin/solr.in.sh
-SOLR_JETTY_HOST="0.0.0.0"
+SOLR_HOST_BIND="0.0.0.0"
SOLR_ZOOKEEPER_EMBEDDED_HOST="0.0.0.0"
----
+
diff --git
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
index fc05af4d7ef..9fb7c15b653 100644
---
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
+++
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
@@ -37,6 +37,15 @@ This compatibility safeguard can be toggled with
"SOLR_CLOUD_DOWNGRADE_ENABLED".
Minimum Java version for Solr 10.x is Java 21.
+== Solr Jetty parameters
+
+The previous `SOLR_JETTY_HOST` environment variable and `-Dsolr.jetty.host`
System Property are deprecated and will be removed in a future release. Please
update your configuration to use `SOLR_HOST_BIND` and `-Dsolr.host.bind`
instead.
+
+The previous `SOLR_HOST` and 'host' are deprecated and now use
`SOLR_HOST_ADVERTISE` and `solr.host.advertise`.
+
+The previous `jetty.port` is deprecated and now use `solr.port.listen`.
+
+
=== Solr CLI and Scripts
The Solr CLI has gone through some significant renovations to reduce technical
debt, and now functions more consistently and predictably. Most notably, CLI
commands now use unix-style options, e.g. `--help` instead of `-help`.
diff --git
a/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
b/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
index 773c319b6d3..f5bb1b3ab26 100644
--- a/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
+++ b/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
@@ -28,6 +28,9 @@
solr.configset.forbidden.file.types=solr.config.set.forbidden.file.types
solr.configset.upload.enabled=configset.upload.enabled
solr.filestore.filesize.max=max.file.store.size
+solr.host.bind=solr.jetty.host
+
+solr.host.advertise=host
solr.index.replication.fingerprint.enabled=!solr.disableFingerprint
solr.index.updatelog.enabled=enable.update.log
@@ -38,6 +41,7 @@
solr.metrics.fieldcache.entries.enabled=!disable.solr.field.cache.m.bean.entry.l
solr.metrics.fieldcache.entries.jmx.enabled=!disable.solr.field.cache.m.bean.entry.list.jmx
solr.packages.enabled=enable.packages
+solr.port.listen=jetty.port
solr.requests.streaming.body.enabled=solr.enable.stream.body
solr.requests.streaming.remote.enabled=solr.enable.remote.streaming
diff --git a/solr/solrj/src/resources/EnvToSyspropMappings.properties
b/solr/solrj/src/resources/EnvToSyspropMappings.properties
index 4b66f843271..df8a77f6402 100644
--- a/solr/solrj/src/resources/EnvToSyspropMappings.properties
+++ b/solr/solrj/src/resources/EnvToSyspropMappings.properties
@@ -16,7 +16,6 @@ SOLR_HTTP_DISABLE_COOKIES=solr.http.disableCookies
SOLR_IP_ALLOWLIST=solr.jetty.inetaccess.includes
SOLR_IP_DENYLIST=solr.jetty.inetaccess.excludes
SOLR_OTEL_DEFAULT_CONFIGURATOR=solr.otelDefaultConfigurator
-SOLR_PORT=jetty.port
SOLR_TIMEZONE=user.timezone
SOLR_TIP=solr.install.dir
SOLR_TIP_SYM=solr.install.symDir
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
b/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
index 77461d4110a..1a6eee1c227 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
@@ -29,7 +29,7 @@ public class EnvUtilsTest extends SolrTestCase {
private static final Map<String, String> ENV =
Map.of(
"SOLR_HOME", "/home/solr",
- "SOLR_PORT", "8983",
+ "SOLR_PORT_LISTEN", "8983",
"SOLR_HOST", "localhost",
"SOLR_LOG_LEVEL", "INFO",
"SOLR_BOOLEAN", "true",
@@ -79,7 +79,6 @@ public class EnvUtilsTest extends SolrTestCase {
public void testEnvsWithCustomKeyNameMappings() {
// These have different names than the environment variables
assertEquals(ENV.get("SOLR_HOME"), EnvUtils.getProperty("solr.solr.home"));
- assertEquals(ENV.get("SOLR_PORT"), EnvUtils.getProperty("jetty.port"));
assertEquals(ENV.get("SOLR_HOST"), EnvUtils.getProperty("host"));
assertEquals(ENV.get("SOLR_LOGS_DIR"),
EnvUtils.getProperty("solr.logs.dir"));
}
diff --git
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
index c52ca4e6fc6..653e9f3773c 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
@@ -56,7 +56,7 @@ public abstract class AbstractZkTestCase extends
SolrTestCaseJ4 {
System.setProperty("solrcloud.skip.autorecovery", "true");
System.setProperty("zkHost", zkServer.getZkAddress());
- System.setProperty("jetty.port", "0000");
+ System.setProperty("solr.port.listen", "0000");
System.setProperty(ZOOKEEPER_FORCE_SYNC, "false");
zkServer.buildZooKeeper(SOLRHOME, "solrconfig.xml", "schema.xml");
@@ -75,7 +75,7 @@ public abstract class AbstractZkTestCase extends
SolrTestCaseJ4 {
System.clearProperty("solr.test.sys.prop1");
System.clearProperty("solr.test.sys.prop2");
System.clearProperty("solrcloud.skip.autorecovery");
- System.clearProperty("jetty.port");
+ System.clearProperty("solr.port.listen");
System.clearProperty(ZOOKEEPER_FORCE_SYNC);
if (zkServer != null) {