You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2021/02/10 02:05:26 UTC
[lucene-solr] branch reference_impl_dev updated (1ea3336 -> 277a84d)
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a change to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git.
discard 1ea3336 @1336 Startup and logging tweaks.
new 277a84d @1336 Startup and logging tweaks.
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (1ea3336)
\
N -- N -- N refs/heads/reference_impl_dev (277a84d)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
solr/bin/solr | 2 +-
solr/server/resources/log4j2.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
[lucene-solr] 01/01: @1336 Startup and logging tweaks.
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 277a84d367cad43dc90a4b82ff4bd0cf9bfc914d
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Feb 9 20:04:08 2021 -0600
@1336 Startup and logging tweaks.
---
solr/bin/jetty.sh | 8 +--
solr/bin/solr | 105 ++++++++++++++++++++++++--------------
solr/docker/tests/shared.sh | 2 +-
solr/server/etc/jetty-started.xml | 2 +-
solr/server/resources/log4j2.xml | 34 ++++++++----
5 files changed, 98 insertions(+), 53 deletions(-)
diff --git a/solr/bin/jetty.sh b/solr/bin/jetty.sh
index edcb03a..ad377dc 100644
--- a/solr/bin/jetty.sh
+++ b/solr/bin/jetty.sh
@@ -91,7 +91,7 @@ NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//')
# have shell access, e.g. /bin/false
#
# JETTY_START_TIMEOUT
-# Time spent waiting to see if startup was successful/failed. Defaults to 60 seconds
+# Time spent waiting to see if startup was successful/failed. Defaults to 10 seconds
#
usage()
@@ -387,7 +387,7 @@ fi
#####################################################
if [ -z "$JETTY_START_TIMEOUT" ]
then
- JETTY_START_TIMEOUT=60
+ JETTY_START_TIMEOUT=10
fi
#####################################################
@@ -480,11 +480,11 @@ case "$ACTION" in
# FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc.
su - "$JETTY_USER" $SU_SHELL -c "
cd \"$JETTY_BASE\"
- exec ${RUN_CMD[*]} start-log-file=\"$JETTY_START_LOG\" > /dev/null &
+ exec ("${RUN_CMD[@]}") start-log-file=\"$JETTY_START_LOG\" > /dev/null &
disown \$!
echo \$! > \"$JETTY_PID\""
else
- "${RUN_CMD[@]}" > /dev/null &
+ ("${RUN_CMD[@]}") > /dev/null &
disown $!
echo $! > "$JETTY_PID"
fi
diff --git a/solr/bin/solr b/solr/bin/solr
index a3d2452..614546a 100755
--- a/solr/bin/solr
+++ b/solr/bin/solr
@@ -46,7 +46,7 @@
# ensuring that no include files exist in the aforementioned search list.
SOLR_SCRIPT="$0"
-verbose=false
+verbose=true
THIS_OS=`uname -s`
# What version of Java is required to run this version of Solr.
@@ -97,10 +97,6 @@ elif [ -r "$SOLR_INCLUDE" ]; then
. "$SOLR_INCLUDE"
fi
-if [ -z "$SOLR_PID_DIR" ]; then
- SOLR_PID_DIR="$SOLR_TIP/bin"
-fi
-
if [ -n "$SOLR_JAVA_HOME" ]; then
JAVA="$SOLR_JAVA_HOME/bin/java"
JSTACK="$SOLR_JAVA_HOME/bin/jstack"
@@ -706,7 +702,7 @@ function solr_pid_by_port() {
# extract the value of the -Djetty.port parameter from a running Solr process
function jetty_port() {
SOLR_PID="$1"
- SOLR_PROC=`ps auxww | grep -w $SOLR_PID | grep start\.jar | grep jetty\.port`
+ SOLR_PROC=$(ps auxww | grep -w $SOLR_PID | grep start\.jar | grep jetty\.port)
IFS=' ' read -a proc_args <<< "$SOLR_PROC"
for arg in "${proc_args[@]}"
do
@@ -879,7 +875,8 @@ function stop_solr() {
done
rm -f "$SOLR_PID_DIR/$JETTY_PID"
- rm -f "${SOLR_HOME}/jetty.state"
+ JETTY_STATE="${SOLR_PID_DIR}/jetty.state"
+ rm -f "${JETTY_STATE}"
echo OK
} # end stop_solr
@@ -1138,7 +1135,8 @@ if [[ "$SCRIPT_CMD" == "create" || "$SCRIPT_CMD" == "create_core" || "$SCRIPT_CM
fi
if [ -z "$CREATE_PORT" ]; then
- for ID in `ps auxww | grep java | grep start\.jar | awk '{print $2}' | sort -r`
+ running=$(ps auxww | grep java | grep start\.jar | awk '{print $2}' | sort -r)
+ for ID in $running
do
port=`jetty_port "$ID"`
if [ "$port" != "" ]; then
@@ -1541,10 +1539,13 @@ if [[ "$SCRIPT_CMD" == "auth" ]]; then
SOLR_HOME="$(pwd)/$SOLR_HOME"
elif [[ -d "$SOLR_SERVER_DIR/$SOLR_HOME" ]]; then
SOLR_HOME="$SOLR_SERVER_DIR/$SOLR_HOME"
- SOLR_PID_DIR="$SOLR_HOME"
fi
fi
+ if [ -z "$SOLR_PID_DIR" ]; then
+ SOLR_PID_DIR="$SOLR_HOME"
+ fi
+
if [ -z "$AUTH_OP" ]; then
print_usage "$SCRIPT_CMD"
exit 0
@@ -1626,7 +1627,7 @@ fi
FG="false"
FORCE=false
noprompt=false
-SOLR_OPTS=("$SOLR_OPTS")
+SOLR_OPTS=($SOLR_OPTS)
PASS_TO_RUN_EXAMPLE=
if [ $# -gt 0 ]; then
@@ -1873,14 +1874,17 @@ fi
if [ -z "$SOLR_HOME" ]; then
SOLR_HOME="$SOLR_SERVER_DIR/solr"
elif [[ $SOLR_HOME != /* ]]; then
- if [[ -d "`pwd`/$SOLR_HOME" ]]; then
- SOLR_HOME="$(pwd)/$SOLR_HOME"
+ if [[ -d "`pwd`/$SOLR_HOME" ]]; then
+ SOLR_HOME="$(pwd)/$SOLR_HOME"
elif [[ -d "$SOLR_SERVER_DIR/$SOLR_HOME" ]]; then
SOLR_HOME="$SOLR_SERVER_DIR/$SOLR_HOME"
- SOLR_PID_DIR="$SOLR_HOME"
fi
fi
+if [ -z "$SOLR_PID_DIR" ]; then
+ SOLR_PID_DIR="$SOLR_HOME"
+fi
+
# Set the default configset dir to be bootstrapped as _default
if [ -z "$DEFAULT_CONFDIR" ]; then
DEFAULT_CONFDIR="$SOLR_SERVER_DIR/solr/configsets/_default/conf"
@@ -1899,7 +1903,11 @@ fi
LOG4J_CONFIG=()
if [ -n "$LOG4J_PROPS" ]; then
- LOG4J_CONFIG+=("-Dlog4j.configurationFile=$LOG4J_PROPS" '-Dlog4j2.is.webapp' '-Dlog4j2.garbagefreeThreadContextMap=true' '-Dlog4j2.enableDirectEncoders=true' '-Dlog4j2.enable.threadlocals=true')
+ LOG4J_CONFIG+=("-Dlog4j.configurationFile=$LOG4J_PROPS")
+ LOG4J_CONFIG+=('-Dlog4j2.is.webapp')
+ LOG4J_CONFIG+=('-Dlog4j2.garbagefreeThreadContextMap=true')
+ LOG4J_CONFIG+=('-Dlog4j2.enableDirectEncoders=true')
+ LOG4J_CONFIG+=('-Dlog4j2.enable.threadlocals=true')
fi
if [ "$SCRIPT_CMD" == "stop" ]; then
@@ -2108,7 +2116,7 @@ function start_solr() {
'-XX:MaxTenuringThreshold=16' \
'-XX:+ExplicitGCInvokesConcurrent')
else
- GC_TUNE=($GC_TUNE)
+ GC_TUNE=${GC_TUNE[@]}
fi
if [ -n "$SOLR_WAIT_FOR_ZK" ]; then
@@ -2145,17 +2153,17 @@ function start_solr() {
echo -e " SOLR_HOST = $SOLR_HOST"
echo -e " SOLR_PORT = $SOLR_PORT"
echo -e " STOP_PORT = $STOP_PORT"
- echo -e " JAVA_MEM_OPTS = " "${JAVA_MEM_OPTS[@]}"
- echo -e " GC_TUNE = " "${GC_TUNE[@]}"
- echo -e " GC_LOG_OPTS = " "${GC_LOG_OPTS[@]}"
+ echo -e " JAVA_MEM_OPTS = ${JAVA_MEM_OPTS[@]}"
+ echo -e " GC_TUNE = ${GC_TUNE[@]}"
+ echo -e " GC_LOG_OPTS = ${GC_LOG_OPTS[@]}"
echo -e " SOLR_TIMEZONE = $SOLR_TIMEZONE"
if [ "$SOLR_MODE" == "solrcloud" ]; then
- echo -e " CLOUD_MODE_OPTS = " "${CLOUD_MODE_OPTS[@]}"
+ echo -e " CLOUD_MODE_OPTS = ${CLOUD_MODE_OPTS[@]}"
fi
if [ "$SOLR_OPTS" != "" ]; then
- echo -e " SOLR_OPTS = " "${SOLR_OPTS[@]}"
+ echo -e " SOLR_OPTS = ${SOLR_OPTS[@]}"
fi
if [ "$SOLR_ADDL_ARGS" != "" ]; then
@@ -2164,7 +2172,7 @@ function start_solr() {
if [ "$ENABLE_REMOTE_JMX_OPTS" == "true" ]; then
echo -e " RMI_PORT = $RMI_PORT"
- echo -e " REMOTE_JMX_OPTS = " "${REMOTE_JMX_OPTS[@]}"
+ echo -e " REMOTE_JMX_OPTS = ${REMOTE_JMX_OPTS[@]}"
fi
if [ "$SOLR_LOG_LEVEL" != "" ]; then
@@ -2185,15 +2193,25 @@ function start_solr() {
exit 1
fi
- SOLR_START_OPTS=('-server' "${JAVA_MEM_OPTS[@]}" "${GC_TUNE[@]}" "${GC_LOG_OPTS[@]}" "${IP_ACL_OPTS[@]}" \
- "${REMOTE_JMX_OPTS[@]}" "${CLOUD_MODE_OPTS[@]}" "$SOLR_LOG_LEVEL_OPT" "-Dsolr.log.dir=$SOLR_LOGS_DIR" \
- "-Djetty.port=$SOLR_PORT" "-DSTOP.PORT=$stop_port" "-DSTOP.KEY=$STOP_KEY" \
- # '-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" \
- # MRM TODO: this is hard to deref properly with arguments "-XX:OnOutOfMemoryError=$SOLR_TIP/bin/oom_solr.sh $SOLR_PORT $SOLR_LOGS_DIR" \
- "-Djetty.home=$SOLR_SERVER_DIR" "-Dsolr.solr.home=$SOLR_HOME" "-Dsolr.data.home=$SOLR_DATA_HOME" "-Dsolr.install.dir=$SOLR_TIP" \
- "-Dorg.apache.xml.dtm.DTMManager=org.apache.xml.dtm.ref.DTMManagerDefault" "-Djava.net.preferIPv4Stack=true" "-Dsolr.default.confdir=$DEFAULT_CONFDIR" "${LOG4J_CONFIG[@]}" "${SOLR_OPTS[@]}" "${SECURITY_MANAGER_OPTS[@]}" "${SOLR_ADMIN_UI}")
+ LOG4J_CONFIG+=(${SOLR_LOG_LEVEL_OPT[@]})
+ LOG4J_CONFIG+=("-Dlog4j2.is.webapp=false")
+ LOG4J_CONFIG+=("-Dlog4j2.garbagefreeThreadContextMap=true")
+ LOG4J_CONFIG+=("-Dlog4j2.enableDirectEncoders=true")
+ LOG4J_CONFIG+=("-Dlog4j2.enable.threadlocals=true")
+
+ SOLR_START_OPTS=(${JAVA_MEM_OPTS[@]} ${GC_TUNE[@]} ${GC_LOG_OPTS[@]} ${IP_ACL_OPTS[@]} ${REMOTE_JMX_OPTS[@]} ${CLOUD_MODE_OPTS[@]})
+ SOLR_START_OPTS+=(${SOLR_HOST_ARG[@]} ${LOG4J_CONFIG[@]} ${SECURITY_MANAGER_OPTS[@]} ${SOLR_ADMIN_UI})
+
+ SOLR_START_OPTS+=("-Dsolr.log.dir=${SOLR_LOGS_DIR}" "-Djetty.port=${SOLR_PORT}" "-DSTOP.PORT=${stop_port}" "-DSTOP.KEY=${STOP_KEY}")
+ SOLR_START_OPTS+=("-Duser.timezone=${SOLR_TIMEZONE}" "-Djetty.home=${SOLR_SERVER_DIR}" "-Dsolr.solr.home=${SOLR_HOME}" "-Dsolr.data.home=${SOLR_DATA_HOME}" "-Dsolr.install.dir=${SOLR_TIP}")
+ SOLR_START_OPTS+=("-Dorg.apache.xml.dtm.DTMManager=org.apache.xml.dtm.ref.DTMManagerDefault" "-Djava.net.preferIPv4Stack=true" "-Dsolr.default.confdir=${DEFAULT_CONFDIR}")
+ SOLR_START_OPTS+=("-XX:-UseBiasedLocking")
+
+ # '-OmitStackTraceInFastThrow' ensures stack traces in errors,
+ # users who don't care about useful error msgs can override in SOLR_OPTS with +OmitStackTraceInFastThrow
+ SOLR_START_OPTS+=("-XX:-OmitStackTraceInFastThrow")
+
+ # MRM TODO: this is hard to deref properly with arguments "-XX:OnOutOfMemoryError=$SOLR_TIP/bin/oom_solr.sh $SOLR_PORT $SOLR_LOGS_DIR"
mk_writable_dir "$SOLR_LOGS_DIR" "Logs"
if [[ -n "$SOLR_HEAP_DUMP_DIR" ]]; then
@@ -2213,18 +2231,29 @@ function start_solr() {
echo ""
fi
+ SOLR_JETTY_ADDL_CONFIG+=(SOLR_JETTY_ADDL_CONFIG[@])
+ SOLR_START_OPTS+=(${SOLR_OPTS[@]})
+
+ # MRM TODO: enable
+ #SOLR_START_OPTS+=("-XX:OnOutOfMemoryError=${SOLR_TIP}/bin/oom_solr.sh ${SOLR_PORT} ${SOLR_LOGS_DIR}")
+
if [ "$run_in_foreground" == "true" ]; then
- exec "$JAVA" -Djetty.state=${SOLR_PID_DIR}/jetty.state -Dsolr.log.muteconsole "${SOLR_START_OPTS[@]}" "${SOLR_ADDL_ARGS}" -Dlog4j2.is.webapp=false -Dlog4j2.garbagefreeThreadContextMap=true \
- -Dlog4j2.enableDirectEncoders=true -Dlog4j2.enable.threadlocals=true -XX:-UseBiasedLocking -jar start.jar "${SOLR_JETTY_CONFIG[@]}" "${SOLR_JETTY_ADDL_CONFIG}"
+ #set -x
+ exec "$JAVA" "${SOLR_START_OPTS[@]}" -jar start.jar "${SOLR_JETTY_CONFIG[@]}"
else
- # run Solr in the background
+ # run Solr in the background MRM-TODO: Move relevant parts in from jetty.sh
+
+ SOLR_START_OPTS+=("-Djetty.state=${SOLR_PID_DIR}/jetty.state" "-Dsolr.log.muteconsole=true")
+
export JAVA=$JAVA
export JETTY_HOME="${SOLR_SERVER_DIR}"
- export JETTY_PID="${SOLR_PID_DIR}/solr-$SOLR_PORT.pid"
- export JETTY_ARGS[@]=("${SOLR_JETTY_CONFIG[@]}" "${SOLR_JETTY_ADDL_CONFIG[@]}")
- export JAVA_OPTIONS[@]=("${SOLR_START_OPTS[@]}" "${SOLR_ADDL_ARGS[@]}" '-XX:-UseBiasedLocking' '-Dsolr.log.muteconsole')
- export JETTY_STATE[@]=("${SOLR_PID_DIR}/jetty.state")
- bash $SOLR_SERVER_DIR/../bin/jetty.sh start
+ export JETTY_PID="solr-$SOLR_PORT.pid"
+ export JETTY_RUN="$SOLR_PID_DIR"
+ export JETTY_PID="$SOLR_PID_DIR/solr-$SOLR_PORT.pid"
+ export JETTY_ARGS="${SOLR_JETTY_CONFIG[*]}"
+ export JAVA_OPTIONS="${SOLR_START_OPTS[@]}"
+ export JETTY_STATE="${SOLR_PID_DIR}/jetty.state"
+ bash "${SOLR_SERVER_DIR}"/../bin/jetty.sh -d start
fi
}
diff --git a/solr/docker/tests/shared.sh b/solr/docker/tests/shared.sh
index e034387..35bbd56 100755
--- a/solr/docker/tests/shared.sh
+++ b/solr/docker/tests/shared.sh
@@ -54,7 +54,7 @@ function wait_for_server_started {
log="${BUILD_DIR}/${container_name}.log"
while true; do
set -x
- docker cp "${container_name}":/var/solr/logs/solr.log "${log}" || echo "log not found"
+ docker logs "$container_name" > "${log}" 2>&1
if grep -E -q '(o\.e\.j\.s\.Server Started|Started SocketConnector|SolrDispatchFilter\.init\(\) end)' "${log}" ; then
break
fi
diff --git a/solr/server/etc/jetty-started.xml b/solr/server/etc/jetty-started.xml
index f6bfb4c..b9f33de 100644
--- a/solr/server/etc/jetty-started.xml
+++ b/solr/server/etc/jetty-started.xml
@@ -8,7 +8,7 @@
<Call name="addLifeCycleListener">
<Arg>
<New class="org.eclipse.jetty.util.component.FileNoticeLifeCycleListener">
- <Arg><SystemProperty name="jetty.state" default="./jetty.state"/></Arg>
+ <Arg><Property name="jetty.state" default="./jetty.state"/></Arg>
</New>
</Arg>
</Call>
diff --git a/solr/server/resources/log4j2.xml b/solr/server/resources/log4j2.xml
index 03a5c06..9105008 100644
--- a/solr/server/resources/log4j2.xml
+++ b/solr/server/resources/log4j2.xml
@@ -21,20 +21,30 @@
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
- <LogstashLayout dateTimeFormatPattern="yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
+ <PatternLayout>
+ <Pattern>
+ %maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{node_name} %X{core}] %c{1.} %m%notEmpty{ =>%ex{short}}}{10240}%n
+ </Pattern>
+ </PatternLayout>
+ <!-- <LogstashLayout dateTimeFormatPattern="yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
eventTemplateUri="classpath:LogstashJsonEventLayoutV1.json"
prettyPrintEnabled="true"
- stackTraceEnabled="true"/>
+ stackTraceEnabled="true"/> -->
</Console>
<RollingRandomAccessFile
name="MainLogFile"
fileName="${sys:solr.log.dir}/solr.log"
filePattern="${sys:solr.log.dir}/solr.log.%i" >
- <LogstashLayout dateTimeFormatPattern="yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
+ <PatternLayout>
+ <Pattern>
+ %maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{node_name} %X{core}] %c{1.} %m%notEmpty{ =>%ex{short}}}{10240}%n
+ </Pattern>
+ </PatternLayout>
+ <!-- <LogstashLayout dateTimeFormatPattern="yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
eventTemplateUri="classpath:LogstashJsonEventLayoutV1.json"
prettyPrintEnabled="true"
- stackTraceEnabled="true"/>
+ stackTraceEnabled="true"/> -->
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="64 MB"/>
@@ -46,15 +56,20 @@
name="SlowLogFile"
fileName="${sys:solr.log.dir}/solr_slow_requests.log"
filePattern="${sys:solr.log.dir}/solr_slow_requests.log.%i" >
- <LogstashLayout dateTimeFormatPattern="yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
+ <PatternLayout>
+ <Pattern>
+ %maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{node_name} %X{core}] %c{1.} %m%notEmpty{ =>%ex{short}}}{10240}%n
+ </Pattern>
+ </PatternLayout>
+ <!-- <LogstashLayout dateTimeFormatPattern="yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
eventTemplateUri="classpath:LogstashJsonEventLayoutV1.json"
prettyPrintEnabled="true"
- stackTraceEnabled="true"/>
+ stackTraceEnabled="true"/> -->
<Policies>
<OnStartupTriggeringPolicy />
- <SizeBasedTriggeringPolicy size="32 MB"/>
+ <SizeBasedTriggeringPolicy size="64 MB"/>
</Policies>
- <DefaultRolloverStrategy max="10"/>
+ <DefaultRolloverStrategy max="20"/>
</RollingRandomAccessFile>
</Appenders>
@@ -68,7 +83,7 @@
<AsyncLogger name="org.apache.zookeeper.ClientCnxn" level="ERROR"/>
<AsyncLogger name="org.apache.zookeeper.server.ZooKeeperCriticalThread" level="OFF"/>
- <AsyncLogger name="org.apache.solr.update.processor.LogUpdateProcessorFactory" level="DEBUG"/>
+ <AsyncLogger name="org.apache.solr.update.processor.LogUpdateProcessorFactory" level="INFO"/>
<AsyncLogger name="org.apache.solr.update.LoggingInfoStream" level="OFF"/>
<AsyncLogger name="org.apache.solr.core.SolrCore.SlowRequest" level="INFO" additivity="false">
<AppenderRef ref="SlowLogFile"/>
@@ -76,6 +91,7 @@
<AsyncRoot level="INFO">
<AppenderRef ref="MainLogFile"/>
+ <AppenderRef ref="STDOUT"/>
</AsyncRoot>
</Loggers>
</Configuration>