diff --git a/CHANGES.txt b/CHANGES.txt index c195d65179..07e23c0e4b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -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) diff --git a/bin/nodetool b/bin/nodetool index f78b02e344..96954c8727 100755 --- a/bin/nodetool +++ b/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" \ diff --git a/tools/bin/fqltool b/tools/bin/fqltool index dc49e50246..dd4a395615 100755 --- a/tools/bin/fqltool +++ b/tools/bin/fqltool @@ -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 diff --git a/tools/bin/jmxtool b/tools/bin/jmxtool index b46305c08f..b2372c2db5 100755 --- a/tools/bin/jmxtool +++ b/tools/bin/jmxtool @@ -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