mirror of https://github.com/apache/lucene.git
SOLR-11161: bin/solr stop_solr function ignored $STOP_PORT used at startup.
This commit is contained in:
parent
e33e78c168
commit
89bd0566f9
|
@ -143,6 +143,8 @@ Bug Fixes
|
|||
admin UI dashboard would not display any commandline arguments.
|
||||
(Webster Homer via Shawn Heisey)
|
||||
|
||||
* SOLR-11161: bin/solr stop_solr function ignored $STOP_PORT used at startup. (Christine Poerschke)
|
||||
|
||||
Optimizations
|
||||
----------------------
|
||||
* SOLR-11285: Refactor autoscaling framework to avoid direct references to Zookeeper and Solr
|
||||
|
|
|
@ -648,22 +648,40 @@ function solr_pid_by_port() {
|
|||
echo "$solrPID"
|
||||
}
|
||||
|
||||
# extract the value of the -Djetty.port parameter from a running Solr process
|
||||
function jetty_port() {
|
||||
# extract the value of a command line parameter from a running Solr process
|
||||
# arg1 - pid of a running Solr process
|
||||
# arg2 - parameter to extract e.g. abc.xyz to extract the -Dabc.xyz parameter
|
||||
function java_system_property_by_pid() {
|
||||
SOLR_PID="$1"
|
||||
SOLR_PROC=`ps auxww | grep -w $SOLR_PID | grep start\.jar | grep jetty\.port`
|
||||
SOLR_ARG="$2"
|
||||
SOLR_PROC=`ps auxww | grep -w $SOLR_PID | grep start\.jar | grep $SOLR_ARG`
|
||||
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]}" == "-D$SOLR_ARG" ]; then
|
||||
local arg_val="${pair[1]}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "$jetty_port"
|
||||
echo "$arg_val"
|
||||
} # end java_system_property_by_pid func
|
||||
|
||||
# extract the value of the -Djetty.port parameter from a running Solr process
|
||||
function jetty_port() {
|
||||
java_system_property_by_pid "$1" "jetty.port"
|
||||
} # end jetty_port func
|
||||
|
||||
# extract the value of the -DSTOP.PORT parameter from a running Solr process
|
||||
function stop_port_by_pid() {
|
||||
java_system_property_by_pid "$1" "STOP.PORT"
|
||||
} # end stop_port_by_pid func
|
||||
|
||||
# extract the value of the -DSTOP.KEY parameter from a running Solr process
|
||||
function stop_key_by_pid() {
|
||||
java_system_property_by_pid "$1" "STOP.KEY"
|
||||
} # end stop_key_by_pid func
|
||||
|
||||
# run a Solr command-line tool using the SolrCLI class;
|
||||
# useful for doing cross-platform work from the command-line using Java
|
||||
function run_tool() {
|
||||
|
@ -729,11 +747,13 @@ function stop_solr() {
|
|||
|
||||
DIR="$1"
|
||||
SOLR_PORT="$2"
|
||||
STOP_PORT=`expr $SOLR_PORT - 1000`
|
||||
STOP_KEY="$3"
|
||||
SOLR_PID="$4"
|
||||
SOLR_PID="$3"
|
||||
|
||||
if [ "$SOLR_PID" != "" ]; then
|
||||
|
||||
STOP_PORT=`stop_port_by_pid $SOLR_PID`
|
||||
STOP_KEY=`stop_key_by_pid $SOLR_PID`
|
||||
|
||||
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."
|
||||
"$JAVA" $SOLR_SSL_OPTS $AUTHC_OPTS -jar "$DIR/start.jar" "STOP.PORT=$STOP_PORT" "STOP.KEY=$STOP_KEY" --stop || true
|
||||
(loops=0
|
||||
|
@ -1633,7 +1653,7 @@ if [[ "$SCRIPT_CMD" == "stop" && -z "$SOLR_PORT" ]]; then
|
|||
NEXT_PID=`cat "$PIDF"`
|
||||
port=`jetty_port "$NEXT_PID"`
|
||||
if [ "$port" != "" ]; then
|
||||
stop_solr "$SOLR_SERVER_DIR" "$port" "$STOP_KEY" "$NEXT_PID"
|
||||
stop_solr "$SOLR_SERVER_DIR" "$port" "$NEXT_PID"
|
||||
none_stopped=false
|
||||
fi
|
||||
rm -f "$PIDF"
|
||||
|
@ -1654,7 +1674,7 @@ if [[ "$SCRIPT_CMD" == "stop" && -z "$SOLR_PORT" ]]; then
|
|||
if [ "$CHECK_PID" != "" ]; then
|
||||
port=`jetty_port "$CHECK_PID"`
|
||||
if [ "$port" != "" ]; then
|
||||
stop_solr "$SOLR_SERVER_DIR" "$port" "$STOP_KEY" "$CHECK_PID"
|
||||
stop_solr "$SOLR_SERVER_DIR" "$port" "$CHECK_PID"
|
||||
none_stopped=false
|
||||
fi
|
||||
fi
|
||||
|
@ -1710,7 +1730,7 @@ else
|
|||
SOLR_PID=`ps auxww | grep start\.jar | grep -w "\-Djetty\.port=$SOLR_PORT" | grep -v grep | awk '{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" "$SOLR_PID"
|
||||
else
|
||||
if [ "$SCRIPT_CMD" == "stop" ]; then
|
||||
echo -e "No process found for Solr node running on port $SOLR_PORT"
|
||||
|
|
Loading…
Reference in New Issue