You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2014/08/28 03:46:01 UTC

[1/9] git commit: ACCUMULO-3084 just warn about long timer delays

Repository: accumulo
Updated Branches:
  refs/heads/1.5.2-SNAPSHOT 6f2fd4d3a -> f838cd9e4
  refs/heads/1.6.1-SNAPSHOT 8808ecbf1 -> 8147b196a
  refs/heads/master 572d473d3 -> 91186bf27


ACCUMULO-3084 just warn about long timer delays


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/6f2fd4d3
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/6f2fd4d3
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/6f2fd4d3

Branch: refs/heads/1.6.1-SNAPSHOT
Commit: 6f2fd4d3a54bad464dc3eb0982c4e4e2e5590366
Parents: 30a0ca3
Author: Eric C. Newton <er...@gmail.com>
Authored: Tue Aug 26 17:17:44 2014 -0400
Committer: Eric C. Newton <er...@gmail.com>
Committed: Tue Aug 26 17:48:53 2014 -0400

----------------------------------------------------------------------
 .../accumulo/server/tabletserver/TabletServer.java  | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/6f2fd4d3/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java b/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
index b9b68bb..1e3e1b1 100644
--- a/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
+++ b/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
@@ -234,9 +234,11 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu
   
   private static HashMap<String,Long> prevGcTime = new HashMap<String,Long>();
   private static long lastMemorySize = 0;
+  private static long lastMemoryCheckTime = 0;
   private static long gcTimeIncreasedCount;
   
   private static final long MAX_TIME_TO_WAIT_FOR_SCAN_RESULT_MILLIS = 1000;
+  private static final long TIME_BETWEEN_GC_CHECKS = 5000;
   
   private TabletServerLogger logger;
   
@@ -264,10 +266,12 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu
             }
         }
       }
-    }, 5000, 5000);
+    }, TIME_BETWEEN_GC_CHECKS, TIME_BETWEEN_GC_CHECKS);
   }
   
   private synchronized static void logGCInfo(AccumuloConfiguration conf) {
+    long now = System.currentTimeMillis();
+
     List<GarbageCollectorMXBean> gcmBeans = ManagementFactory.getGarbageCollectorMXBeans();
     Runtime rt = Runtime.getRuntime();
     
@@ -322,12 +326,22 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu
       log.debug(sb.toString());
     }
     
+    if (lastMemoryCheckTime > 0 && lastMemoryCheckTime < now) {
+      long diff = now - lastMemoryCheckTime;
+      if (diff > 2 * TIME_BETWEEN_GC_CHECKS) {
+        log.warn(String.format("Check for long GC pauses not called in a timely fashion %.1f", diff / 1000.));
+      }
+      lastMemoryCheckTime = now;
+      return;
+    }
+    
     final long keepAliveTimeout = conf.getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT);
     if (maxIncreaseInCollectionTime > keepAliveTimeout) {
       Halt.halt("Garbage collection may be interfering with lock keep-alive.  Halting.", -1);
     }
     
     lastMemorySize = mem;
+    lastMemoryCheckTime = now;
   }
   
   private TabletStatsKeeper statsKeeper;


[2/9] git commit: ACCUMULO-3084 just warn about long timer delays

Posted by el...@apache.org.
ACCUMULO-3084 just warn about long timer delays


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/6f2fd4d3
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/6f2fd4d3
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/6f2fd4d3

Branch: refs/heads/master
Commit: 6f2fd4d3a54bad464dc3eb0982c4e4e2e5590366
Parents: 30a0ca3
Author: Eric C. Newton <er...@gmail.com>
Authored: Tue Aug 26 17:17:44 2014 -0400
Committer: Eric C. Newton <er...@gmail.com>
Committed: Tue Aug 26 17:48:53 2014 -0400

----------------------------------------------------------------------
 .../accumulo/server/tabletserver/TabletServer.java  | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/6f2fd4d3/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java b/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
index b9b68bb..1e3e1b1 100644
--- a/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
+++ b/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
@@ -234,9 +234,11 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu
   
   private static HashMap<String,Long> prevGcTime = new HashMap<String,Long>();
   private static long lastMemorySize = 0;
+  private static long lastMemoryCheckTime = 0;
   private static long gcTimeIncreasedCount;
   
   private static final long MAX_TIME_TO_WAIT_FOR_SCAN_RESULT_MILLIS = 1000;
+  private static final long TIME_BETWEEN_GC_CHECKS = 5000;
   
   private TabletServerLogger logger;
   
@@ -264,10 +266,12 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu
             }
         }
       }
-    }, 5000, 5000);
+    }, TIME_BETWEEN_GC_CHECKS, TIME_BETWEEN_GC_CHECKS);
   }
   
   private synchronized static void logGCInfo(AccumuloConfiguration conf) {
+    long now = System.currentTimeMillis();
+
     List<GarbageCollectorMXBean> gcmBeans = ManagementFactory.getGarbageCollectorMXBeans();
     Runtime rt = Runtime.getRuntime();
     
@@ -322,12 +326,22 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu
       log.debug(sb.toString());
     }
     
+    if (lastMemoryCheckTime > 0 && lastMemoryCheckTime < now) {
+      long diff = now - lastMemoryCheckTime;
+      if (diff > 2 * TIME_BETWEEN_GC_CHECKS) {
+        log.warn(String.format("Check for long GC pauses not called in a timely fashion %.1f", diff / 1000.));
+      }
+      lastMemoryCheckTime = now;
+      return;
+    }
+    
     final long keepAliveTimeout = conf.getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT);
     if (maxIncreaseInCollectionTime > keepAliveTimeout) {
       Halt.halt("Garbage collection may be interfering with lock keep-alive.  Halting.", -1);
     }
     
     lastMemorySize = mem;
+    lastMemoryCheckTime = now;
   }
   
   private TabletStatsKeeper statsKeeper;


[9/9] git commit: Merge branch '1.6.1-SNAPSHOT'

Posted by el...@apache.org.
Merge branch '1.6.1-SNAPSHOT'

Conflicts:
	assemble/bin/start-server.sh
	assemble/bin/stop-server.sh


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/91186bf2
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/91186bf2
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/91186bf2

Branch: refs/heads/master
Commit: 91186bf2779185a679ed1e7a7ce0680d0e4cb9e6
Parents: 572d473 8147b19
Author: Josh Elser <el...@apache.org>
Authored: Wed Aug 27 21:42:32 2014 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Wed Aug 27 21:42:32 2014 -0400

----------------------------------------------------------------------
 assemble/bin/start-server.sh | 20 ++++++++++++++------
 assemble/bin/stop-server.sh  |  2 +-
 2 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/91186bf2/assemble/bin/start-server.sh
----------------------------------------------------------------------
diff --cc assemble/bin/start-server.sh
index 2afabb9,aa1375a..43b5d8c
--- a/assemble/bin/start-server.sh
+++ b/assemble/bin/start-server.sh
@@@ -35,43 -35,54 +35,51 @@@ if [[ $? != 0 ]]; the
  else
     LOGHOST=$(host "$1" | head -1 | cut -d' ' -f1)
  fi
 -ADDRESS="$1"
 -SERVICE="$2"
 -LONGNAME="$3"
 -if [ -z "$LONGNAME" ]; then
 -   LONGNAME="$2"
 -fi
 -SLAVES=$( wc -l < ${ACCUMULO_CONF_DIR}/slaves )
 +ADDRESS=$1
 +SERVICE=$2
 +LONGNAME=$3
 +[[ -z $LONGNAME ]] && LONGNAME=$2
 +
 +SLAVES=$(wc -l < "${ACCUMULO_CONF_DIR}/slaves")
  
  IFCONFIG=/sbin/ifconfig
 -if [ ! -x $IFCONFIG ]; then
 -   IFCONFIG='/bin/netstat -ie'
 -fi
 +[[ ! -x $IFCONFIG ]] && IFCONFIG='/bin/netstat -ie'
 +
