[accumulo-testing] branch main updated: Replace use of `pssh` with `parallel-ssh` (#179)

2021-12-16 Thread ctubbsii
This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo-testing.git


The following commit(s) were added to refs/heads/main by this push:
 new e74a1f5  Replace use of `pssh` with `parallel-ssh` (#179)
e74a1f5 is described below

commit e74a1f5904bc165d4054ea1a0fd93d8eacc82606
Author: Dom G <47725857+domgargu...@users.noreply.github.com>
AuthorDate: Thu Dec 16 14:39:28 2021 -0500

Replace use of `pssh` with `parallel-ssh` (#179)

* Replaced pssh and pscp
* Fall back to parallel-ssh when pssh unavailable
* Fix quoting in sudo commands in agitator
* Preserve PSSH environment over sudo commands for agitator
* Properly set PSSH in perl agitator code from process environment
* Fix a couple typos in READMEs

Co-authored-by: Christopher Tubbs 
---
 bin/agitator  | 15 +++
 libexec/master-agitator.pl| 14 ++
 test/bench/README.md  |  2 +-
 test/compat/japi-compliance/README.md |  2 +-
 test/scalability/README.md|  2 +-
 test/stress/README.md |  7 ---
 test/stress/start-readers.sh  |  4 ++--
 test/stress/start-writers.sh  |  4 ++--
 test/stress/stop-readers.sh   |  2 +-
 test/stress/stop-writers.sh   |  2 +-
 test/stress/stress-env.sh | 12 
 11 files changed, 46 insertions(+), 20 deletions(-)

diff --git a/bin/agitator b/bin/agitator
index 8d15f94..cf1dd55 100755
--- a/bin/agitator
+++ b/bin/agitator
@@ -31,7 +31,14 @@ EOF
 }
 
 function start_agitator() {
-  hash pssh 2>/dev/null || { echo >&2 "The agitator requires pssh to be 
installed. Aborting."; exit 1; }
+  ## check that pssh is installed, falling back to parallel-ssh if needed
+  if hash pssh 2>/dev/null; then
+PSSH=pssh
+  elif hash parallel-ssh 2>/dev/null; then
+PSSH=parallel-ssh
+  else
+echo >&2 "The agitator requires pssh/parallel-ssh to be installed. 
Aborting."; exit 1;
+  fi
 
   mkdir -p "${at_home}/logs"
   log_base="${at_home}/logs/$(date +%Y%m%d%H%M%S)_$(hostname)"
@@ -50,15 +57,15 @@ function start_agitator() {
 $tserver_cmd > "${tserver_log}.out" 2> "${tserver_log}.err" &
   else
 echo "Running master-agitator and tserver-agitator as $AGTR_ACCUMULO_USER 
using sudo."
-sudo -u "$AGTR_ACCUMULO_USER" "$master_cmd" > "${master_log}.out" 2> 
"${master_log}.err" &
-sudo -u "$AGTR_ACCUMULO_USER" "$tserver_cmd" > "${tserver_log}.out" 2> 
"${tserver_log}.err" &
+sudo --preserve-env=PSSH -u "$AGTR_ACCUMULO_USER" $master_cmd > 
"${master_log}.out" 2> "${master_log}.err" &
+sudo -u "$AGTR_ACCUMULO_USER" $tserver_cmd > "${tserver_log}.out" 2> 
"${tserver_log}.err" &
   fi
   if [[ $AGITATOR_USER == "$AGTR_HDFS_USER" ]]; then
 echo "Running datanode-agitator as $AGITATOR_USER"
 $datanode_cmd > "${datanode_log}.out" 2> "${datanode_log}.err" &
   else
 echo "Running datanode-agitator as $AGTR_HDFS_USER using sudo."
-sudo -u "$AGTR_HDFS_USER" "$datanode_cmd" > "${datanode_log}.out" 2> 
"${datanode_log}.err" &
+sudo -u "$AGTR_HDFS_USER" $datanode_cmd > "${datanode_log}.out" 2> 
"${datanode_log}.err" &
   fi
 
   if ${AGTR_HDFS:-false} ; then
diff --git a/libexec/master-agitator.pl b/libexec/master-agitator.pl
index e90c70d..dfc2155 100755
--- a/libexec/master-agitator.pl
+++ b/libexec/master-agitator.pl
@@ -30,6 +30,12 @@ if( defined $ENV{'ACCUMULO_HOME'} ){
   print "ERROR: ACCUMULO_HOME needs to be set!";
   exit(1);
 }
+if( defined $ENV{'PSSH'} ){
+  $PSSH = $ENV{'PSSH'};
+} else {
+  print "ERROR: PSSH needs to be set!";
+  exit(1);
+}
 
 $accumuloConfDir = $accumuloHome . '/conf';
 
@@ -67,11 +73,11 @@ while(1){
system($cmd);
}else{
print STDERR "$t Killing all masters\n";
-   $cmd = "pssh -h $accumuloConfDir/masters \"pkill -f '[ 
]org.apache.accumulo.start.*master'\" < /dev/null";
+   $cmd = "$PSSH -h $accumuloConfDir/masters \"pkill -f '[ 
]org.apache.accumulo.start.*master'\" < /dev/null";
print "$t $cmd\n";
system($cmd);
 
-   $cmd = "pssh -h $accumuloConfDir/$gcfile \"pkill -f '[ 
]org.apache.accumulo.start.*gc'\" < /dev/null";
+   $cmd = "$PSSH -h $accumuloConfDir/$gcfile \"pkill -f '[ 
]org.apache.accumulo.start.*gc'\" < /dev/null";
print "$t $cmd\n";
system($cmd);
}
@@ -80,11 +86,11 @@ while(1){
$t = strftime "%Y%m%d %H:%M:%S", localtime;
print STDERR "$t Running start-all\n";
 
-   $cmd = "pssh -h $accumuloConfDir/masters 
\"$accumuloHome/bin/accumulo-service master start\" < /dev/null";
+   $cmd = "$PSSH -h $accumuloConfDir/masters 
\"$accumuloHome/bin/accumulo-service master start\" < /dev/null";
print "$t $cmd\n";
system($cmd);
 
-   $cmd = "pssh -h $accumuloConfDir/$gcfile 

[accumulo] branch main updated: Fix accumulo-env.sh variables (#2391)

2021-12-16 Thread ctubbsii
This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/main by this push:
 new c029c89  Fix accumulo-env.sh variables (#2391)
c029c89 is described below

commit c029c89ac3e9bfc4f9b73b8d4e016ce07419fba6
Author: Christopher Tubbs 
AuthorDate: Thu Dec 16 12:54:05 2021 -0500

Fix accumulo-env.sh variables (#2391)

* Remove unneeded/useless exports; they don't need to be exported by
  default, since the env script is sourced by bin/accumulo, and they
  don't need to be passed to child processes; the user can modify their
  own env script if they need these to be passed to their child
  processes because of their specific needs
* Treat ACCUMULO_JAVA_OPTS as scalar variable containing space-delimited
  command-line options to prepend to JAVA_OPTS in accumulo-env.sh rather
  than assume it's an array, because arrays can't currently be exported
  in bash, so it's not possible for users to have set it in their
  environment as an array to be picked up here
---
 assemble/conf/accumulo-env.sh | 12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/assemble/conf/accumulo-env.sh b/assemble/conf/accumulo-env.sh
index b067203..2ce7160 100644
--- a/assemble/conf/accumulo-env.sh
+++ b/assemble/conf/accumulo-env.sh
@@ -31,13 +31,13 @@
 
 
 ## Accumulo logs directory. Referenced by logger config.
-export ACCUMULO_LOG_DIR="${ACCUMULO_LOG_DIR:-${basedir}/logs}"
+ACCUMULO_LOG_DIR="${ACCUMULO_LOG_DIR:-${basedir}/logs}"
 ## Hadoop installation
-export HADOOP_HOME="${HADOOP_HOME:-/path/to/hadoop}"
+HADOOP_HOME="${HADOOP_HOME:-/path/to/hadoop}"
 ## Hadoop configuration
-export HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-${HADOOP_HOME}/etc/hadoop}"
+HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-${HADOOP_HOME}/etc/hadoop}"
 ## Zookeeper installation
-export ZOOKEEPER_HOME="${ZOOKEEPER_HOME:-/path/to/zookeeper}"
+ZOOKEEPER_HOME="${ZOOKEEPER_HOME:-/path/to/zookeeper}"
 
 ##
 # Build CLASSPATH variable
@@ -68,7 +68,7 @@ export CLASSPATH
 ##
 
 ## JVM options set for all processes. Extra options can be passed in by 
setting ACCUMULO_JAVA_OPTS to an array of options.
-JAVA_OPTS=("${ACCUMULO_JAVA_OPTS[@]}"
+JAVA_OPTS=($ACCUMULO_JAVA_OPTS
   '-XX:OnOutOfMemoryError=kill -9 %p'
   '-XX:-OmitStackTraceInFastThrow'
   '-Djava.net.preferIPv4Stack=true'
@@ -115,8 +115,6 @@ case "$cmd" in
 ;;
 esac
 
-export JAVA_OPTS
-
 
 # Variables set to a default