mirror of https://github.com/apache/cassandra
Do not source cassandra-env.sh unnecessarily in nodetool and other tooling
Sourcing cassandra-env.sh in bin/nodetool just to pick JMX_PORT from there has undesirable side-effect of not being able to run nodetool when MAX_HEAP_SIZE in cassandra-env.sh is uncommented. patch by Stefan Miklosovic; reviewed by Dmitry Konstantinov, Michael Semb Wever for CASSANDRA-20745
This commit is contained in:
parent
cf83f8b2a4
commit
96a6a7bc12
|
|
@ -1,4 +1,5 @@
|
|||
5.0.5
|
||||
* Do not source cassandra-env.sh unnecessarily in nodetool and other tooling (CASSANDRA-20745)
|
||||
* Make source distribution buildable by ant artifacts as doc/scripts/process-native-protocol-specs-in-docker.sh was not executable (CASSANDRA-20802)
|
||||
* Fix StorageService JMX mbean not available during bootstrap (CASSANDRA-19902)
|
||||
* SSTableIndexWriter#abort() should log more quietly in cases where an exception is not provided (CASSANDRA-20695)
|
||||
|
|
|
|||
23
bin/nodetool
23
bin/nodetool
|
|
@ -43,13 +43,19 @@ if [ -z "$CASSANDRA_CONF" -o -z "$CLASSPATH" ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Run cassandra-env.sh to pick up JMX_PORT
|
||||
JMX_PORT=""
|
||||
|
||||
# Try to parse port from cassandra-env.sh without sourcing it
|
||||
if [ -f "$CASSANDRA_CONF/cassandra-env.sh" ]; then
|
||||
JVM_OPTS_SAVE=$JVM_OPTS
|
||||
MAX_HEAP_SIZE_SAVE=$MAX_HEAP_SIZE
|
||||
. "$CASSANDRA_CONF/cassandra-env.sh"
|
||||
MAX_HEAP_SIZE=$MAX_HEAP_SIZE_SAVE
|
||||
JVM_OPTS="$JVM_OPTS_SAVE"
|
||||
jmx_port_property=$(grep "^JMX_PORT=\"[0-9]\+\"$" "$CASSANDRA_CONF/cassandra-env.sh")
|
||||
if [ ! "x${jmx_port_property}" = "x" ]; then
|
||||
JMX_PORT=$(echo "${jmx_port_property}" | sed s/\"//g | cut -d "=" -f2)
|
||||
fi
|
||||
fi
|
||||
|
||||
# If, by any chance, it is not there, set it to default.
|
||||
if [ "x$JMX_PORT" = "x" ]; then
|
||||
JMX_PORT=7199
|
||||
fi
|
||||
|
||||
# JMX Port passed via cmd line args (-p 9999 / --port 9999 / --port=9999)
|
||||
|
|
@ -98,6 +104,11 @@ if [ "x$MAX_HEAP_SIZE" = "x" ]; then
|
|||
MAX_HEAP_SIZE="128m"
|
||||
fi
|
||||
|
||||
# Sets the path where logback and GC logs are written.
|
||||
if [ "x$CASSANDRA_LOG_DIR" = "x" ] ; then
|
||||
CASSANDRA_LOG_DIR="$CASSANDRA_HOME/logs"
|
||||
fi
|
||||
|
||||
CMD=$(echo "$JAVA" $JAVA_AGENT -ea -cp "$CLASSPATH" $JVM_OPTS -Xmx$MAX_HEAP_SIZE \
|
||||
-XX:ParallelGCThreads=1 \
|
||||
-Dcassandra.storagedir="$cassandra_storagedir" \
|
||||
|
|
|
|||
|
|
@ -37,17 +37,6 @@ if [ -z "$CASSANDRA_CONF" -o -z "$CLASSPATH" ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Run cassandra-env.sh to pick up JMX_PORT
|
||||
if [ -f "$CASSANDRA_CONF/cassandra-env.sh" ]; then
|
||||
JVM_OPTS_SAVE=$JVM_OPTS
|
||||
MAX_HEAP_SIZE_SAVE=$MAX_HEAP_SIZE
|
||||
. "$CASSANDRA_CONF/cassandra-env.sh"
|
||||
MAX_HEAP_SIZE=$MAX_HEAP_SIZE_SAVE
|
||||
JVM_OPTS=$JVM_OPTS_SAVE
|
||||
fi
|
||||
|
||||
# JMX Port passed via cmd line args (-p 9999 / --port 9999 / --port=9999)
|
||||
# should override the value from cassandra-env.sh
|
||||
ARGS=""
|
||||
JVM_ARGS=""
|
||||
while true
|
||||
|
|
|
|||
|
|
@ -37,17 +37,6 @@ if [ -z "$CASSANDRA_CONF" -o -z "$CLASSPATH" ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Run cassandra-env.sh to pick up JMX_PORT
|
||||
if [ -f "$CASSANDRA_CONF/cassandra-env.sh" ]; then
|
||||
JVM_OPTS_SAVE=$JVM_OPTS
|
||||
MAX_HEAP_SIZE_SAVE=$MAX_HEAP_SIZE
|
||||
. "$CASSANDRA_CONF/cassandra-env.sh"
|
||||
MAX_HEAP_SIZE=$MAX_HEAP_SIZE_SAVE
|
||||
JVM_OPTS=$JVM_OPTS_SAVE
|
||||
fi
|
||||
|
||||
# JMX Port passed via cmd line args (-p 9999 / --port 9999 / --port=9999)
|
||||
# should override the value from cassandra-env.sh
|
||||
ARGS=""
|
||||
JVM_ARGS=""
|
||||
while true
|
||||
|
|
|
|||
Loading…
Reference in New Issue