- # ACCUMULO-1985 Allow monitor to bind on all interfaces
- if [[ $SERVICE == monitor && $ACCUMULO_MONITOR_BIND_ALL == true ]]; then
-     ADDRESS="0.0.0.0"
- fi
  
 -ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
 -if [ $? != 0 ]
 -then
 -   ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
 +IP=$($IFCONFIG 2>/dev/null| grep "inet[^6]" | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
 +if [[ $? != 0 ]] ; then
 +   IP=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
  fi
  
- if [[ $HOST == localhost || $HOST == "$(hostname)" || $HOST = "$IP" ]]; then
+ # When the hostname provided is the alias/shortname, try to use the FQDN to make
+ # sure we send the right address to the Accumulo process.
 -if [ "$HOST" = "`hostname -s`" ]; then
 -    HOST="`hostname -f`"
++if [[ "$HOST" = "$(hostname -s)" ]]; then
++    HOST="$(hostname -f)"
+     ADDRESS="$HOST"
+ fi
+ 
+ # ACCUMULO-1985 Allow monitor to bind on all interfaces
 -if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
++if [[ ${SERVICE} == "monitor" && ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]]; then
+     ADDRESS="0.0.0.0"
+ fi
+ 
 -if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
++if [[ $HOST == localhost || $HOST == "$(hostname -f)" || $HOST = "$IP" ]]; then
     PID=$(ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
  else
 -   PID=$($SSH $HOST ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
 +   PID=$($SSH "$HOST" ps -ef | egrep "${ACCUMULO_HOME}/.*/accumulo.*.jar" | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
  fi
  
 -if [ -z "$PID" ]; then
 +if [[ -z "$PID" ]]; then
     echo "Starting $LONGNAME on $HOST"
-    if [[ $HOST == localhost || $HOST == "$(hostname)" || $HOST = "$IP" ]]; then
 -   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
 -      ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err & 
++   if [[ $HOST == localhost || $HOST == "$(hostname -f)" || $HOST = "$IP" ]]; then
 +      "${bin}/accumulo" "${SERVICE}" --address "${ADDRESS}" >"${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out" 2>"${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err" & 
        MAX_FILES_OPEN=$(ulimit -n)
     else
 -      $SSH $HOST "bash -c 'exec nohup ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err' &"
 -      MAX_FILES_OPEN=$($SSH $HOST "/usr/bin/env bash -c 'ulimit -n'") 
 +      $SSH "$HOST" "bash -c 'exec nohup ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err' &"
 +      MAX_FILES_OPEN=$($SSH "$HOST" "/usr/bin/env bash -c 'ulimit -n'") 
     fi
  
 -   if [ -n "$MAX_FILES_OPEN" ] && [ -n "$SLAVES" ] ; then
 +   if [[ -n $MAX_FILES_OPEN && -n $SLAVES ]] ; then
        MAX_FILES_RECOMMENDED=${MAX_FILES_RECOMMENDED:-32768}
        if (( SLAVES > 10 )) && (( MAX_FILES_OPEN < MAX_FILES_RECOMMENDED ))
        then

http://git-wip-us.apache.org/repos/asf/accumulo/blob/91186bf2/assemble/bin/stop-server.sh
----------------------------------------------------------------------
diff --cc assemble/bin/stop-server.sh
index 52696af,d615172..78ef783
--- a/assemble/bin/stop-server.sh
+++ b/assemble/bin/stop-server.sh
@@@ -39,16 -41,16 +39,16 @@@ the
  fi
  
  # only stop if there's not one already running
- if [[ $HOST == localhost || $HOST = "$(hostname)" || $HOST = "$IP" ]] ; then
 -if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -s`" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
++if [[ $HOST == localhost || $HOST = "$(hostname -s)" || $HOST = "$(hostname -f)" || $HOST = "$IP" ]] ; then
     PID=$(ps -ef | grep "$ACCUMULO_HOME" | egrep ${2} | grep "Main ${3}" | grep -v grep | grep -v ssh | grep -v stop-server.sh | awk {'print $2'} | head -1)
 -   if [ ! -z $PID ]; then
 +   if [[ -n $PID ]]; then
        echo "Stopping ${3} on $1";
 -      kill -s ${4} ${PID} 2>/dev/null
 +      kill -s "${4}" "${PID}" 2>/dev/null
     fi;
  else
 -   PID=$(ssh -q -o 'ConnectTimeout 8' $1 "ps -ef | grep \"$ACCUMULO_HOME\" |  egrep '${2}' | grep 'Main ${3}' | grep -v grep | grep -v ssh | grep -v stop-server.sh" | awk {'print $2'} | head -1)
 -   if [ ! -z $PID ]; then
 +   PID=$(ssh -q -o 'ConnectTimeout 8' "$1" "ps -ef | grep \"$ACCUMULO_HOME\" |  egrep '${2}' | grep 'Main ${3}' | grep -v grep | grep -v ssh | grep -v stop-server.sh" | awk {'print $2'} | head -1)
 +   if [[ -n $PID ]]; then
        echo "Stopping ${3} on $1";
 -      ssh -q -o 'ConnectTimeout 8' $1 "kill -s ${4} ${PID} 2>/dev/null"
 +      ssh -q -o 'ConnectTimeout 8' "$1" "kill -s ${4} ${PID} 2>/dev/null"
     fi;
  fi


[6/9] git commit: ACCUMULO-3087 Attempt to expand shortname to FQDN.

Posted by el...@apache.org.
ACCUMULO-3087 Attempt to expand shortname to FQDN.

This should make start-server.sh a bit more resilient
against thinking it needs to SSH around. Instead of having
to match exactly what `hostname` is returning, this should
prevent an (unnecessary) SSH just because hostname is returning
the short instead of full, or vice versa.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/f838cd9e
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/f838cd9e
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/f838cd9e

Branch: refs/heads/1.5.2-SNAPSHOT
Commit: f838cd9e4afa18f6854c49b089fb5e40e94b0958
Parents: 6f2fd4d
Author: Josh Elser <el...@apache.org>
Authored: Wed Aug 27 20:46:51 2014 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Wed Aug 27 20:46:51 2014 -0400

----------------------------------------------------------------------
 bin/start-server.sh | 21 ++++++++++++++-------
 bin/stop-server.sh  |  2 +-
 2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/f838cd9e/bin/start-server.sh
----------------------------------------------------------------------
diff --git a/bin/start-server.sh b/bin/start-server.sh
index f5fd33a..5fa2156 100755
--- a/bin/start-server.sh
+++ b/bin/start-server.sh
@@ -47,18 +47,25 @@ if [ ! -x $IFCONFIG ]; then
    IFCONFIG='/bin/netstat -ie'
 fi
 
-# ACCUMULO-1985 Allow monitor to bind on all interfaces
-if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
-    ADDRESS="0.0.0.0"
-fi
-
 ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
 if [ $? != 0 ]
 then
    ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
 fi
 
-if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
+# When the hostname provided is the alias/shortname, try to use the FQDN to make
+# sure we send the right address to the Accumulo process.
+if [ "$HOST" = "`hostname -s`" ]; then
+    HOST="`hostname -f`"
+    ADDRESS="$HOST"
+fi
+
+# ACCUMULO-1985 Allow monitor to bind on all interfaces
+if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
+    ADDRESS="0.0.0.0"
+fi
+
+if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
    PID=$(ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
 else
    PID=$($SSH $HOST ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
@@ -66,7 +73,7 @@ fi
 
 if [ -z $PID ]; then
    echo "Starting $LONGNAME on $HOST"
-   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
+   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
       ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err & 
       MAX_FILES_OPEN=$(ulimit -n)
    else

http://git-wip-us.apache.org/repos/asf/accumulo/blob/f838cd9e/bin/stop-server.sh
----------------------------------------------------------------------
diff --git a/bin/stop-server.sh b/bin/stop-server.sh
index 6fbe0af..d615172 100755
--- a/bin/stop-server.sh
+++ b/bin/stop-server.sh
@@ -41,7 +41,7 @@ then
 fi
 
 # only stop if there's not one already running
-if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
+if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -s`" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
    PID=$(ps -ef | grep "$ACCUMULO_HOME" | egrep ${2} | grep "Main ${3}" | grep -v grep | grep -v ssh | grep -v stop-server.sh | awk {'print $2'} | head -1)
    if [ ! -z $PID ]; then
       echo "Stopping ${3} on $1";


[3/9] git commit: Merge branch '1.6.1-SNAPSHOT' of https://git-wip-us.apache.org/repos/asf/accumulo into 1.6.1-SNAPSHOT

Posted by el...@apache.org.
Merge branch '1.6.1-SNAPSHOT' of https://git-wip-us.apache.org/repos/asf/accumulo into 1.6.1-SNAPSHOT


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8808ecbf
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8808ecbf
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8808ecbf

Branch: refs/heads/master
Commit: 8808ecbf1a14b3982882a4e66da5689633477726
Parents: c906e4b 2eabaf7
Author: Eric C. Newton <er...@gmail.com>
Authored: Tue Aug 26 18:03:46 2014 -0400
Committer: Eric C. Newton <er...@gmail.com>
Committed: Tue Aug 26 18:03:46 2014 -0400

----------------------------------------------------------------------
 .gitignore                                      |   19 +-
 README                                          |   41 +-
 assemble/.gitignore                             |   25 +
 assemble/bin/LogForwarder.sh                    |   50 +
 assemble/bin/accumulo                           |  171 +
 assemble/bin/bootstrap_config.sh                |  323 +
 assemble/bin/bootstrap_hdfs.sh                  |   84 +
 assemble/bin/build_native_library.sh            |   74 +
 assemble/bin/check-slaves                       |  199 +
 assemble/bin/config.sh                          |  177 +
 assemble/bin/generate_monitor_certificate.sh    |   84 +
 assemble/bin/start-all.sh                       |   77 +
 assemble/bin/start-here.sh                      |   78 +
 assemble/bin/start-server.sh                    |   87 +
 assemble/bin/stop-all.sh                        |   68 +
 assemble/bin/stop-here.sh                       |   60 +
 assemble/bin/stop-server.sh                     |   56 +
 assemble/bin/tdown.sh                           |   49 +
 assemble/bin/tool.sh                            |   92 +
 assemble/bin/tup.sh                             |   46 +
 assemble/conf/examples/crypto/README            |   23 +
 assemble/conf/examples/crypto/accumulo-site.xml |  171 +
 .../examples/vfs-classloader/accumulo-site.xml  |  175 +
 assemble/conf/templates/accumulo-env.sh         |   66 +
 assemble/conf/templates/accumulo-metrics.xml    |   56 +
 assemble/conf/templates/accumulo-site.xml       |  132 +
 assemble/conf/templates/accumulo.policy.example |  143 +
 assemble/conf/templates/auditLog.xml            |   35 +
 assemble/conf/templates/gc                      |   16 +
 .../conf/templates/generic_logger.properties    |   58 +
 assemble/conf/templates/generic_logger.xml      |   83 +
 assemble/conf/templates/log4j.properties        |   42 +
 assemble/conf/templates/masters                 |   16 +
 assemble/conf/templates/monitor                 |   16 +
 .../conf/templates/monitor_logger.properties    |   44 +
 assemble/conf/templates/monitor_logger.xml      |   64 +
 assemble/conf/templates/slaves                  |   16 +
 assemble/conf/templates/tracers                 |   16 +
 assemble/pom.xml                                |   60 +
 assemble/src/main/assemblies/component.xml      |   71 +-
 .../main/scripts/generate-example-configs.sh    |   25 +
 bin/LogForwarder.sh                             |   50 -
 bin/accumulo                                    |  171 -
 bin/bootstrap_config.sh                         |  319 -
 bin/bootstrap_hdfs.sh                           |   84 -
 bin/build_native_library.sh                     |   74 -
 bin/check-slaves                                |  199 -
 bin/config.sh                                   |  173 -
 bin/generate_monitor_certificate.sh             |   84 -
 bin/start-all.sh                                |   77 -
 bin/start-here.sh                               |   78 -
 bin/start-server.sh                             |   85 -
 bin/stop-all.sh                                 |   68 -
 bin/stop-here.sh                                |   60 -
 bin/stop-server.sh                              |   56 -
 bin/tdown.sh                                    |   49 -
 bin/tool.sh                                     |   92 -
 bin/tup.sh                                      |   46 -
 conf/accumulo.policy.example                    |  143 -
 .../1GB/native-standalone/accumulo-env.sh       |   66 -
 .../1GB/native-standalone/accumulo-metrics.xml  |   60 -
 .../1GB/native-standalone/accumulo-site.xml     |  122 -
 .../examples/1GB/native-standalone/auditLog.xml |   41 -
 conf/examples/1GB/native-standalone/gc          |   16 -
 .../1GB/native-standalone/generic_logger.xml    |   83 -
 .../1GB/native-standalone/log4j.properties      |   42 -
 conf/examples/1GB/native-standalone/masters     |   16 -
 conf/examples/1GB/native-standalone/monitor     |   16 -
 .../1GB/native-standalone/monitor_logger.xml    |   64 -
 conf/examples/1GB/native-standalone/slaves      |   16 -
 conf/examples/1GB/native-standalone/tracers     |   16 -
 conf/examples/1GB/standalone/accumulo-env.sh    |   66 -
 .../1GB/standalone/accumulo-metrics.xml         |   60 -
 conf/examples/1GB/standalone/accumulo-site.xml  |  122 -
 conf/examples/1GB/standalone/auditLog.xml       |   41 -
 conf/examples/1GB/standalone/gc                 |   16 -
 conf/examples/1GB/standalone/generic_logger.xml |   83 -
 conf/examples/1GB/standalone/log4j.properties   |   42 -
 conf/examples/1GB/standalone/masters            |   16 -
 conf/examples/1GB/standalone/monitor            |   16 -
 conf/examples/1GB/standalone/monitor_logger.xml |   64 -
 conf/examples/1GB/standalone/slaves             |   16 -
 conf/examples/1GB/standalone/tracers            |   16 -
 .../2GB/native-standalone/accumulo-env.sh       |   65 -
 .../2GB/native-standalone/accumulo-metrics.xml  |   60 -
 .../2GB/native-standalone/accumulo-site.xml     |  112 -
 .../examples/2GB/native-standalone/auditLog.xml |   41 -
 conf/examples/2GB/native-standalone/gc          |   16 -
 .../2GB/native-standalone/generic_logger.xml    |   83 -
 .../2GB/native-standalone/log4j.properties      |   42 -
 conf/examples/2GB/native-standalone/masters     |   16 -
 conf/examples/2GB/native-standalone/monitor     |   16 -
 .../2GB/native-standalone/monitor_logger.xml    |   64 -
 conf/examples/2GB/native-standalone/slaves      |   16 -
 conf/examples/2GB/native-standalone/tracers     |   16 -
 conf/examples/2GB/standalone/accumulo-env.sh    |   66 -
 .../2GB/standalone/accumulo-metrics.xml         |   60 -
 conf/examples/2GB/standalone/accumulo-site.xml  |  125 -
 conf/examples/2GB/standalone/auditLog.xml       |   41 -
 conf/examples/2GB/standalone/gc                 |   16 -
 conf/examples/2GB/standalone/generic_logger.xml |   83 -
 conf/examples/2GB/standalone/log4j.properties   |   42 -
 conf/examples/2GB/standalone/masters            |   16 -
 conf/examples/2GB/standalone/monitor            |   16 -
 conf/examples/2GB/standalone/monitor_logger.xml |   64 -
 conf/examples/2GB/standalone/slaves             |   16 -
 conf/examples/2GB/standalone/tracers            |   16 -
 .../3GB/native-standalone/accumulo-env.sh       |   65 -
 .../3GB/native-standalone/accumulo-metrics.xml  |   60 -
 .../3GB/native-standalone/accumulo-site.xml     |  107 -
 .../examples/3GB/native-standalone/auditLog.xml |   41 -
 conf/examples/3GB/native-standalone/gc          |   16 -
 .../3GB/native-standalone/generic_logger.xml    |   83 -
 .../3GB/native-standalone/log4j.properties      |   42 -
 conf/examples/3GB/native-standalone/masters     |   16 -
 conf/examples/3GB/native-standalone/monitor     |   16 -
 .../3GB/native-standalone/monitor_logger.xml    |   64 -
 conf/examples/3GB/native-standalone/slaves      |   16 -
 conf/examples/3GB/native-standalone/tracers     |   16 -
 conf/examples/3GB/standalone/accumulo-env.sh    |   65 -
 .../3GB/standalone/accumulo-metrics.xml         |   60 -
 conf/examples/3GB/standalone/accumulo-site.xml  |  112 -
 conf/examples/3GB/standalone/auditLog.xml       |   41 -
 conf/examples/3GB/standalone/gc                 |   16 -
 conf/examples/3GB/standalone/generic_logger.xml |   83 -
 conf/examples/3GB/standalone/log4j.properties   |   42 -
 conf/examples/3GB/standalone/masters            |   16 -
 conf/examples/3GB/standalone/monitor            |   16 -
 conf/examples/3GB/standalone/monitor_logger.xml |   64 -
 conf/examples/3GB/standalone/slaves             |   16 -
 conf/examples/3GB/standalone/tracers            |   16 -
 .../512MB/native-standalone/accumulo-env.sh     |   65 -
 .../native-standalone/accumulo-metrics.xml      |   60 -
 .../512MB/native-standalone/accumulo-site.xml   |  117 -
 .../512MB/native-standalone/auditLog.xml        |   41 -
 conf/examples/512MB/native-standalone/gc        |   16 -
 .../512MB/native-standalone/generic_logger.xml  |   83 -
 .../512MB/native-standalone/log4j.properties    |   42 -
 conf/examples/512MB/native-standalone/masters   |   16 -
 conf/examples/512MB/native-standalone/monitor   |   16 -
 .../512MB/native-standalone/monitor_logger.xml  |   64 -
 conf/examples/512MB/native-standalone/slaves    |   16 -
 conf/examples/512MB/native-standalone/tracers   |   16 -
 conf/examples/512MB/standalone/accumulo-env.sh  |   65 -
 .../512MB/standalone/accumulo-metrics.xml       |   60 -
 .../examples/512MB/standalone/accumulo-site.xml |  123 -
 conf/examples/512MB/standalone/auditLog.xml     |   41 -
 conf/examples/512MB/standalone/gc               |   16 -
 .../512MB/standalone/generic_logger.xml         |   83 -
 conf/examples/512MB/standalone/log4j.properties |   42 -
 conf/examples/512MB/standalone/masters          |   16 -
 conf/examples/512MB/standalone/monitor          |   16 -
 .../512MB/standalone/monitor_logger.xml         |   64 -
 conf/examples/512MB/standalone/slaves           |   16 -
 conf/examples/512MB/standalone/tracers          |   16 -
 conf/examples/crypto/README                     |   23 -
 conf/examples/crypto/accumulo-site.xml          |  171 -
 conf/examples/vfs-classloader/accumulo-site.xml |  175 -
 conf/templates/accumulo-env.sh                  |   66 -
 conf/templates/accumulo-metrics.xml             |   60 -
 conf/templates/accumulo-site.xml                |  132 -
 conf/templates/accumulo.policy.example          |  143 -
 conf/templates/auditLog.xml                     |   35 -
 conf/templates/gc                               |   16 -
 conf/templates/generic_logger.properties        |   58 -
 conf/templates/generic_logger.xml               |   83 -
 conf/templates/log4j.properties                 |   42 -
 conf/templates/masters                          |   16 -
 conf/templates/monitor                          |   16 -
 conf/templates/monitor_logger.properties        |   44 -
 conf/templates/monitor_logger.xml               |   64 -
 conf/templates/slaves                           |   16 -
 conf/templates/tracers                          |   16 -
 core/.gitignore                                 |   25 +
 .../org/apache/accumulo/core/Constants.java     |    5 +-
 .../accumulo/core/cli/BatchWriterOpts.java      |    1 +
 .../core/client/AccumuloSecurityException.java  |    8 +
 .../accumulo/core/client/BatchWriterConfig.java |  107 +-
 .../client/impl/ServerConfigurationUtil.java    |   63 +-
 .../core/client/impl/TableOperationsImpl.java   |    6 +-
 .../core/client/impl/ThriftScanner.java         |   16 +-
 .../core/client/impl/thrift/ClientService.java  | 2939 +++++--
 .../client/impl/thrift/ConfigurationType.java   |    2 +-
 .../client/impl/thrift/SecurityErrorCode.java   |    2 +-
 .../core/client/impl/thrift/TDiskUsage.java     |   25 +-
 .../core/client/impl/thrift/TableOperation.java |    2 +-
 .../thrift/TableOperationExceptionType.java     |    2 +-
 .../impl/thrift/ThriftSecurityException.java    |   16 +-
 .../thrift/ThriftTableOperationException.java   |   28 +-
 .../core/client/impl/thrift/ThriftTest.java     |  243 +-
 .../core/client/mapreduce/RangeInputSplit.java  |   32 +
 .../tokens/CredentialProviderToken.java         |   91 +
 .../client/security/tokens/PasswordToken.java   |    8 +-
 .../core/conf/AccumuloConfiguration.java        |   10 -
 .../accumulo/core/conf/ConfigSanityCheck.java   |   46 +-
 .../accumulo/core/conf/ConfigurationDocGen.java |   19 +-
 .../conf/CredentialProviderFactoryShim.java     |  439 +
 .../core/conf/DefaultConfiguration.java         |   60 +-
 .../core/conf/ObservableConfiguration.java      |  108 +
 .../org/apache/accumulo/core/conf/Property.java |   19 +-
 .../apache/accumulo/core/conf/PropertyType.java |    3 +-
 .../accumulo/core/conf/SiteConfiguration.java   |   68 +-
 .../core/data/thrift/InitialMultiScan.java      |   16 +-
 .../accumulo/core/data/thrift/InitialScan.java  |   16 +-
 .../accumulo/core/data/thrift/IterInfo.java     |   20 +-
 .../accumulo/core/data/thrift/MapFileInfo.java  |   12 +-
 .../core/data/thrift/MultiScanResult.java       |   60 +-
 .../accumulo/core/data/thrift/ScanResult.java   |   22 +-
 .../accumulo/core/data/thrift/TCMResult.java    |   16 +-
 .../accumulo/core/data/thrift/TCMStatus.java    |    2 +-
 .../accumulo/core/data/thrift/TColumn.java      |   20 +-
 .../accumulo/core/data/thrift/TCondition.java   |   36 +-
 .../core/data/thrift/TConditionalMutation.java  |   26 +-
 .../core/data/thrift/TConditionalSession.java   |   20 +-
 .../thrift/TConstraintViolationSummary.java     |   24 +-
 .../apache/accumulo/core/data/thrift/TKey.java  |   28 +-
 .../accumulo/core/data/thrift/TKeyExtent.java   |   20 +-
 .../accumulo/core/data/thrift/TKeyValue.java    |   16 +-
 .../accumulo/core/data/thrift/TMutation.java    |   35 +-
 .../accumulo/core/data/thrift/TRange.java       |   32 +-
 .../accumulo/core/data/thrift/UpdateErrors.java |   46 +-
 .../accumulo/core/file/rfile/PrintInfo.java     |    5 +-
 .../core/file/rfile/bcfile/PrintInfo.java       |    5 +-
 .../core/gc/thrift/GCMonitorService.java        |  108 +-
 .../accumulo/core/gc/thrift/GCStatus.java       |   24 +-
 .../accumulo/core/gc/thrift/GcCycleStats.java   |   32 +-
 .../accumulo/core/iterators/Combiner.java       |    8 +-
 .../accumulo/core/iterators/IteratorUtil.java   |   64 +-
 .../iterators/conf/ColumnToClassMapping.java    |   10 +-
 .../core/iterators/system/HeapIterator.java     |  132 +-
 .../system/SourceSwitchingIterator.java         |    2 +-
 .../iterators/user/RowEncodingIterator.java     |    8 -
 .../accumulo/core/iterators/user/RowFilter.java |   15 +-
 .../accumulo/core/master/thrift/Compacting.java |   16 +-
 .../accumulo/core/master/thrift/DeadServer.java |   20 +-
 .../core/master/thrift/FateOperation.java       |    2 +-
 .../core/master/thrift/FateService.java         |  441 +-
 .../core/master/thrift/MasterClientService.java | 1287 ++-
 .../core/master/thrift/MasterGoalState.java     |    2 +-
 .../core/master/thrift/MasterMonitorInfo.java   |   92 +-
 .../core/master/thrift/MasterState.java         |    2 +-
 .../core/master/thrift/RecoveryException.java   |   12 +-
 .../core/master/thrift/RecoveryStatus.java      |   20 +-
 .../accumulo/core/master/thrift/TableInfo.java  |   56 +-
 .../core/master/thrift/TabletLoadState.java     |    2 +-
 .../core/master/thrift/TabletServerStatus.java  |   68 +-
 .../core/master/thrift/TabletSplit.java         |   22 +-
 .../core/security/ColumnVisibility.java         |   66 +-
 .../core/security/thrift/TCredentials.java      |   24 +-
 .../core/tabletserver/thrift/ActionStats.java   |   40 +-
 .../tabletserver/thrift/ActiveCompaction.java   |   98 +-
 .../core/tabletserver/thrift/ActiveScan.java    |  110 +-
 .../tabletserver/thrift/CompactionReason.java   |    2 +-
 .../tabletserver/thrift/CompactionType.java     |    2 +-
 .../thrift/ConstraintViolationException.java    |   18 +-
 .../tabletserver/thrift/IteratorConfig.java     |   18 +-
 .../thrift/NoSuchScanIDException.java           |    8 +-
 .../thrift/NotServingTabletException.java       |   12 +-
 .../core/tabletserver/thrift/ScanState.java     |    2 +-
 .../core/tabletserver/thrift/ScanType.java      |    2 +-
 .../tabletserver/thrift/TIteratorSetting.java   |   45 +-
 .../thrift/TabletClientService.java             | 2651 ++++--
 .../core/tabletserver/thrift/TabletStats.java   |   40 +-
 .../thrift/TooManyFilesException.java           |   12 +-
 .../accumulo/core/util/AsyncSocketAppender.java |    3 +-
 .../org/apache/accumulo/core/util/Merge.java    |    5 +-
 .../accumulo/core/util/SslConnectionParams.java |   17 +-
 .../core/util/format/DefaultFormatter.java      |   16 +-
 .../core/util/shell/commands/FateCommand.java   |    5 +-
 .../util/shell/commands/GetSplitsCommand.java   |    1 -
 .../core/util/shell/commands/ScanCommand.java   |    2 +-
 .../apache/accumulo/core/volume/VolumeImpl.java |    4 +-
 .../core/client/BatchWriterConfigTest.java      |   26 +
 .../impl/ServerConfigurationUtilTest.java       |  110 +
 .../client/mapred/AccumuloInputFormatTest.java  |   55 +
 .../core/client/mapred/RangeInputSplitTest.java |  121 +
 .../mapreduce/AccumuloInputFormatTest.java      |    2 +-
 .../client/mapreduce/RangeInputSplitTest.java   |   48 +-
 .../tokens/CredentialProviderTokenTest.java     |  129 +
 .../core/conf/ConfigSanityCheckTest.java        |   79 +
 .../conf/CredentialProviderFactoryShimTest.java |  179 +
 .../core/conf/DefaultConfigurationTest.java     |   44 +
 .../core/conf/ObservableConfigurationTest.java  |   96 +
 .../core/conf/SiteConfigurationTest.java        |   76 +
 .../accumulo/core/iterators/IterUtilTest.java   |  279 -
 .../core/iterators/IteratorUtilTest.java        |  306 +
 .../core/iterators/user/RowFilterTest.java      |  215 +-
 .../core/util/AsyncSocketAppenderTest.java      |   16 +-
 .../ShardedTableDistributionFormatterTest.java  |   30 +-
 .../accumulo/core/util/shell/ShellTest.java     |   19 +-
 .../accumulo-credentialprovider-site.xml        |   26 +
 core/src/test/resources/accumulo.jceks          |  Bin 0 -> 946 bytes
 core/src/test/resources/empty.jceks             |  Bin 0 -> 32 bytes
 core/src/test/resources/passwords.jceks         |  Bin 0 -> 963 bytes
 core/src/test/resources/site-cfg.jceks          |  Bin 0 -> 1441 bytes
 docs/.gitignore                                 |   25 +
 docs/pom.xml                                    |    4 +-
 .../chapters/administration.tex                 |   52 +
 .../accumulo_user_manual/chapters/clients.tex   |   10 +
 .../accumulo_user_manual/chapters/security.tex  |   10 +-
 .../chapters/table_configuration.tex            |    8 +
 .../chapters/troubleshooting.tex                |   12 +-
 docs/src/main/resources/examples/README.batch   |    2 +-
 docs/src/main/resources/examples/README.bloom   |    8 +-
 .../main/resources/examples/README.maxmutation  |   12 +-
 docs/src/main/resources/examples/README.regex   |    3 +-
 docs/src/main/resources/metrics.html            |   33 +-
 examples/simple/.gitignore                      |   25 +
 fate/.gitignore                                 |   25 +
 .../fate/zookeeper/ZooReaderWriter.java         |    4 -
 .../accumulo/fate/zookeeper/ZooSession.java     |   14 +-
 .../accumulo/fate/zookeeper/ZooSessionTest.java |   31 +
 maven-plugin/.gitignore                         |   25 +
 maven-plugin/pom.xml                            |    1 -
 minicluster/.gitignore                          |   25 +
 .../apache/accumulo/cluster/AccumuloConfig.java |   11 +
 .../minicluster/MiniAccumuloCluster.java        |    8 +-
 .../minicluster/MiniAccumuloConfig.java         |   16 +-
 .../minicluster/MiniAccumuloRunner.java         |    4 +
 .../impl/MiniAccumuloClusterImpl.java           |   76 +-
 .../impl/MiniAccumuloConfigImpl.java            |   95 +-
 .../MiniAccumuloClusterStartStopTest.java       |   65 +
 .../minicluster/MiniAccumuloClusterTest.java    |    4 -
 .../minicluster/impl/CleanShutdownMacTest.java  |   57 +
 .../impl/MiniAccumuloClusterGCTest.java         |    2 -
 .../impl/MiniAccumuloClusterImplTest.java       |   49 +-
 .../impl/MiniAccumuloConfigImplTest.java        |    8 +
 minicluster/src/test/resources/log4j.properties |   23 +-
 pom.xml                                         |   98 +-
 proxy/.gitignore                                |   28 +
 proxy/src/main/cpp/AccumuloProxy.cpp            |    2 +-
 proxy/src/main/cpp/AccumuloProxy.h              |    2 +-
 proxy/src/main/cpp/proxy_constants.cpp          |    2 +-
 proxy/src/main/cpp/proxy_constants.h            |    2 +-
 proxy/src/main/cpp/proxy_types.cpp              |    2 +-
 proxy/src/main/cpp/proxy_types.h                |    3 +-
 .../java/org/apache/accumulo/proxy/Proxy.java   |    5 +-
 .../proxy/thrift/AccumuloException.java         |   12 +-
 .../accumulo/proxy/thrift/AccumuloProxy.java    | 8186 ++++++++++++++----
 .../proxy/thrift/AccumuloSecurityException.java |   12 +-
 .../accumulo/proxy/thrift/ActiveCompaction.java |   63 +-
 .../accumulo/proxy/thrift/ActiveScan.java       |   75 +-
 .../accumulo/proxy/thrift/BatchScanOptions.java |   57 +-
 .../apache/accumulo/proxy/thrift/Column.java    |   20 +-
 .../accumulo/proxy/thrift/ColumnUpdate.java     |   32 +-
 .../accumulo/proxy/thrift/CompactionReason.java |    2 +-
 .../accumulo/proxy/thrift/CompactionType.java   |    2 +-
 .../apache/accumulo/proxy/thrift/Condition.java |   30 +-
 .../proxy/thrift/ConditionalStatus.java         |    2 +-
 .../proxy/thrift/ConditionalUpdates.java        |   28 +-
 .../proxy/thrift/ConditionalWriterOptions.java  |   35 +-
 .../apache/accumulo/proxy/thrift/DiskUsage.java |   25 +-
 .../accumulo/proxy/thrift/IteratorScope.java    |    2 +-
 .../accumulo/proxy/thrift/IteratorSetting.java  |   45 +-
 .../org/apache/accumulo/proxy/thrift/Key.java   |   28 +-
 .../apache/accumulo/proxy/thrift/KeyExtent.java |   20 +-
 .../apache/accumulo/proxy/thrift/KeyValue.java  |   16 +-
 .../accumulo/proxy/thrift/KeyValueAndPeek.java  |   16 +-
 .../thrift/MutationsRejectedException.java      |   12 +-
 .../proxy/thrift/NoMoreEntriesException.java    |   12 +-
 .../accumulo/proxy/thrift/PartialKey.java       |    2 +-
 .../org/apache/accumulo/proxy/thrift/Range.java |   24 +-
 .../accumulo/proxy/thrift/ScanColumn.java       |   16 +-
 .../accumulo/proxy/thrift/ScanOptions.java      |   51 +-
 .../accumulo/proxy/thrift/ScanResult.java       |   22 +-
 .../apache/accumulo/proxy/thrift/ScanState.java |    2 +-
 .../apache/accumulo/proxy/thrift/ScanType.java  |    2 +-
 .../accumulo/proxy/thrift/SystemPermission.java |    2 +-
 .../proxy/thrift/TableExistsException.java      |   12 +-
 .../proxy/thrift/TableNotFoundException.java    |   12 +-
 .../accumulo/proxy/thrift/TablePermission.java  |    2 +-
 .../apache/accumulo/proxy/thrift/TimeType.java  |    2 +-
 .../accumulo/proxy/thrift/UnknownScanner.java   |   12 +-
 .../accumulo/proxy/thrift/UnknownWriter.java    |   12 +-
 .../accumulo/proxy/thrift/WriterOptions.java    |   24 +-
 proxy/src/main/python/AccumuloProxy-remote      |    6 +-
 proxy/src/main/python/AccumuloProxy.py          |  550 +-
 proxy/src/main/python/constants.py              |    2 +-
 proxy/src/main/python/ttypes.py                 |    4 +-
 proxy/src/main/ruby/accumulo_proxy.rb           |    2 +-
 proxy/src/main/ruby/proxy_constants.rb          |    2 +-
 proxy/src/main/ruby/proxy_types.rb              |    2 +-
 server/base/.gitignore                          |   25 +
 server/base/pom.xml                             |   19 +-
 .../org/apache/accumulo/server/Accumulo.java    |   23 +-
 .../apache/accumulo/server/ServerConstants.java |    1 +
 .../accumulo/server/client/HdfsZooInstance.java |    8 -
 .../server/conf/NamespaceConfWatcher.java       |   40 +-
 .../server/conf/NamespaceConfiguration.java     |  139 +-
 .../server/conf/ServerConfiguration.java        |   78 +-
 .../server/conf/ServerConfigurationFactory.java |  198 +
 .../accumulo/server/conf/TableConfWatcher.java  |   40 +-
 .../server/conf/TableConfiguration.java         |  123 +-
 .../server/conf/TableParentConfiguration.java   |   10 +
 .../server/conf/ZooCachePropertyAccessor.java   |  160 +
 .../accumulo/server/conf/ZooConfiguration.java  |   79 +-
 .../server/conf/ZooConfigurationFactory.java    |  107 +
 .../accumulo/server/fs/VolumeManagerImpl.java   |   68 +-
 .../apache/accumulo/server/fs/VolumeUtil.java   |    5 +
 .../master/balancer/ChaoticLoadBalancer.java    |   14 +-
 .../master/balancer/DefaultLoadBalancer.java    |   12 +-
 .../server/master/balancer/TabletBalancer.java  |   90 +
 .../server/master/recovery/RecoveryPath.java    |    7 +-
 .../server/metrics/AbstractMetricsImpl.java     |    3 +-
 .../security/AuditedSecurityOperation.java      |   17 +-
 .../server/security/SecurityOperation.java      |    2 +-
 .../server/security/SystemCredentials.java      |   21 +-
 .../tabletserver/LargestFirstMemoryManager.java |  197 +-
 .../server/util/CustomNonBlockingServer.java    |  268 +
 .../accumulo/server/util/LoginProperties.java   |    4 +-
 .../accumulo/server/util/MetadataTableUtil.java |   50 +-
 .../apache/accumulo/server/util/RpcWrapper.java |   62 +
 .../accumulo/server/util/TServerUtils.java      |   50 +-
 .../zookeeper/ZooReaderWriterFactory.java       |    4 +-
 .../apache/accumulo/server/AccumuloTest.java    |   14 +-
 .../server/conf/NamespaceConfigurationTest.java |  159 +
 .../conf/ServerConfigurationFactoryTest.java    |  134 +
 .../server/conf/TableConfigurationTest.java     |  122 +-
 .../conf/ZooCachePropertyAccessorTest.java      |  186 +
 .../conf/ZooConfigurationFactoryTest.java       |   66 +
 .../server/fs/VolumeManagerImplTest.java        |   94 +
 .../server/watcher/MonitorLog4jWatcherTest.java |    8 +-
 server/gc/.gitignore                            |   25 +
 .../gc/GarbageCollectWriteAheadLogs.java        |    8 +-
 .../accumulo/gc/SimpleGarbageCollector.java     |  115 +-
 .../gc/GarbageCollectWriteAheadLogsTest.java    |   13 +-
 .../accumulo/gc/SimpleGarbageCollectorTest.java |   28 +-
 server/master/.gitignore                        |   25 +
 .../java/org/apache/accumulo/master/Master.java |   76 +-
 .../accumulo/master/TabletGroupWatcher.java     |   10 +-
 .../accumulo/master/tableOps/BulkImport.java    |  159 +-
 server/monitor/.gitignore                       |   25 +
 server/monitor/pom.xml                          |   40 +-
 .../accumulo/monitor/EmbeddedWebServer.java     |   82 +-
 .../monitor/servlets/TServersServlet.java       |    1 -
 server/native/.gitignore                        |   25 +
 server/tracer/.gitignore                        |   25 +
 .../org/apache/accumulo/tracer/TraceServer.java |    4 +-
 server/tserver/.gitignore                       |   25 +
 server/tserver/pom.xml                          |    1 +
 .../apache/accumulo/tserver/InMemoryMap.java    |   61 +-
 .../org/apache/accumulo/tserver/Tablet.java     |   38 +-
 .../apache/accumulo/tserver/TabletServer.java   |    6 +-
 .../apache/accumulo/tserver/log/DfsLogger.java  |   21 +-
 .../accumulo/tserver/log/LocalWALRecovery.java  |    6 +-
 .../accumulo/tserver/InMemoryMapTest.java       |   44 +
 start/.gitignore                                |   25 +
 start/pom.xml                                   |    5 +
 .../vfs/AccumuloReloadingVFSClassLoader.java    |    4 +-
 .../classloader/vfs/AccumuloVFSClassLoader.java |   34 +-
 .../start/classloader/vfs/ContextManager.java   |    4 +-
 .../vfs/FinalCloseDefaultFileSystemManager.java |   25 -
 test/.gitignore                                 |   28 +
 test/pom.xml                                    |   34 +-
 .../apache/accumulo/test/GetMasterStats.java    |    9 +
 .../test/continuous/ContinuousVerify.java       |    4 +-
 .../accumulo/test/continuous/Histogram.java     |    8 +-
 .../test/continuous/PrintScanTimeHistogram.java |   19 +-
 .../test/continuous/UndefinedAnalyzer.java      |    2 +-
 .../test/stress/random/RandomMutations.java     |   21 +-
 .../accumulo/test/stress/random/Scan.java       |    3 +
 .../accumulo/test/stress/random/ScanOpts.java   |    5 +-
 .../accumulo/test/stress/random/Stream.java     |    1 -
 .../accumulo/test/stress/random/Write.java      |   15 +-
 .../test/stress/random/WriteOptions.java        |    8 +-
 .../accumulo/fate/zookeeper/ZooLockTest.java    |   77 +-
 .../apache/accumulo/test/Accumulo3010IT.java    |   91 +
 .../apache/accumulo/test/Accumulo3030IT.java    |   83 +
 .../apache/accumulo/test/Accumulo3047IT.java    |   74 +
 .../org/apache/accumulo/test/MetaSplitIT.java   |    2 +-
 .../org/apache/accumulo/test/ShellServerIT.java |    2 +-
 .../accumulo/test/functional/AbstractMacIT.java |    5 +-
 .../BalanceInPresenceOfOfflineTableIT.java      |  151 +
 .../test/functional/CreateAndUseIT.java         |   62 +-
 .../functional/DeleteTableDuringSplitIT.java    |    2 +-
 .../test/functional/MasterAssignmentIT.java     |   14 +-
 .../accumulo/test/functional/MergeIT.java       |    2 +-
 .../test/functional/MonitorLoggingIT.java       |    1 -
 .../functional/SimpleBalancerFairnessIT.java    |   10 +-
 .../apache/accumulo/test/functional/SslIT.java  |   10 +-
 .../test/functional/SslWithClientAuthIT.java    |   10 +-
 .../apache/accumulo/test/util/CertUtils.java    |   43 +-
 .../accumulo/test/util/CertUtilsTest.java       |    6 +-
 test/src/test/resources/log4j.properties        |    3 +-
 test/system/scalability/run.py                  |    9 +-
 test/system/stress/README.md                    |   95 +-
 test/system/stress/reader.sh                    |   34 +-
 test/system/stress/readers                      |   17 +
 test/system/stress/start-readers.sh             |   40 +
 test/system/stress/start-writers.sh             |   40 +
 test/system/stress/stop-readers.sh              |   36 +
 test/system/stress/stop-writers.sh              |   36 +
 test/system/stress/stress-env.sh.example        |   60 +
 test/system/stress/writer.sh                    |   40 +-
 test/system/stress/writers                      |   17 +
 trace/.gitignore                                |   25 +
 .../thrift/RpcClientInvocationHandler.java      |   54 +
 .../thrift/RpcServerInvocationHandler.java      |   53 +
 .../trace/instrument/thrift/TraceWrap.java      |   68 +-
 .../accumulo/trace/thrift/RemoteSpan.java       |   65 +-
 .../accumulo/trace/thrift/SpanReceiver.java     |   63 +-
 .../org/apache/accumulo/trace/thrift/TInfo.java |   16 +-
 .../accumulo/trace/thrift/TestService.java      |   99 +-
 503 files changed, 24802 insertions(+), 13994 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/8808ecbf/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
----------------------------------------------------------------------


[8/9] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.1-SNAPSHOT

Posted by el...@apache.org.
Merge branch '1.5.2-SNAPSHOT' into 1.6.1-SNAPSHOT

Conflicts:
	server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8147b196
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8147b196
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8147b196

Branch: refs/heads/1.6.1-SNAPSHOT
Commit: 8147b196a9589ac5b243b8aa8d4b224adabdcf42
Parents: 8808ecb f838cd9
Author: Josh Elser <el...@apache.org>
Authored: Wed Aug 27 20:55:19 2014 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Wed Aug 27 20:55:19 2014 -0400

----------------------------------------------------------------------
 assemble/bin/start-server.sh | 21 ++++++++++++++-------
 assemble/bin/stop-server.sh  |  2 +-
 2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/8147b196/assemble/bin/start-server.sh
----------------------------------------------------------------------
diff --cc assemble/bin/start-server.sh
index 62ad91d,0000000..aa1375a
mode 100755,000000..100755
--- a/assemble/bin/start-server.sh
+++ b/assemble/bin/start-server.sh
@@@ -1,87 -1,0 +1,94 @@@
 +#! /usr/bin/env bash
 +
 +# Licensed to the Apache Software Foundation (ASF) under one or more
 +# contributor license agreements.  See the NOTICE file distributed with
 +# this work for additional information regarding copyright ownership.
 +# The ASF licenses this file to You under the Apache License, Version 2.0
 +# (the "License"); you may not use this file except in compliance with
 +# the License.  You may obtain a copy of the License at
 +#
 +#     http://www.apache.org/licenses/LICENSE-2.0
 +#
 +# Unless required by applicable law or agreed to in writing, software
 +# distributed under the License is distributed on an "AS IS" BASIS,
 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +# See the License for the specific language governing permissions and
 +# limitations under the License.
 +
 +# Start: Resolve Script Directory
 +SOURCE="${BASH_SOURCE[0]}"
 +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
 +   bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +   SOURCE="$(readlink "$SOURCE")"
 +   [[ $SOURCE != /* ]] && SOURCE="$bin/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
 +done
 +bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +script=$( basename "$SOURCE" )
 +# Stop: Resolve Script Directory
 +
 +. "$bin"/config.sh
 +
 +HOST="$1"
 +host "$1" >/dev/null 2>/dev/null
 +if [ $? -ne 0 ]; then
 +   LOGHOST="$1"
 +else
 +   LOGHOST=$(host "$1" | head -1 | cut -d' ' -f1)
 +fi
 +ADDRESS="$1"
 +SERVICE="$2"
 +LONGNAME="$3"
 +if [ -z "$LONGNAME" ]; then
 +   LONGNAME="$2"
 +fi
 +SLAVES=$( wc -l < ${ACCUMULO_CONF_DIR}/slaves )
 +
 +IFCONFIG=/sbin/ifconfig
 +if [ ! -x $IFCONFIG ]; then
 +   IFCONFIG='/bin/netstat -ie'
 +fi
 +
- # ACCUMULO-1985 Allow monitor to bind on all interfaces
- if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
-     ADDRESS="0.0.0.0"
- fi
- 
 +ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
 +if [ $? != 0 ]
 +then
 +   ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
 +fi
 +
- if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
++# When the hostname provided is the alias/shortname, try to use the FQDN to make
++# sure we send the right address to the Accumulo process.
++if [ "$HOST" = "`hostname -s`" ]; then
++    HOST="`hostname -f`"
++    ADDRESS="$HOST"
++fi
++
++# ACCUMULO-1985 Allow monitor to bind on all interfaces
++if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
++    ADDRESS="0.0.0.0"
++fi
++
++if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
 +   PID=$(ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
 +else
 +   PID=$($SSH $HOST ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
 +fi
 +
 +if [ -z "$PID" ]; then
 +   echo "Starting $LONGNAME on $HOST"
-    if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
++   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
 +      ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err & 
 +      MAX_FILES_OPEN=$(ulimit -n)
 +   else
 +      $SSH $HOST "bash -c 'exec nohup ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err' &"
 +      MAX_FILES_OPEN=$($SSH $HOST "/usr/bin/env bash -c 'ulimit -n'") 
 +   fi
 +
 +   if [ -n "$MAX_FILES_OPEN" ] && [ -n "$SLAVES" ] ; then
 +      MAX_FILES_RECOMMENDED=${MAX_FILES_RECOMMENDED:-32768}
 +      if (( SLAVES > 10 )) && (( MAX_FILES_OPEN < MAX_FILES_RECOMMENDED ))
 +      then
 +         echo "WARN : Max open files on $HOST is $MAX_FILES_OPEN, recommend $MAX_FILES_RECOMMENDED" >&2
 +      fi
 +   fi
 +else
 +   echo "$HOST : $LONGNAME already running (${PID})"
 +fi

http://git-wip-us.apache.org/repos/asf/accumulo/blob/8147b196/assemble/bin/stop-server.sh
----------------------------------------------------------------------
diff --cc assemble/bin/stop-server.sh
index 6fbe0af,0000000..d615172
mode 100755,000000..100755
--- a/assemble/bin/stop-server.sh
+++ b/assemble/bin/stop-server.sh
@@@ -1,56 -1,0 +1,56 @@@
 +#! /usr/bin/env bash
 +
 +# Licensed to the Apache Software Foundation (ASF) under one or more
 +# contributor license agreements.  See the NOTICE file distributed with
 +# this work for additional information regarding copyright ownership.
 +# The ASF licenses this file to You under the Apache License, Version 2.0
 +# (the "License"); you may not use this file except in compliance with
 +# the License.  You may obtain a copy of the License at
 +#
 +#     http://www.apache.org/licenses/LICENSE-2.0
 +#
 +# Unless required by applicable law or agreed to in writing, software
 +# distributed under the License is distributed on an "AS IS" BASIS,
 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +# See the License for the specific language governing permissions and
 +# limitations under the License.
 +
 +# Start: Resolve Script Directory
 +SOURCE="${BASH_SOURCE[0]}"
 +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
 +   bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +   SOURCE="$(readlink "$SOURCE")"
 +   [[ $SOURCE != /* ]] && SOURCE="$bin/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
 +done
 +bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +# Stop: Resolve Script Directory
 +
 +. "$bin"/config.sh
 +
 +HOST=$1
 +
 +IFCONFIG=/sbin/ifconfig
 +if [ ! -x $IFCONFIG ]
 +then
 +   IFCONFIG='/bin/netstat -ie'
 +fi
 +ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
 +if [ $? != 0 ]
 +then
 +   ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
 +fi
 +
 +# only stop if there's not one already running
- if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
++if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -s`" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
 +   PID=$(ps -ef | grep "$ACCUMULO_HOME" | egrep ${2} | grep "Main ${3}" | grep -v grep | grep -v ssh | grep -v stop-server.sh | awk {'print $2'} | head -1)
 +   if [ ! -z $PID ]; then
 +      echo "Stopping ${3} on $1";
 +      kill -s ${4} ${PID} 2>/dev/null
 +   fi;
 +else
 +   PID=$(ssh -q -o 'ConnectTimeout 8' $1 "ps -ef | grep \"$ACCUMULO_HOME\" |  egrep '${2}' | grep 'Main ${3}' | grep -v grep | grep -v ssh | grep -v stop-server.sh" | awk {'print $2'} | head -1)
 +   if [ ! -z $PID ]; then
 +      echo "Stopping ${3} on $1";
 +      ssh -q -o 'ConnectTimeout 8' $1 "kill -s ${4} ${PID} 2>/dev/null"
 +   fi;
 +fi


[7/9] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.1-SNAPSHOT

Posted by el...@apache.org.
Merge branch '1.5.2-SNAPSHOT' into 1.6.1-SNAPSHOT

Conflicts:
	server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8147b196
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8147b196
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8147b196

Branch: refs/heads/master
Commit: 8147b196a9589ac5b243b8aa8d4b224adabdcf42
Parents: 8808ecb f838cd9
Author: Josh Elser <el...@apache.org>
Authored: Wed Aug 27 20:55:19 2014 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Wed Aug 27 20:55:19 2014 -0400

----------------------------------------------------------------------
 assemble/bin/start-server.sh | 21 ++++++++++++++-------
 assemble/bin/stop-server.sh  |  2 +-
 2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/8147b196/assemble/bin/start-server.sh
----------------------------------------------------------------------
diff --cc assemble/bin/start-server.sh
index 62ad91d,0000000..aa1375a
mode 100755,000000..100755
--- a/assemble/bin/start-server.sh
+++ b/assemble/bin/start-server.sh
@@@ -1,87 -1,0 +1,94 @@@
 +#! /usr/bin/env bash
 +
 +# Licensed to the Apache Software Foundation (ASF) under one or more
 +# contributor license agreements.  See the NOTICE file distributed with
 +# this work for additional information regarding copyright ownership.
 +# The ASF licenses this file to You under the Apache License, Version 2.0
 +# (the "License"); you may not use this file except in compliance with
 +# the License.  You may obtain a copy of the License at
 +#
 +#     http://www.apache.org/licenses/LICENSE-2.0
 +#
 +# Unless required by applicable law or agreed to in writing, software
 +# distributed under the License is distributed on an "AS IS" BASIS,
 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +# See the License for the specific language governing permissions and
 +# limitations under the License.
 +
 +# Start: Resolve Script Directory
 +SOURCE="${BASH_SOURCE[0]}"
 +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
 +   bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +   SOURCE="$(readlink "$SOURCE")"
 +   [[ $SOURCE != /* ]] && SOURCE="$bin/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
 +done
 +bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +script=$( basename "$SOURCE" )
 +# Stop: Resolve Script Directory
 +
 +. "$bin"/config.sh
 +
 +HOST="$1"
 +host "$1" >/dev/null 2>/dev/null
 +if [ $? -ne 0 ]; then
 +   LOGHOST="$1"
 +else
 +   LOGHOST=$(host "$1" | head -1 | cut -d' ' -f1)
 +fi
 +ADDRESS="$1"
 +SERVICE="$2"
 +LONGNAME="$3"
 +if [ -z "$LONGNAME" ]; then
 +   LONGNAME="$2"
 +fi
 +SLAVES=$( wc -l < ${ACCUMULO_CONF_DIR}/slaves )
 +
 +IFCONFIG=/sbin/ifconfig
 +if [ ! -x $IFCONFIG ]; then
 +   IFCONFIG='/bin/netstat -ie'
 +fi
 +
- # ACCUMULO-1985 Allow monitor to bind on all interfaces
- if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
-     ADDRESS="0.0.0.0"
- fi
- 
 +ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
 +if [ $? != 0 ]
 +then
 +   ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
 +fi
 +
- if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
++# When the hostname provided is the alias/shortname, try to use the FQDN to make
++# sure we send the right address to the Accumulo process.
++if [ "$HOST" = "`hostname -s`" ]; then
++    HOST="`hostname -f`"
++    ADDRESS="$HOST"
++fi
++
++# ACCUMULO-1985 Allow monitor to bind on all interfaces
++if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
++    ADDRESS="0.0.0.0"
++fi
++
++if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
 +   PID=$(ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
 +else
 +   PID=$($SSH $HOST ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
 +fi
 +
 +if [ -z "$PID" ]; then
 +   echo "Starting $LONGNAME on $HOST"
-    if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
++   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
 +      ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err & 
 +      MAX_FILES_OPEN=$(ulimit -n)
 +   else
 +      $SSH $HOST "bash -c 'exec nohup ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err' &"
 +      MAX_FILES_OPEN=$($SSH $HOST "/usr/bin/env bash -c 'ulimit -n'") 
 +   fi
 +
 +   if [ -n "$MAX_FILES_OPEN" ] && [ -n "$SLAVES" ] ; then
 +      MAX_FILES_RECOMMENDED=${MAX_FILES_RECOMMENDED:-32768}
 +      if (( SLAVES > 10 )) && (( MAX_FILES_OPEN < MAX_FILES_RECOMMENDED ))
 +      then
 +         echo "WARN : Max open files on $HOST is $MAX_FILES_OPEN, recommend $MAX_FILES_RECOMMENDED" >&2
 +      fi
 +   fi
 +else
 +   echo "$HOST : $LONGNAME already running (${PID})"
 +fi

http://git-wip-us.apache.org/repos/asf/accumulo/blob/8147b196/assemble/bin/stop-server.sh
----------------------------------------------------------------------
diff --cc assemble/bin/stop-server.sh
index 6fbe0af,0000000..d615172
mode 100755,000000..100755
--- a/assemble/bin/stop-server.sh
+++ b/assemble/bin/stop-server.sh
@@@ -1,56 -1,0 +1,56 @@@
 +#! /usr/bin/env bash
 +
 +# Licensed to the Apache Software Foundation (ASF) under one or more
 +# contributor license agreements.  See the NOTICE file distributed with
 +# this work for additional information regarding copyright ownership.
 +# The ASF licenses this file to You under the Apache License, Version 2.0
 +# (the "License"); you may not use this file except in compliance with
 +# the License.  You may obtain a copy of the License at
 +#
 +#     http://www.apache.org/licenses/LICENSE-2.0
 +#
 +# Unless required by applicable law or agreed to in writing, software
 +# distributed under the License is distributed on an "AS IS" BASIS,
 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +# See the License for the specific language governing permissions and
 +# limitations under the License.
 +
 +# Start: Resolve Script Directory
 +SOURCE="${BASH_SOURCE[0]}"
 +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
 +   bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +   SOURCE="$(readlink "$SOURCE")"
 +   [[ $SOURCE != /* ]] && SOURCE="$bin/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
 +done
 +bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +# Stop: Resolve Script Directory
 +
 +. "$bin"/config.sh
 +
 +HOST=$1
 +
 +IFCONFIG=/sbin/ifconfig
 +if [ ! -x $IFCONFIG ]
 +then
 +   IFCONFIG='/bin/netstat -ie'
 +fi
 +ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
 +if [ $? != 0 ]
 +then
 +   ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
 +fi
 +
 +# only stop if there's not one already running
- if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
++if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -s`" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
 +   PID=$(ps -ef | grep "$ACCUMULO_HOME" | egrep ${2} | grep "Main ${3}" | grep -v grep | grep -v ssh | grep -v stop-server.sh | awk {'print $2'} | head -1)
 +   if [ ! -z $PID ]; then
 +      echo "Stopping ${3} on $1";
 +      kill -s ${4} ${PID} 2>/dev/null
 +   fi;
 +else
 +   PID=$(ssh -q -o 'ConnectTimeout 8' $1 "ps -ef | grep \"$ACCUMULO_HOME\" |  egrep '${2}' | grep 'Main ${3}' | grep -v grep | grep -v ssh | grep -v stop-server.sh" | awk {'print $2'} | head -1)
 +   if [ ! -z $PID ]; then
 +      echo "Stopping ${3} on $1";
 +      ssh -q -o 'ConnectTimeout 8' $1 "kill -s ${4} ${PID} 2>/dev/null"
 +   fi;
 +fi


[4/9] git commit: ACCUMULO-3087 Attempt to expand shortname to FQDN.

Posted by el...@apache.org.
ACCUMULO-3087 Attempt to expand shortname to FQDN.

This should make start-server.sh a bit more resilient
against thinking it needs to SSH around. Instead of having
to match exactly what `hostname` is returning, this should
prevent an (unnecessary) SSH just because hostname is returning
the short instead of full, or vice versa.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/f838cd9e
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/f838cd9e
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/f838cd9e

Branch: refs/heads/1.6.1-SNAPSHOT
Commit: f838cd9e4afa18f6854c49b089fb5e40e94b0958
Parents: 6f2fd4d
Author: Josh Elser <el...@apache.org>
Authored: Wed Aug 27 20:46:51 2014 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Wed Aug 27 20:46:51 2014 -0400

----------------------------------------------------------------------
 bin/start-server.sh | 21 ++++++++++++++-------
 bin/stop-server.sh  |  2 +-
 2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/f838cd9e/bin/start-server.sh
----------------------------------------------------------------------
diff --git a/bin/start-server.sh b/bin/start-server.sh
index f5fd33a..5fa2156 100755
--- a/bin/start-server.sh
+++ b/bin/start-server.sh
@@ -47,18 +47,25 @@ if [ ! -x $IFCONFIG ]; then
    IFCONFIG='/bin/netstat -ie'
 fi
 
-# ACCUMULO-1985 Allow monitor to bind on all interfaces
-if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
-    ADDRESS="0.0.0.0"
-fi
-
 ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
 if [ $? != 0 ]
 then
    ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
 fi
 
-if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
+# When the hostname provided is the alias/shortname, try to use the FQDN to make
+# sure we send the right address to the Accumulo process.
+if [ "$HOST" = "`hostname -s`" ]; then
+    HOST="`hostname -f`"
+    ADDRESS="$HOST"
+fi
+
+# ACCUMULO-1985 Allow monitor to bind on all interfaces
+if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
+    ADDRESS="0.0.0.0"
+fi
+
+if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
    PID=$(ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
 else
    PID=$($SSH $HOST ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
@@ -66,7 +73,7 @@ fi
 
 if [ -z $PID ]; then
    echo "Starting $LONGNAME on $HOST"
-   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
+   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
       ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err & 
       MAX_FILES_OPEN=$(ulimit -n)
    else

http://git-wip-us.apache.org/repos/asf/accumulo/blob/f838cd9e/bin/stop-server.sh
----------------------------------------------------------------------
diff --git a/bin/stop-server.sh b/bin/stop-server.sh
index 6fbe0af..d615172 100755
--- a/bin/stop-server.sh
+++ b/bin/stop-server.sh
@@ -41,7 +41,7 @@ then
 fi
 
 # only stop if there's not one already running
-if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
+if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -s`" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
    PID=$(ps -ef | grep "$ACCUMULO_HOME" | egrep ${2} | grep "Main ${3}" | grep -v grep | grep -v ssh | grep -v stop-server.sh | awk {'print $2'} | head -1)
    if [ ! -z $PID ]; then
       echo "Stopping ${3} on $1";


[5/9] git commit: ACCUMULO-3087 Attempt to expand shortname to FQDN.

Posted by el...@apache.org.
ACCUMULO-3087 Attempt to expand shortname to FQDN.

This should make start-server.sh a bit more resilient
against thinking it needs to SSH around. Instead of having
to match exactly what `hostname` is returning, this should
prevent an (unnecessary) SSH just because hostname is returning
the short instead of full, or vice versa.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/f838cd9e
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/f838cd9e
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/f838cd9e

Branch: refs/heads/master
Commit: f838cd9e4afa18f6854c49b089fb5e40e94b0958
Parents: 6f2fd4d
Author: Josh Elser <el...@apache.org>
Authored: Wed Aug 27 20:46:51 2014 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Wed Aug 27 20:46:51 2014 -0400

----------------------------------------------------------------------
 bin/start-server.sh | 21 ++++++++++++++-------
 bin/stop-server.sh  |  2 +-
 2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/f838cd9e/bin/start-server.sh
----------------------------------------------------------------------
diff --git a/bin/start-server.sh b/bin/start-server.sh
index f5fd33a..5fa2156 100755
--- a/bin/start-server.sh
+++ b/bin/start-server.sh
@@ -47,18 +47,25 @@ if [ ! -x $IFCONFIG ]; then
    IFCONFIG='/bin/netstat -ie'
 fi
 
-# ACCUMULO-1985 Allow monitor to bind on all interfaces
-if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
-    ADDRESS="0.0.0.0"
-fi
-
 ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
 if [ $? != 0 ]
 then
    ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
 fi
 
-if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
+# When the hostname provided is the alias/shortname, try to use the FQDN to make
+# sure we send the right address to the Accumulo process.
+if [ "$HOST" = "`hostname -s`" ]; then
+    HOST="`hostname -f`"
+    ADDRESS="$HOST"
+fi
+
+# ACCUMULO-1985 Allow monitor to bind on all interfaces
+if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
+    ADDRESS="0.0.0.0"
+fi
+
+if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
    PID=$(ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
 else
    PID=$($SSH $HOST ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
@@ -66,7 +73,7 @@ fi
 
 if [ -z $PID ]; then
    echo "Starting $LONGNAME on $HOST"
-   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
+   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
       ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err & 
       MAX_FILES_OPEN=$(ulimit -n)
    else

http://git-wip-us.apache.org/repos/asf/accumulo/blob/f838cd9e/bin/stop-server.sh
----------------------------------------------------------------------
diff --git a/bin/stop-server.sh b/bin/stop-server.sh
index 6fbe0af..d615172 100755
--- a/bin/stop-server.sh
+++ b/bin/stop-server.sh
@@ -41,7 +41,7 @@ then
 fi
 
 # only stop if there's not one already running
-if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
+if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -s`" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ]; then
    PID=$(ps -ef | grep "$ACCUMULO_HOME" | egrep ${2} | grep "Main ${3}" | grep -v grep | grep -v ssh | grep -v stop-server.sh | awk {'print $2'} | head -1)
    if [ ! -z $PID ]; then
       echo "Stopping ${3} on $1";