You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ec...@apache.org on 2013/08/02 22:33:43 UTC

[1/5] git commit: ACCUMULO-1605 close more spans with finally clauses

Updated Branches:
  refs/heads/master 4bff142d3 -> 040f89121


ACCUMULO-1605 close more spans with finally clauses


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

Branch: refs/heads/master
Commit: af6c7e8d49b71ab1d9ac8a54572df589f627a9c1
Parents: 4bff142
Author: Eric Newton <er...@gmail.com>
Authored: Fri Aug 2 16:24:15 2013 -0400
Committer: Eric Newton <er...@gmail.com>
Committed: Fri Aug 2 16:24:15 2013 -0400

----------------------------------------------------------------------
 .../server/gc/GarbageCollectWriteAheadLogs.java |  1 +
 .../server/gc/SimpleGarbageCollector.java       | 35 +++++++++++++-------
 2 files changed, 24 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/af6c7e8d/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java b/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java
index 6548339..7dba265 100644
--- a/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java
+++ b/server/src/main/java/org/apache/accumulo/server/gc/GarbageCollectWriteAheadLogs.java
@@ -111,6 +111,7 @@ public class GarbageCollectWriteAheadLogs {
       
     } catch (Exception e) {
       log.error("exception occured while garbage collecting write ahead logs", e);
+    } finally {
       span.stop();
     }
   }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/af6c7e8d/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java b/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java
index 45df0d4..118536f 100644
--- a/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java
+++ b/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java
@@ -213,17 +213,24 @@ public class SimpleGarbageCollector implements Iface {
         
         Span candidatesSpan = Trace.start("getCandidates");
         status.current.started = System.currentTimeMillis();
-        SortedSet<String> candidates = getCandidates();
-        status.current.candidates = candidates.size();
-        candidatesSpan.stop();
+        SortedSet<String> candidates;
+        try {
+          candidates = getCandidates();
+          status.current.candidates = candidates.size();
+        } finally {
+          candidatesSpan.stop();
+        }
         
         // STEP 2: confirm deletes
         // WARNING: This line is EXTREMELY IMPORTANT.
         // You MUST confirm candidates are okay to delete
         Span confirmDeletesSpan = Trace.start("confirmDeletes");
-        confirmDeletes(candidates);
+        try {
+          confirmDeletes(candidates);
         status.current.inUse = status.current.candidates - candidates.size();
-        confirmDeletesSpan.stop();
+        } finally {
+          confirmDeletesSpan.stop();
+        }
         
         // STEP 3: delete files
         if (opts.safeMode) {
@@ -239,12 +246,15 @@ public class SimpleGarbageCollector implements Iface {
           log.info("SAFEMODE: End candidates for deletion");
         } else {
           Span deleteSpan = Trace.start("deleteFiles");
-          deleteFiles(candidates);
-          log.info("Number of data file candidates for deletion: " + status.current.candidates);
-          log.info("Number of data file candidates still in use: " + status.current.inUse);
-          log.info("Number of successfully deleted data files: " + status.current.deleted);
-          log.info("Number of data files delete failures: " + status.current.errors);
-          deleteSpan.stop();
+          try {
+            deleteFiles(candidates);
+            log.info("Number of data file candidates for deletion: " + status.current.candidates);
+            log.info("Number of data file candidates still in use: " + status.current.inUse);
+            log.info("Number of successfully deleted data files: " + status.current.deleted);
+            log.info("Number of data files delete failures: " + status.current.errors);
+          } finally {
+            deleteSpan.stop();
+          }
           
           // delete empty dirs of deleted tables
           // this can occur as a result of cloning
@@ -277,8 +287,9 @@ public class SimpleGarbageCollector implements Iface {
         walogCollector.collect(status);
       } catch (Exception e) {
         log.error(e, e);
+      } finally {
+        waLogs.stop();
       }
-      waLogs.stop();
       gcSpan.stop();
       
       // we just made a lot of changes to the !METADATA table: flush them out


[2/5] git commit: ACCUMULO-1585 do our best to guess our address after the bind

Posted by ec...@apache.org.
ACCUMULO-1585 do our best to guess our address after the bind


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

Branch: refs/heads/master
Commit: 9d50657d90a4450604b7c64ba1870cfc0f8b1a3a
Parents: af6c7e8
Author: Eric Newton <er...@gmail.com>
Authored: Fri Aug 2 16:25:22 2013 -0400
Committer: Eric Newton <er...@gmail.com>
Committed: Fri Aug 2 16:25:22 2013 -0400

----------------------------------------------------------------------
 .../org/apache/accumulo/server/util/TServerUtils.java     | 10 ++++++++++
 1 file changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/9d50657d/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java b/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java
index 926e370..0c56476 100644
--- a/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java
+++ b/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java
@@ -18,6 +18,7 @@ package org.apache.accumulo.server.util;
 
 import java.io.IOException;
 import java.lang.reflect.Field;
+import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.ServerSocket;
 import java.net.Socket;
@@ -216,6 +217,15 @@ public class TServerUtils {
   public static ServerAddress startHsHaServer(InetSocketAddress address, TProcessor processor, final String serverName, String threadName, final int numThreads,
       long timeBetweenThreadChecks, long maxMessageSize) throws TTransportException {
     TNonblockingServerSocket transport = new TNonblockingServerSocket(address);
+    // check for the special "bind to everything address"
+    if (address.getAddress().getHostAddress().equals("0.0.0.0")) {
+      // can't get the address from the bind, so we'll do our best to invent our hostname
+      try {
+        address = new InetSocketAddress(InetAddress.getLocalHost().getHostName(), address.getPort());
+      } catch (UnknownHostException e) {
+        throw new TTransportException(e);
+      }
+    }
     THsHaServer.Args options = new THsHaServer.Args(transport);
     options.protocolFactory(ThriftUtil.protocolFactory());
     options.transportFactory(ThriftUtil.transportFactory(maxMessageSize));


[5/5] git commit: ACCUMULO-1537 make the IT a bit more stable

Posted by ec...@apache.org.
ACCUMULO-1537 make the IT a bit more stable


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

Branch: refs/heads/master
Commit: 040f891216154de5f7c8a87e25cefc0f816aea9c
Parents: 9291bee
Author: Eric Newton <er...@gmail.com>
Authored: Fri Aug 2 16:33:14 2013 -0400
Committer: Eric Newton <er...@gmail.com>
Committed: Fri Aug 2 16:33:14 2013 -0400

----------------------------------------------------------------------
 .../core/util/shell/commands/FlushCommand.java  |  1 -
 .../minicluster/MiniAccumuloCluster.java        | 48 ++++++++---
 .../start/classloader/vfs/MiniDFSUtil.java      | 46 +++++++++++
 .../apache/accumulo/test/AccumuloDFSBase.java   | 24 +-----
 .../org/apache/accumulo/test/ShellServerIT.java |  2 +-
 .../apache/accumulo/test/TableOperationsIT.java | 57 ++++++++------
 .../accumulo/test/functional/AbstractMacIT.java |  2 +
 .../accumulo/test/functional/AddSplitIT.java    |  2 +-
 .../test/functional/BadIteratorMincIT.java      |  2 +-
 .../test/functional/BatchScanSplitIT.java       | 19 ++---
 .../test/functional/BatchWriterFlushIT.java     |  2 +-
 .../test/functional/BigRootTabletIT.java        |  2 +-
 .../accumulo/test/functional/BinaryIT.java      |  2 +-
 .../test/functional/BinaryStressIT.java         |  2 +-
 .../accumulo/test/functional/BloomFilterIT.java |  2 +-
 .../accumulo/test/functional/BulkFileIT.java    |  2 +-
 .../apache/accumulo/test/functional/BulkIT.java |  2 +-
 .../functional/BulkSplitOptimizationIT.java     |  2 +-
 .../test/functional/ChaoticBalancerIT.java      | 63 +++++++++++++++
 .../test/functional/ChaoticBlancerIT.java       | 63 ---------------
 .../accumulo/test/functional/ClassLoaderIT.java |  2 +-
 .../accumulo/test/functional/CombinerIT.java    |  2 +-
 .../accumulo/test/functional/CompactionIT.java  |  2 +-
 .../accumulo/test/functional/ConcurrencyIT.java |  2 +-
 .../accumulo/test/functional/ConstraintIT.java  |  2 +-
 .../test/functional/CreateAndUseIT.java         |  2 +-
 .../test/functional/CreateManyScannersIT.java   |  2 +-
 .../test/functional/DeleteEverythingIT.java     |  2 +-
 .../accumulo/test/functional/DeleteIT.java      |  2 +-
 .../accumulo/test/functional/DeleteRowsIT.java  |  2 +-
 .../test/functional/DeleteRowsSplitIT.java      |  4 +-
 .../test/functional/DynamicThreadPoolsIT.java   |  2 +-
 .../accumulo/test/functional/ExamplesIT.java    |  2 +-
 .../test/functional/FateStarvationIT.java       |  2 +-
 .../test/functional/GarbageCollectorIT.java     |  8 +-
 .../test/functional/HalfDeadTServerIT.java      | 83 +++++++++++---------
 .../accumulo/test/functional/LargeRowIT.java    |  2 +-
 .../test/functional/LateLastContactIT.java      |  2 +-
 .../accumulo/test/functional/LogicalTimeIT.java |  2 +-
 .../accumulo/test/functional/MapReduceIT.java   |  2 +-
 .../test/functional/MasterFailoverIT.java       |  2 +-
 .../accumulo/test/functional/MaxOpenIT.java     |  2 +-
 .../accumulo/test/functional/MergeIT.java       |  6 +-
 .../test/functional/MetadataSplitIT.java        |  2 +-
 .../accumulo/test/functional/NativeMapIT.java   |  2 +-
 .../accumulo/test/functional/PermissionsIT.java |  2 +-
 .../accumulo/test/functional/ReadWriteIT.java   |  4 +-
 .../accumulo/test/functional/RenameIT.java      |  2 +-
 .../accumulo/test/functional/RestartIT.java     | 12 +--
 .../test/functional/RestartStressIT.java        |  2 +-
 .../accumulo/test/functional/RowDeleteIT.java   |  2 +-
 .../test/functional/ScanIteratorIT.java         |  2 +-
 .../accumulo/test/functional/ScanRangeIT.java   |  2 +-
 .../test/functional/ScanSessionTimeOutIT.java   |  2 +-
 .../test/functional/ServerSideErrorIT.java      |  2 +-
 .../accumulo/test/functional/ShutdownIT.java    | 24 +++---
 .../functional/SimpleBalancerFairnessIT.java    |  2 +-
 .../accumulo/test/functional/SimpleMacIT.java   | 14 ++++
 .../test/functional/SparseColumnFamilyIT.java   |  2 +-
 .../accumulo/test/functional/SplitIT.java       |  6 +-
 .../test/functional/SplitRecoveryIT.java        |  2 +-
 .../accumulo/test/functional/StartIT.java       |  2 +-
 .../accumulo/test/functional/TableIT.java       |  9 ++-
 .../accumulo/test/functional/TabletIT.java      |  2 +-
 .../accumulo/test/functional/TimeoutIT.java     |  2 +-
 .../accumulo/test/functional/VisibilityIT.java  |  2 +-
 .../test/functional/WriteAheadLogIT.java        |  2 +-
 .../accumulo/test/functional/WriteLotsIT.java   |  2 +-
 .../accumulo/test/functional/ZooCacheIT.java    |  2 +-
 .../test/functional/ZookeeperRestartIT.java     |  2 +-
 70 files changed, 342 insertions(+), 253 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/core/src/main/java/org/apache/accumulo/core/util/shell/commands/FlushCommand.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/FlushCommand.java b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/FlushCommand.java
index bf4c2d7..de175eb 100644
--- a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/FlushCommand.java
+++ b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/FlushCommand.java
@@ -19,7 +19,6 @@ package org.apache.accumulo.core.util.shell.commands;
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
 import org.apache.accumulo.core.client.TableNotFoundException;
-import org.apache.accumulo.core.metadata.MetadataTable;
 import org.apache.accumulo.core.util.shell.Shell;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java
----------------------------------------------------------------------
diff --git a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java
index 7657326..fd28a62 100644
--- a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java
+++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java
@@ -54,6 +54,7 @@ import org.apache.accumulo.server.util.Initialize;
 import org.apache.accumulo.server.util.PortUtils;
 import org.apache.accumulo.server.util.time.SimpleTimer;
 import org.apache.accumulo.start.Main;
+import org.apache.accumulo.start.classloader.vfs.MiniDFSUtil;
 import org.apache.commons.io.FileUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
@@ -129,10 +130,13 @@ public class MiniAccumuloCluster {
   private List<LogWriter> logWriters = new ArrayList<MiniAccumuloCluster.LogWriter>();
   
   private MiniAccumuloConfig config;
-  private MiniDFSCluster miniDFS;
+  private MiniDFSCluster miniDFS = null;
+  private List<Process> cleanup = new ArrayList<Process>();
   
   public Process exec(Class<? extends Object> clazz, String... args) throws IOException {
-    return exec(clazz, Collections.singletonList("-Xmx" + config.getDefaultMemory()), args);
+    Process proc = exec(clazz, Collections.singletonList("-Xmx" + config.getDefaultMemory()), args);
+    cleanup.add(proc);
+    return proc;
   }
   
   private Process exec(Class<? extends Object> clazz, List<String> extraJvmOpts, String... args) throws IOException {
@@ -222,20 +226,28 @@ public class MiniAccumuloCluster {
       nn.mkdirs();
       File dn = new File(config.getAccumuloDir(), "dn");
       dn.mkdirs();
+      File dfs = new File(config.getAccumuloDir(), "dfs");
+      dfs.mkdirs();
       Configuration conf = new Configuration();
       conf.set(DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY, nn.getAbsolutePath());
       conf.set(DFSConfigKeys.DFS_DATANODE_DATA_DIR_KEY, dn.getAbsolutePath());
       conf.set(DFSConfigKeys.DFS_REPLICATION_KEY, "1");
       conf.set(DFSConfigKeys.DFS_SUPPORT_APPEND_KEY, "true");
-      conf.set("dfs.datanode.data.dir.perm", "775");
+      conf.set("dfs.datanode.synconclose", "true");
+      conf.set("dfs.datanode.data.dir.perm", MiniDFSUtil.computeDatanodeDirectoryPermission());
+      String oldTestBuildData = System.setProperty("test.build.data", dfs.getAbsolutePath());
       miniDFS = new MiniDFSCluster(conf, 1, true, null);
+      if (oldTestBuildData == null)
+        System.clearProperty("test.build.data");
+      else
+        System.setProperty("test.build.data", oldTestBuildData);
       miniDFS.waitClusterUp();
       InetSocketAddress dfsAddress = miniDFS.getNameNode().getNameNodeAddress();
       String uri = "hdfs://" + dfsAddress.getHostName() + ":" + dfsAddress.getPort();
       File coreFile = new File(config.getConfDir(), "core-site.xml");
-      writeConfig(coreFile, Collections.singletonMap("fs.default.name", uri));
+      writeConfig(coreFile, Collections.singletonMap("fs.default.name", uri).entrySet());
       File hdfsFile = new File(config.getConfDir(), "hdfs-site.xml");
-      writeConfig(hdfsFile, Collections.singletonMap("dfs.support.append", "true"));
+      writeConfig(hdfsFile, conf);
       
       Map<String,String> siteConfig = config.getSiteConfig();
       siteConfig.put(Property.INSTANCE_DFS_URI.getKey(), uri);
@@ -244,7 +256,7 @@ public class MiniAccumuloCluster {
     }
     
     File siteFile = new File(config.getConfDir(), "accumulo-site.xml");
-    writeConfig(siteFile, config.getSiteConfig());
+    writeConfig(siteFile, config.getSiteConfig().entrySet());
     
     FileWriter fileWriter = new FileWriter(siteFile);
     fileWriter.append("<configuration>\n");
@@ -282,12 +294,14 @@ public class MiniAccumuloCluster {
     }
   }
   
-  private void writeConfig(File file, Map<String,String> settings) throws IOException {
+  private void writeConfig(File file, Iterable<Map.Entry<String, String>> settings) throws IOException {
     FileWriter fileWriter = new FileWriter(file);
     fileWriter.append("<configuration>\n");
     
-    for (Entry<String,String> entry : settings.entrySet())
-      fileWriter.append("<property><name>" + entry.getKey() + "</name><value>" + entry.getValue() + "</value></property>\n");
+    for (Entry<String,String> entry : settings) {
+      String value = entry.getValue().replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;");
+      fileWriter.append("<property><name>" + entry.getKey() + "</name><value>" + value + "</value></property>\n");
+    }
     fileWriter.append("</configuration>\n");
     fileWriter.close();
   }
@@ -318,11 +332,11 @@ public class MiniAccumuloCluster {
     
     if (zooKeeperProcess == null) {
       zooKeeperProcess = exec(Main.class, ServerType.ZOOKEEPER, ZooKeeperServerMain.class.getName(), zooCfgFile.getAbsolutePath());
-      // sleep a little bit to let zookeeper come up before calling init, seems to work better
-      UtilWaitThread.sleep(250);
     }
     
     if (!initialized) {
+      // sleep a little bit to let zookeeper come up before calling init, seems to work better
+      UtilWaitThread.sleep(250);
       Process initProcess = exec(Initialize.class, "--instance-name", config.getInstanceName(), "--password", config.getRootPassword(), "--username", "root");
       int ret = initProcess.waitFor();
       if (ret != 0) {
@@ -334,8 +348,13 @@ public class MiniAccumuloCluster {
     for (int i = tabletServerProcesses.size(); i < config.getNumTservers(); i++) {
       tabletServerProcesses.add(exec(TabletServer.class, ServerType.TABLET_SERVER));
     }
-    Process goal = exec(Main.class, SetGoalState.class.getName(), MasterGoalState.NORMAL.toString());
-    int ret = goal.waitFor();
+    int ret = 0;
+    for (int i = 0; i < 5; i++) {
+      ret = exec(Main.class, SetGoalState.class.getName(), MasterGoalState.NORMAL.toString()).waitFor();
+      if (ret == 0)
+        break;
+      UtilWaitThread.sleep(1000);
+    }
     if (ret != 0) {
       throw new RuntimeException("Could not set master goal state, process returned " + ret);
     }
@@ -444,7 +463,10 @@ public class MiniAccumuloCluster {
     tabletServerProcesses.clear();
     if (config.useMiniDFS() && miniDFS != null)
       miniDFS.shutdown();
+    for (Process p : cleanup)
+      p.destroy();
     miniDFS = null;
+    Runtime.getRuntime().exec("pkill -f " + config.getDir().getAbsolutePath());
   }
   
   /**

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/start/src/main/java/org/apache/accumulo/start/classloader/vfs/MiniDFSUtil.java
----------------------------------------------------------------------
diff --git a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/MiniDFSUtil.java b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/MiniDFSUtil.java
new file mode 100644
index 0000000..6227549
--- /dev/null
+++ b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/MiniDFSUtil.java
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+package org.apache.accumulo.start.classloader.vfs;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+
+public class MiniDFSUtil {
+  
+  public static String computeDatanodeDirectoryPermission() {
+    // MiniDFSCluster will check the permissions on the data directories, but does not
+    // do a good job of setting them properly. We need to get the users umask and set
+    // the appropriate Hadoop property so that the data directories will be created
+    // with the correct permissions.
+    try {
+      Process p = Runtime.getRuntime().exec("/bin/sh -c umask");
+      BufferedReader bri = new BufferedReader(new InputStreamReader(p.getInputStream()));
+      String line = bri.readLine();
+      p.waitFor();
+      
+      Short umask = Short.parseShort(line.trim(), 8);
+      // Need to set permission to 777 xor umask
+      // leading zero makes java interpret as base 8
+      int newPermission = 0777 ^ umask;
+      
+      return String.format("%03o", newPermission);
+    } catch (Exception e) {
+      throw new RuntimeException("Error getting umask from O/S", e);
+    }
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/start/src/test/java/org/apache/accumulo/test/AccumuloDFSBase.java
----------------------------------------------------------------------
diff --git a/start/src/test/java/org/apache/accumulo/test/AccumuloDFSBase.java b/start/src/test/java/org/apache/accumulo/test/AccumuloDFSBase.java
index 333c346..44eb2b5 100644
--- a/start/src/test/java/org/apache/accumulo/test/AccumuloDFSBase.java
+++ b/start/src/test/java/org/apache/accumulo/test/AccumuloDFSBase.java
@@ -16,12 +16,11 @@
  */
 package org.apache.accumulo.test;
 
-import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStreamReader;
 import java.net.URI;
 
+import org.apache.accumulo.start.classloader.vfs.MiniDFSUtil;
 import org.apache.accumulo.start.classloader.vfs.providers.HdfsFileProvider;
 import org.apache.commons.vfs2.CacheStrategy;
 import org.apache.commons.vfs2.FileSystemException;
@@ -64,26 +63,7 @@ public class AccumuloDFSBase {
     conf = new Configuration();
     conf.set("hadoop.security.token.service.use_ip", "true");
     
-    // MiniDFSCluster will check the permissions on the data directories, but does not
-    // do a good job of setting them properly. We need to get the users umask and set
-    // the appropriate Hadoop property so that the data directories will be created
-    // with the correct permissions.
-    try {
-      Process p = Runtime.getRuntime().exec("/bin/sh -c umask");
-      BufferedReader bri = new BufferedReader(new InputStreamReader(p.getInputStream()));
-      String line = bri.readLine();
-      p.waitFor();
-      
-      Short umask = Short.parseShort(line.trim(), 8);
-      // Need to set permission to 777 xor umask
-      // leading zero makes java interpret as base 8
-      int newPermission = 0777 ^ umask;
-      
-      conf.set("dfs.datanode.data.dir.perm", String.format("%03o", newPermission));
-    } catch (Exception e) {
-      throw new RuntimeException("Error getting umask from O/S", e);
-    }
-    
+    conf.set("dfs.datanode.data.dir.perm", MiniDFSUtil.computeDatanodeDirectoryPermission());
     conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, 1024 * 100); // 100K blocksize
     
     try {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
index b3d6479..60f1269 100644
--- a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
@@ -806,7 +806,7 @@ public class ShellServerIT {
     assertTrue(trace.contains("DeleteTable"));
   }
   
-  @Test(timeout=30 * 1000)
+  @Test(timeout = 30 * 1000)
   public void badLogin() throws Exception {
     input.set(secret + "\n");
     String err = exec("user NoSuchUser", false);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java b/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java
index 227bed8..03b69b8 100644
--- a/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java
@@ -27,6 +27,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
@@ -61,6 +62,7 @@ public class TableOperationsIT {
   
   static Connector connector;
   static TabletClientService.Client client;
+  final AtomicInteger tableCounter = new AtomicInteger(0);
   
   @BeforeClass
   public static void startUp() throws IOException, AccumuloException, AccumuloSecurityException, TTransportException, InterruptedException {
@@ -72,69 +74,75 @@ public class TableOperationsIT {
     connector = accumuloCluster.getConnector(ROOT, ROOT_PASS);
   }
   
-  @Test(timeout=30*1000)
+  String makeTableName() {
+    return "table" + tableCounter.getAndIncrement();
+  }
+  
+  @Test(timeout = 30 * 1000)
   public void getDiskUsageErrors() throws TableExistsException, AccumuloException, AccumuloSecurityException, TableNotFoundException, TException {
-    connector.tableOperations().create("table1");
-    List<DiskUsage> diskUsage = connector.tableOperations().getDiskUsage(Collections.singleton("table1"));
+    String tableName = makeTableName();
+    connector.tableOperations().create(tableName);
+    List<DiskUsage> diskUsage = connector.tableOperations().getDiskUsage(Collections.singleton(tableName));
     assertEquals(1, diskUsage.size());
     assertEquals(0, (long) diskUsage.get(0).getUsage());
-    assertEquals("table1", diskUsage.get(0).getTables().iterator().next());
+    assertEquals(tableName, diskUsage.get(0).getTables().iterator().next());
     
-    connector.securityOperations().revokeTablePermission(ROOT, "table1", TablePermission.READ);
+    connector.securityOperations().revokeTablePermission(ROOT, tableName, TablePermission.READ);
     try {
-      connector.tableOperations().getDiskUsage(Collections.singleton("table1"));
+      connector.tableOperations().getDiskUsage(Collections.singleton(tableName));
       fail("Should throw securityexception");
     } catch (AccumuloSecurityException e) {}
     
-    connector.tableOperations().delete("table1");
+    connector.tableOperations().delete(tableName);
     try {
-      connector.tableOperations().getDiskUsage(Collections.singleton("table1"));
+      connector.tableOperations().getDiskUsage(Collections.singleton(tableName));
       fail("Should throw tablenotfound");
     } catch (TableNotFoundException e) {}
   }
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 30 * 1000)
   public void getDiskUsage() throws TableExistsException, AccumuloException, AccumuloSecurityException, TableNotFoundException, TException {
     
-    connector.tableOperations().create("table1");
+    String tableName = makeTableName();
+    connector.tableOperations().create(tableName);
     
     // verify 0 disk usage
-    List<DiskUsage> diskUsages = connector.tableOperations().getDiskUsage(Collections.singleton("table1"));
+    List<DiskUsage> diskUsages = connector.tableOperations().getDiskUsage(Collections.singleton(tableName));
     assertEquals(1, diskUsages.size());
     assertEquals(1, diskUsages.get(0).getTables().size());
     assertEquals(new Long(0), diskUsages.get(0).getUsage());
-    assertEquals("table1", diskUsages.get(0).getTables().first());
+    assertEquals(tableName, diskUsages.get(0).getTables().first());
     
     // add some data
-    BatchWriter bw = connector.createBatchWriter("table1", new BatchWriterConfig());
+    BatchWriter bw = connector.createBatchWriter(tableName, new BatchWriterConfig());
     Mutation m = new Mutation("a");
     m.put("b", "c", new Value("abcde".getBytes()));
     bw.addMutation(m);
     bw.flush();
     bw.close();
     
-    connector.tableOperations().compact("table1", new Text("A"), new Text("z"), true, true);
+    connector.tableOperations().compact(tableName, new Text("A"), new Text("z"), true, true);
     
     // verify we have usage
-    diskUsages = connector.tableOperations().getDiskUsage(Collections.singleton("table1"));
+    diskUsages = connector.tableOperations().getDiskUsage(Collections.singleton(tableName));
     assertEquals(1, diskUsages.size());
     assertEquals(1, diskUsages.get(0).getTables().size());
     assertTrue(diskUsages.get(0).getUsage() > 0);
-    assertEquals("table1", diskUsages.get(0).getTables().first());
+    assertEquals(tableName, diskUsages.get(0).getTables().first());
     
     // clone table
-    connector.tableOperations().clone("table1", "table2", false, null, null);
+    connector.tableOperations().clone(tableName, "table2", false, null, null);
     
     // verify tables are exactly the same
     Set<String> tables = new HashSet<String>();
-    tables.add("table1");
+    tables.add(tableName);
     tables.add("table2");
     diskUsages = connector.tableOperations().getDiskUsage(tables);
     assertEquals(1, diskUsages.size());
     assertEquals(2, diskUsages.get(0).getTables().size());
     assertTrue(diskUsages.get(0).getUsage() > 0);
     
-    connector.tableOperations().compact("table1", new Text("A"), new Text("z"), true, true);
+    connector.tableOperations().compact(tableName, new Text("A"), new Text("z"), true, true);
     connector.tableOperations().compact("table2", new Text("A"), new Text("z"), true, true);
     
     // verify tables have differences
@@ -145,16 +153,17 @@ public class TableOperationsIT {
     assertTrue(diskUsages.get(0).getUsage() > 0);
     assertTrue(diskUsages.get(1).getUsage() > 0);
     
-    connector.tableOperations().delete("table1");
+    connector.tableOperations().delete(tableName);
   }
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 30 * 1000)
   public void createTable() throws TableExistsException, AccumuloException, AccumuloSecurityException, TableNotFoundException {
-    connector.tableOperations().create("table1");
-    Iterable<Map.Entry<String,String>> itrProps = connector.tableOperations().getProperties("table1");
+    String tableName = makeTableName();
+    connector.tableOperations().create(tableName);
+    Iterable<Map.Entry<String,String>> itrProps = connector.tableOperations().getProperties(tableName);
     Map<String,String> props = propsToMap(itrProps);
     assertEquals(DefaultKeySizeConstraint.class.getName(), props.get(Property.TABLE_CONSTRAINT_PREFIX.toString() + "1"));
-    connector.tableOperations().delete("table1");
+    connector.tableOperations().delete(tableName);
   }
   
   private Map<String,String> propsToMap(Iterable<Map.Entry<String,String>> props) {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java b/test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java
index 0ca65f7..fcd5da9 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java
@@ -16,6 +16,7 @@
  */
 package org.apache.accumulo.test.functional;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -25,6 +26,7 @@ import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
 import org.apache.accumulo.core.client.Connector;
 import org.apache.accumulo.minicluster.MiniAccumuloCluster;
+import org.apache.commons.io.FileUtils;
 import org.apache.log4j.Logger;
 import org.junit.rules.TemporaryFolder;
 

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/AddSplitIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/AddSplitIT.java b/test/src/test/java/org/apache/accumulo/test/functional/AddSplitIT.java
index 4f939ba..eba3081 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/AddSplitIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/AddSplitIT.java
@@ -38,7 +38,7 @@ import org.junit.Test;
 
 public class AddSplitIT extends SimpleMacIT {
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 60 * 1000)
   public void addSplitTest() throws Exception {
 
     String tableName = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BadIteratorMincIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BadIteratorMincIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BadIteratorMincIT.java
index 33ab344..0d7e509 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BadIteratorMincIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BadIteratorMincIT.java
@@ -35,7 +35,7 @@ import org.junit.Test;
 
 public class BadIteratorMincIT extends SimpleMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BatchScanSplitIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BatchScanSplitIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BatchScanSplitIT.java
index 1468249..ba7f07c 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BatchScanSplitIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BatchScanSplitIT.java
@@ -45,14 +45,15 @@ public class BatchScanSplitIT extends ConfigurableMacIT {
     cfg.setSiteConfig(Collections.singletonMap(Property.TSERV_MAJC_DELAY.getKey(), "0"));
   }
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
-    c.tableOperations().create("bss");
+    String tableName = makeTableName();
+    c.tableOperations().create(tableName);
     
     int numRows = 1 << 18;
     
-    BatchWriter bw = getConnector().createBatchWriter("bss", new BatchWriterConfig());
+    BatchWriter bw = getConnector().createBatchWriter(tableName, new BatchWriterConfig());
     
     for (int i = 0; i < numRows; i++) {
       Mutation m = new Mutation(new Text(String.format("%09x", i)));
@@ -62,14 +63,14 @@ public class BatchScanSplitIT extends ConfigurableMacIT {
     
     bw.close();
     
-    getConnector().tableOperations().flush("bss", null, null, true);
+    getConnector().tableOperations().flush(tableName, null, null, true);
     
-    getConnector().tableOperations().setProperty("bss", Property.TABLE_SPLIT_THRESHOLD.getKey(), "4K");
+    getConnector().tableOperations().setProperty(tableName, Property.TABLE_SPLIT_THRESHOLD.getKey(), "4K");
     
-    Collection<Text> splits = getConnector().tableOperations().listSplits("bss");
+    Collection<Text> splits = getConnector().tableOperations().listSplits(tableName);
     while (splits.size() < 2) {
       UtilWaitThread.sleep(1);
-      splits = getConnector().tableOperations().listSplits("bss");
+      splits = getConnector().tableOperations().listSplits(tableName);
     }
     
     System.out.println("splits : " + splits);
@@ -89,7 +90,7 @@ public class BatchScanSplitIT extends ConfigurableMacIT {
     HashMap<Text,Value> found = new HashMap<Text,Value>();
     
     for (int i = 0; i < 20; i++) {
-      BatchScanner bs = getConnector().createBatchScanner("bss", Authorizations.EMPTY, 4);
+      BatchScanner bs = getConnector().createBatchScanner(tableName, Authorizations.EMPTY, 4);
       
       found.clear();
       
@@ -110,7 +111,7 @@ public class BatchScanSplitIT extends ConfigurableMacIT {
         throw new Exception("Found and expected differ " + found + " " + expected);
     }
     
-    splits = getConnector().tableOperations().listSplits("bss");
+    splits = getConnector().tableOperations().listSplits(tableName);
     log.info("splits : " + splits);
   }
   

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BatchWriterFlushIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BatchWriterFlushIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BatchWriterFlushIT.java
index 55042f7..f313786 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BatchWriterFlushIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BatchWriterFlushIT.java
@@ -42,7 +42,7 @@ public class BatchWriterFlushIT extends SimpleMacIT {
   
   private static final int NUM_TO_FLUSH = 100000;
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 30 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     String bwft = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BigRootTabletIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BigRootTabletIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BigRootTabletIT.java
index 55a879c..383e07b 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BigRootTabletIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BigRootTabletIT.java
@@ -43,7 +43,7 @@ public class BigRootTabletIT extends ConfigurableMacIT {
     cfg.setSiteConfig(siteConfig);
   }
   
-  @Test(timeout = 2 * 60 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     c.tableOperations().addSplits(MetadataTable.NAME, FunctionalTestUtils.splits("0 1 2 3 4 5 6 7 8 9 a".split(" ")));

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BinaryIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BinaryIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BinaryIT.java
index 872caf2..58ca57c 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BinaryIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BinaryIT.java
@@ -28,7 +28,7 @@ import org.junit.Test;
 
 public class BinaryIT extends ConfigurableMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("bt");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BinaryStressIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BinaryStressIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BinaryStressIT.java
index 65917a5..ebe2ca6 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BinaryStressIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BinaryStressIT.java
@@ -40,7 +40,7 @@ public class BinaryStressIT extends ConfigurableMacIT {
     cfg.setSiteConfig(siteConfig );
   }
 
-  @Test(timeout=60*1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void binaryStressTest() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("bt");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java
index 2ba5ded..d615cb8 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java
@@ -59,7 +59,7 @@ public class BloomFilterIT extends ConfigurableMacIT {
     cfg.setSiteConfig(siteConfig );
   }
   
-  @Test(timeout=200*1000)
+  @Test(timeout = 4 * 60 *1000)
   public void test() throws Exception {
     Connector c = getConnector();
     for (String table : "bt1 bt2 bt3 bt4".split(" ")) {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java
index ac7684a..6597c68 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java
@@ -41,7 +41,7 @@ import org.junit.Test;
 
 public class BulkFileIT extends SimpleMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void testBulkFile() throws Exception {
     Connector c = getConnector();
     String tableName = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java
index 3eea057..e239c32 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java
@@ -30,7 +30,7 @@ public class BulkIT extends SimpleMacIT {
   static final int N = 100000;
   static final int COUNT = 5;
   
-  @Test(timeout=120*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     String tableName = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/BulkSplitOptimizationIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BulkSplitOptimizationIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BulkSplitOptimizationIT.java
index 7c0d7ee..f836181 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/BulkSplitOptimizationIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BulkSplitOptimizationIT.java
@@ -47,7 +47,7 @@ public class BulkSplitOptimizationIT extends ConfigurableMacIT {
   static final int ROWS = 100000;
   static final int SPLITS = 99;
 
-  @Test(timeout=30*1000)
+  @Test(timeout = 60 * 1000)
   public void testBulkSplitOptimization() throws Exception {
     final Connector c = getConnector();
     c.tableOperations().create(TABLE_NAME);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBalancerIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBalancerIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBalancerIT.java
new file mode 100644
index 0000000..08d2536
--- /dev/null
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBalancerIT.java
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+package org.apache.accumulo.test.functional;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.minicluster.MiniAccumuloConfig;
+import org.apache.accumulo.server.master.balancer.ChaoticLoadBalancer;
+import org.apache.accumulo.test.TestIngest;
+import org.apache.accumulo.test.VerifyIngest;
+import org.apache.hadoop.io.Text;
+import org.junit.Test;
+
+public class ChaoticBalancerIT extends ConfigurableMacIT {
+  
+  @Override
+  public void configure(MiniAccumuloConfig cfg) {
+    Map<String,String> siteConfig = new HashMap<String, String>();
+    siteConfig.put(Property.TSERV_MAXMEM.getKey(), "10K");
+    siteConfig.put(Property.TSERV_MAJC_DELAY.getKey(), "0");
+    siteConfig.put(Property.TABLE_LOAD_BALANCER.getKey(), ChaoticLoadBalancer.class.getName());
+    cfg.setSiteConfig(siteConfig );
+  }
+
+  @Test(timeout = 4 * 60 * 1000)
+  public void test() throws Exception {
+    Connector c = getConnector();
+    c.tableOperations().create("test_ingest");
+    c.tableOperations().setProperty("test_ingest", Property.TABLE_SPLIT_THRESHOLD.getKey(), "10K");
+    SortedSet<Text> splits = new TreeSet<Text>();
+    for (int i = 0; i < 100; i++) {
+      splits.add(new Text(String.format("%03d", i)));
+    }
+    c.tableOperations().create("unused");
+    c.tableOperations().addSplits("unused", splits);
+    TestIngest.Opts opts = new TestIngest.Opts();
+    VerifyIngest.Opts vopts = new VerifyIngest.Opts();
+    vopts.rows = opts.rows = 20000;
+    TestIngest.ingest(c, opts, BWOPTS);
+    c.tableOperations().flush("test_ingest", null, null, true);
+    VerifyIngest.verifyIngest(c, vopts, SOPTS);
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBlancerIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBlancerIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBlancerIT.java
deleted file mode 100644
index 7d5f377..0000000
--- a/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBlancerIT.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-package org.apache.accumulo.test.functional;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.conf.Property;
-import org.apache.accumulo.minicluster.MiniAccumuloConfig;
-import org.apache.accumulo.server.master.balancer.ChaoticLoadBalancer;
-import org.apache.accumulo.test.TestIngest;
-import org.apache.accumulo.test.VerifyIngest;
-import org.apache.hadoop.io.Text;
-import org.junit.Test;
-
-public class ChaoticBlancerIT extends ConfigurableMacIT {
-  
-  @Override
-  public void configure(MiniAccumuloConfig cfg) {
-    Map<String,String> siteConfig = new HashMap<String, String>();
-    siteConfig.put(Property.TSERV_MAXMEM.getKey(), "10K");
-    siteConfig.put(Property.TSERV_MAJC_DELAY.getKey(), "0");
-    siteConfig.put(Property.TABLE_LOAD_BALANCER.getKey(), ChaoticLoadBalancer.class.getName());
-    cfg.setSiteConfig(siteConfig );
-  }
-
-  @Test(timeout=120*1000)
-  public void test() throws Exception {
-    Connector c = getConnector();
-    c.tableOperations().create("test_ingest");
-    c.tableOperations().setProperty("test_ingest", Property.TABLE_SPLIT_THRESHOLD.getKey(), "10K");
-    SortedSet<Text> splits = new TreeSet<Text>();
-    for (int i = 0; i < 200; i++) {
-      splits.add(new Text(String.format("%03d", i)));
-    }
-    c.tableOperations().create("unused");
-    c.tableOperations().addSplits("unused", splits);
-    TestIngest.Opts opts = new TestIngest.Opts();
-    VerifyIngest.Opts vopts = new VerifyIngest.Opts();
-    vopts.rows = opts.rows = 200000;
-    TestIngest.ingest(c, opts, BWOPTS);
-    c.tableOperations().flush("test_ingest", null, null, true);
-    VerifyIngest.verifyIngest(c, vopts, SOPTS);
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ClassLoaderIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ClassLoaderIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ClassLoaderIT.java
index 38c09d1..c85c78c 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ClassLoaderIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ClassLoaderIT.java
@@ -44,7 +44,7 @@ import org.junit.Test;
 
 public class ClassLoaderIT extends SimpleMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/CombinerIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/CombinerIT.java b/test/src/test/java/org/apache/accumulo/test/functional/CombinerIT.java
index d10d084..dc4368f 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/CombinerIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/CombinerIT.java
@@ -48,7 +48,7 @@ public class CombinerIT extends SimpleMacIT {
     assertFalse(i.hasNext());
   }
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 60 * 1000)
   public void aggregationTest() throws Exception {
     Connector c = getConnector();
     String tableName = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/CompactionIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/CompactionIT.java b/test/src/test/java/org/apache/accumulo/test/functional/CompactionIT.java
index 1d641cf..a49670e 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/CompactionIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/CompactionIT.java
@@ -54,7 +54,7 @@ public class CompactionIT extends ConfigurableMacIT {
     cfg.setSiteConfig(map);
   }
   
-  @Test(timeout = 120 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void test() throws Exception {
     final Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ConcurrencyIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ConcurrencyIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ConcurrencyIT.java
index 9c6020c..c3d3160 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ConcurrencyIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ConcurrencyIT.java
@@ -72,7 +72,7 @@ public class ConcurrencyIT extends ConfigurableMacIT {
    * Scan 0 |------------------------------| Scan 1 |----------| Minc 1 |-----| Scan 2 |----------| Scan 3 |---------------| Minc 2 |-----| Majc 1 |-----|
    */
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("cct");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ConstraintIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ConstraintIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ConstraintIT.java
index 022aef3..56f0c22 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ConstraintIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ConstraintIT.java
@@ -41,7 +41,7 @@ import org.junit.Test;
 
 public class ConstraintIT extends SimpleMacIT {
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 30 * 1000)
   public void run() throws Exception {
     String[] tableNames = { makeTableName(), makeTableName(), makeTableName() }; 
     Connector c = getConnector();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/CreateAndUseIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/CreateAndUseIT.java b/test/src/test/java/org/apache/accumulo/test/functional/CreateAndUseIT.java
index 454a1ef..ba17f88 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/CreateAndUseIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/CreateAndUseIT.java
@@ -35,7 +35,7 @@ import org.junit.Test;
 
 public class CreateAndUseIT extends SimpleMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void run() throws Exception {
     SortedSet<Text> splits = new TreeSet<Text>();
     

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/CreateManyScannersIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/CreateManyScannersIT.java b/test/src/test/java/org/apache/accumulo/test/functional/CreateManyScannersIT.java
index 39b61f4..4549d55 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/CreateManyScannersIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/CreateManyScannersIT.java
@@ -22,7 +22,7 @@ import org.junit.Test;
 
 public class CreateManyScannersIT extends SimpleMacIT {
   
-  @Test(timeout=20*1000)
+  @Test(timeout = 60 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     String tableName = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java b/test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java
index d16c1fb..1f62f3c 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java
@@ -41,7 +41,7 @@ public class DeleteEverythingIT extends ConfigurableMacIT {
     cfg.setSiteConfig(Collections.singletonMap(Property.TSERV_MAJC_DELAY.getKey(), "1s"));
   }
   
-  @Test(timeout=20*1000)
+  @Test(timeout = 60 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("de");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/DeleteIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/DeleteIT.java b/test/src/test/java/org/apache/accumulo/test/functional/DeleteIT.java
index 1e2a16e..28d7d81 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/DeleteIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/DeleteIT.java
@@ -29,7 +29,7 @@ import org.junit.Test;
 
 public class DeleteIT extends ConfigurableMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsIT.java b/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsIT.java
index d1ab6c4..e6c0446 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsIT.java
@@ -57,7 +57,7 @@ public class DeleteRowsIT extends SimpleMacIT {
     ROWS.add("{");
   }
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 10 * 60 * 1000)
   public void test() throws Exception {
     // Delete ranges of rows, and verify the tablets are removed.
     int i = 0;

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsSplitIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsSplitIT.java b/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsSplitIT.java
index 6b28986..fae52d0 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsSplitIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsSplitIT.java
@@ -52,14 +52,14 @@ public class DeleteRowsSplitIT extends SimpleMacIT {
     }
   }
   
-  @Test(timeout=200*1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void run() throws Exception {
     // Delete ranges of rows, and verify the are removed
     // Do this while adding many splits
     final String tableName = makeTableName();
     
     // Eliminate whole tablets
-    for (int test = 0; test < 50; test++) {
+    for (int test = 0; test < 10; test++) {
       // create a table
       log.info("Test " + test);
       getConnector().tableOperations().create(tableName);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/DynamicThreadPoolsIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/DynamicThreadPoolsIT.java b/test/src/test/java/org/apache/accumulo/test/functional/DynamicThreadPoolsIT.java
index 6b3595c..4ec59b0 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/DynamicThreadPoolsIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/DynamicThreadPoolsIT.java
@@ -43,7 +43,7 @@ public class DynamicThreadPoolsIT extends ConfigurableMacIT {
     cfg.setSiteConfig(Collections.singletonMap(Property.TSERV_MAJC_DELAY.getKey(), "100ms"));
   }
   
-  @Test(timeout = 60 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void test() throws Exception {
     final int TABLES = 15;
     Connector c = getConnector();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
index ee56728..e8e26b9 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
@@ -85,7 +85,7 @@ public class ExamplesIT extends ConfigurableMacIT {
     cfg.setDefaultMemory(cfg.getDefaultMemory() * 2, MemoryUnit.BYTE);
   }
   
-  @Test(timeout=5*60*1000)
+  @Test(timeout = 10 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     String instance = c.getInstance().getInstanceName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/FateStarvationIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/FateStarvationIT.java b/test/src/test/java/org/apache/accumulo/test/functional/FateStarvationIT.java
index aed97b9..e58931d 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/FateStarvationIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/FateStarvationIT.java
@@ -31,7 +31,7 @@ import org.junit.Test;
  */
 public class FateStarvationIT extends SimpleMacIT {
   
-  @Test(timeout=2 * 60 * 1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void run() throws Exception {
     String tableName = makeTableName();
     Connector c = getConnector();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java b/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
index 9cc70be..5ce1fa6 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
@@ -56,7 +56,7 @@ public class GarbageCollectorIT extends ConfigurableMacIT {
     cfg.setSiteConfig(settings);
   }
   
-  @Test(timeout = 2 * 60 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void gcTest() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -76,21 +76,21 @@ public class GarbageCollectorIT extends ConfigurableMacIT {
       before = more;
     }
     Process gc = cluster.exec(SimpleGarbageCollector.class);
-    UtilWaitThread.sleep(5 * 1000);
+    UtilWaitThread.sleep(10 * 1000);
     int after = countFiles();
     VerifyIngest.verifyIngest(c, vopts, new ScannerOpts());
     assertTrue(after < before);
     gc.destroy();
   }
   
-  @Test(timeout = 2 * 60 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void gcLotsOfCandidatesIT() throws Exception {
     log.info("Filling !METADATA table with bogus delete flags");
     Connector c = getConnector();
     addEntries(c, new BatchWriterOpts());
     cluster.getConfig().setDefaultMemory(10, MemoryUnit.MEGABYTE);
     Process gc = cluster.exec(SimpleGarbageCollector.class);
-    UtilWaitThread.sleep(10 * 1000);
+    UtilWaitThread.sleep(20 * 1000);
     String output = FunctionalTestUtils.readAll(cluster, SimpleGarbageCollector.class, gc);
     gc.destroy();
     assertTrue(output.contains("delete candidates has exceeded"));

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java b/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java
index 506615c..58d9ee3 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java
@@ -85,12 +85,12 @@ public class HalfDeadTServerIT extends ConfigurableMacIT {
     }
   }
   
-  @Test(timeout = 100 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void testRecover() throws Exception {
     test(10);
   }
   
-  @Test(timeout = 120 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void testTimeout() throws Exception {
     String results = test(40);
     if (results != null)
@@ -122,44 +122,53 @@ public class HalfDeadTServerIT extends ConfigurableMacIT {
     env.put("LD_PRELOAD", libPath);
     env.put("DYLD_INSERT_LIBRARIES", libPath);
     env.put("DYLD_FORCE_FLAT_NAMESPACE", "true");
+    Process ingest = null;
     Process tserver = builder.start();
     DumpOutput t = new DumpOutput(tserver.getInputStream());
-    t.start();
-    UtilWaitThread.sleep(1000);
-    // don't need the regular tablet server
-    cluster.killProcess(ServerType.TABLET_SERVER, cluster.getProcesses().get(ServerType.TABLET_SERVER).iterator().next());
-    UtilWaitThread.sleep(1000);
-    c.tableOperations().create("test_ingest");
-    assertEquals(1, c.instanceOperations().getTabletServers().size());
-    int rows = 100 * 1000;
-    Process ingest = cluster.exec(TestIngest.class, "-u", "root", "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-p", ROOT_PASSWORD,
-        "--rows", rows + "");
-    UtilWaitThread.sleep(500);
-    
-    // block I/O with some side-channel trickiness
-    File trickFile = new File(trickFilename);
-    trickFile.createNewFile();
-    UtilWaitThread.sleep(seconds * 1000);
-    trickFile.delete();
-    
-    if (seconds <= 10) {
-      assertEquals(0, ingest.waitFor());
-      VerifyIngest.Opts vopts = new VerifyIngest.Opts();
-      vopts.rows = rows;
-      VerifyIngest.verifyIngest(c, vopts, SOPTS);
-    } else {
-      UtilWaitThread.sleep(5 * 1000);
+    try {
+      t.start();
+      UtilWaitThread.sleep(1000);
+      // don't need the regular tablet server
+      cluster.killProcess(ServerType.TABLET_SERVER, cluster.getProcesses().get(ServerType.TABLET_SERVER).iterator().next());
+      UtilWaitThread.sleep(1000);
+      c.tableOperations().create("test_ingest");
+      assertEquals(1, c.instanceOperations().getTabletServers().size());
+      int rows = 100 * 1000;
+      ingest = cluster.exec(TestIngest.class, "-u", "root", "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-p", ROOT_PASSWORD,
+          "--rows", rows + "");
+      UtilWaitThread.sleep(500);
+      
+      // block I/O with some side-channel trickiness
+      File trickFile = new File(trickFilename);
+      try {
+        trickFile.createNewFile();
+        UtilWaitThread.sleep(seconds * 1000);
+      } finally {
+        trickFile.delete();
+      }
+      
+      if (seconds <= 10) {
+        assertEquals(0, ingest.waitFor());
+        VerifyIngest.Opts vopts = new VerifyIngest.Opts();
+        vopts.rows = rows;
+        VerifyIngest.verifyIngest(c, vopts, SOPTS);
+      } else {
+        UtilWaitThread.sleep(5 * 1000);
+      }
+      // verify the process was blocked
+      String results = t.toString();
+      assertTrue(results.contains("sleeping\nsleeping\nsleeping\n"));
+      assertTrue(results.contains("Zookeeper error, will retry"));
+      return results;
+    } finally {
+      if (ingest != null) {
+        ingest.destroy();
+        ingest.waitFor();
+      }
+      tserver.destroy();
+      tserver.waitFor();
+      t.join();
     }
-    // verify the process was blocked
-    String results = t.toString();
-    assertTrue(results.contains("sleeping\nsleeping\nsleeping\n"));
-    assertTrue(results.contains("Zookeeper error, will retry"));
-    ingest.destroy();
-    ingest.waitFor();
-    tserver.destroy();
-    tserver.waitFor();
-    t.join();
-    return results;
   }
   
   private boolean makeDiskFailureLibrary() throws Exception {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/LargeRowIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/LargeRowIT.java b/test/src/test/java/org/apache/accumulo/test/functional/LargeRowIT.java
index 90f77e7..9493e43 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/LargeRowIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/LargeRowIT.java
@@ -53,7 +53,7 @@ public class LargeRowIT extends ConfigurableMacIT {
   private static final int NUM_PRE_SPLITS = 9;
   private static final int SPLIT_THRESH = ROW_SIZE * NUM_ROWS / NUM_PRE_SPLITS;
   
-  @Test(timeout=2 * 60 * 1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void run() throws Exception {
     Random r = new Random();
     byte rowData[] = new byte[ROW_SIZE];

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/LateLastContactIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/LateLastContactIT.java b/test/src/test/java/org/apache/accumulo/test/functional/LateLastContactIT.java
index bd313d6..81d3460 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/LateLastContactIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/LateLastContactIT.java
@@ -35,7 +35,7 @@ public class LateLastContactIT extends ConfigurableMacIT {
     cfg.setSiteConfig(Collections.singletonMap(Property.GENERAL_RPC_TIMEOUT.getKey(), "2s"));
   }
 
-  @Test(timeout=60*1000)
+  @Test(timeout = 60 * 1000)
   public void test() throws Exception {
     Process zombie = cluster.exec(ZombieTServer.class);
     assertEquals(0, zombie.waitFor());

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/LogicalTimeIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/LogicalTimeIT.java b/test/src/test/java/org/apache/accumulo/test/functional/LogicalTimeIT.java
index fbc9c00..add7d8a 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/LogicalTimeIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/LogicalTimeIT.java
@@ -31,7 +31,7 @@ import org.junit.Test;
 
 public class LogicalTimeIT extends ConfigurableMacIT {
 
-  @Test(timeout=120*1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void run() throws Exception {
     int tc = 0;
     String tableName = "foo";

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/MapReduceIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/MapReduceIT.java b/test/src/test/java/org/apache/accumulo/test/functional/MapReduceIT.java
index 7265a3b..69825bc 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/MapReduceIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/MapReduceIT.java
@@ -43,7 +43,7 @@ public class MapReduceIT extends SimpleMacIT {
   static final String output_cq = "cq-MD4BASE64";
   static final String output_cfcq =  input_cf + ":" + output_cq;
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create(tablename);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java b/test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java
index 4ca383a..f617a20 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java
@@ -35,7 +35,7 @@ public class MasterFailoverIT extends ConfigurableMacIT {
     cfg.setSiteConfig(Collections.singletonMap(Property.INSTANCE_ZK_TIMEOUT.getKey(), "5s"));
   }
 
-  @Test(timeout=30*1000)
+  @Test(timeout = 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/MaxOpenIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/MaxOpenIT.java b/test/src/test/java/org/apache/accumulo/test/functional/MaxOpenIT.java
index 1411059..c9a49ee 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/MaxOpenIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/MaxOpenIT.java
@@ -53,7 +53,7 @@ public class MaxOpenIT extends ConfigurableMacIT {
   private static final int NUM_TABLETS = 16;
   private static final int NUM_TO_INGEST = 10000;
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 3 * 60 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/MergeIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/MergeIT.java b/test/src/test/java/org/apache/accumulo/test/functional/MergeIT.java
index 2d3e78e..0d42382 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/MergeIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/MergeIT.java
@@ -47,7 +47,7 @@ public class MergeIT extends SimpleMacIT {
     return result;
   }
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 60 * 1000)
   public void merge() throws Exception {
     Connector c = getConnector();
     String tableName = makeTableName();
@@ -65,7 +65,7 @@ public class MergeIT extends SimpleMacIT {
     assertEquals(8, c.tableOperations().listSplits(tableName).size());
   }
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 60 * 1000)
   public void mergeSize() throws Exception {
     Connector c = getConnector();
     String tableName = makeTableName();
@@ -99,7 +99,7 @@ public class MergeIT extends SimpleMacIT {
     return strings;
   }
   
-  @Test(timeout=120*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void mergeTest() throws Exception {
     int tc = 0;
     Connector c = getConnector();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/MetadataSplitIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/MetadataSplitIT.java b/test/src/test/java/org/apache/accumulo/test/functional/MetadataSplitIT.java
index e2bb432..8b08e6a 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/MetadataSplitIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/MetadataSplitIT.java
@@ -35,7 +35,7 @@ public class MetadataSplitIT extends ConfigurableMacIT {
     cfg.setSiteConfig(Collections.singletonMap(Property.TSERV_MAJC_DELAY.getKey(), "100ms"));
   }
  
-  @Test(timeout = 60 * 1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     assertEquals(1, c.tableOperations().listSplits(MetadataTable.NAME).size());

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java b/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java
index f6e252a..b0b6344 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java
@@ -22,7 +22,7 @@ import org.junit.Test;
 
 public class NativeMapIT extends SimpleMacIT {
   
-  @Test(timeout=15*1000)
+  @Test(timeout = 15 * 1000)
   public void test() throws Exception {
     assertEquals(0, exec(NativeMapTest.class).waitFor());
   }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b/test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java
index 1ae91fe..7c565f2 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java
@@ -292,7 +292,7 @@ public class PermissionsIT extends SimpleMacIT {
   }
   
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 30 * 1000)
   public void tablePermissionTest() throws Exception {
     // create the test user
     String testUser = makeUserName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java
index 049eb0f..adfa557 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java
@@ -174,7 +174,7 @@ public class ReadWriteIT extends ConfigurableMacIT {
     return m;
   }
   
-  @Test(timeout = 60 * 1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void localityGroupPerf() throws Exception {
     // verify that locality groups can make look-ups faster
     final Connector connector = getConnector();
@@ -232,7 +232,7 @@ public class ReadWriteIT extends ConfigurableMacIT {
     assertTrue(foundFile);
   }
   
-  @Test(timeout = 2* 60 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void localityGroupChange() throws Exception {
     // Make changes to locality groups and ensure nothing is lostssh
     final Connector connector = getConnector();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/RenameIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/RenameIT.java b/test/src/test/java/org/apache/accumulo/test/functional/RenameIT.java
index 25292d6..0758695 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/RenameIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/RenameIT.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 
 public class RenameIT extends SimpleMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 60 * 1000)
   public void renameTest() throws Exception {
     String name1 = makeTableName();
     String name2 = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java b/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
index e33517c..aeaa1b3 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
@@ -49,7 +49,7 @@ public class RestartIT extends ConfigurableMacIT {
   private static final VerifyIngest.Opts VOPTS = new VerifyIngest.Opts();
   private static final BatchWriterOpts BWOPTS = new BatchWriterOpts();
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void restartMaster() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -65,7 +65,7 @@ public class RestartIT extends ConfigurableMacIT {
     ingest.destroy();
   }
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void restartMasterRecovery() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -85,7 +85,7 @@ public class RestartIT extends ConfigurableMacIT {
     VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
   }
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void restartMasterSplit() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -102,7 +102,7 @@ public class RestartIT extends ConfigurableMacIT {
     ingest.destroy();
   }
   
-  @Test(timeout= 60 * 1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void killedTabletServer() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -117,7 +117,7 @@ public class RestartIT extends ConfigurableMacIT {
     VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
   }
 
-  @Test(timeout=2 * 60 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void killedTabletServerDuringShutdown() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -128,7 +128,7 @@ public class RestartIT extends ConfigurableMacIT {
     assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
   }
   
-  @Test(timeout= 60 * 1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void shutdownDuringCompactingSplitting() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/RestartStressIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/RestartStressIT.java b/test/src/test/java/org/apache/accumulo/test/functional/RestartStressIT.java
index 1904d70..44d9332 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/RestartStressIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/RestartStressIT.java
@@ -53,7 +53,7 @@ public class RestartStressIT extends ConfigurableMacIT {
   private static final ScannerOpts SOPTS = new ScannerOpts();
   
   
-  @Test(timeout=600*1000)
+  @Test(timeout = 10 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/RowDeleteIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/RowDeleteIT.java b/test/src/test/java/org/apache/accumulo/test/functional/RowDeleteIT.java
index b1a45bc..731a68f 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/RowDeleteIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/RowDeleteIT.java
@@ -49,7 +49,7 @@ public class RowDeleteIT extends ConfigurableMacIT {
     cfg.setSiteConfig(Collections.singletonMap(Property.TSERV_MAJC_DELAY.getKey(), "50ms"));
   }
 
-  @Test(timeout=30*1000)
+  @Test(timeout = 60 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("rdel1");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ScanIteratorIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ScanIteratorIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ScanIteratorIT.java
index 1f4f513..aa014c7 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ScanIteratorIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ScanIteratorIT.java
@@ -38,7 +38,7 @@ import org.junit.Test;
 
 public class ScanIteratorIT extends SimpleMacIT {
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 30 * 1000)
   public void run() throws Exception {
     String tableName = makeTableName();
     Connector c = getConnector();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ScanRangeIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ScanRangeIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ScanRangeIT.java
index 6a38783..8a42740 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ScanRangeIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ScanRangeIT.java
@@ -38,7 +38,7 @@ public class ScanRangeIT extends SimpleMacIT {
   private static final int CF_LIMIT = 5;
   private static final int ROW_LIMIT = 100;
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     String table1 = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ScanSessionTimeOutIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ScanSessionTimeOutIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ScanSessionTimeOutIT.java
index 4134dca..2a4212f 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ScanSessionTimeOutIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ScanSessionTimeOutIT.java
@@ -41,7 +41,7 @@ public class ScanSessionTimeOutIT extends ConfigurableMacIT {
     cfg.setSiteConfig(Collections.singletonMap(Property.TSERV_SESSION_MAXIDLE.getKey(), "3"));
   }
 
-  @Test(timeout=30*1000)
+  @Test(timeout = 60 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("abc");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ServerSideErrorIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ServerSideErrorIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ServerSideErrorIT.java
index 4f1a105..a9fa847 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ServerSideErrorIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ServerSideErrorIT.java
@@ -38,7 +38,7 @@ import org.junit.Test;
 
 public class ServerSideErrorIT extends SimpleMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     String tableName = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ShutdownIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ShutdownIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ShutdownIT.java
index 09e2fc2..b75cd93 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ShutdownIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ShutdownIT.java
@@ -32,34 +32,34 @@ import org.junit.Test;
 
 public class ShutdownIT extends ConfigurableMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 3 * 60 * 1000)
   public void shutdownDuringIngest() throws Exception {
-    Process ingest = cluster.exec(TestIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-p", ROOT_PASSWORD, "--createTable");
+    Process ingest = cluster.exec(TestIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-u", "root", "-p", ROOT_PASSWORD, "--createTable");
     UtilWaitThread.sleep(100);
     assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
     ingest.destroy();
   }
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void shutdownDuringQuery() throws Exception {
-    assertEquals(0, cluster.exec(TestIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-p", ROOT_PASSWORD, "--createTable").waitFor());
-    Process verify = cluster.exec(VerifyIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-p", ROOT_PASSWORD);
+    assertEquals(0, cluster.exec(TestIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-u", "root","-p", ROOT_PASSWORD, "--createTable").waitFor());
+    Process verify = cluster.exec(VerifyIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-u", "root", "-p", ROOT_PASSWORD);
     UtilWaitThread.sleep(100);
     assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
     verify.destroy();
   }
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void shutdownDuringDelete() throws Exception {
-    assertEquals(0, cluster.exec(TestIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-p", ROOT_PASSWORD, "--createTable").waitFor());
-    Process deleter = cluster.exec(TestRandomDeletes.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-p", ROOT_PASSWORD);
+    assertEquals(0, cluster.exec(TestIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-u", "root", "-p", ROOT_PASSWORD, "--createTable").waitFor());
+    Process deleter = cluster.exec(TestRandomDeletes.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-u", "root", "-p", ROOT_PASSWORD);
     UtilWaitThread.sleep(100);
     assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
     deleter.destroy();
   }
 
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 60 * 1000)
   public void shutdownDuringDeleteTable() throws Exception {
     final Connector c = getConnector();
     for (int i = 0; i < 10 ; i++) {
@@ -83,15 +83,15 @@ public class ShutdownIT extends ConfigurableMacIT {
       throw ref.get();
   }
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void stopDuringStart() throws Exception {
     assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
   }
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void adminStop() throws Exception {
     Connector c = getConnector();
-    assertEquals(0, cluster.exec(TestIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-p", ROOT_PASSWORD, "--createTable").waitFor());
+    assertEquals(0, cluster.exec(TestIngest.class, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(), "-u", "root", "-p", ROOT_PASSWORD, "--createTable").waitFor());
     List<String> tabletServers = c.instanceOperations().getTabletServers();
     assertEquals(2, tabletServers.size());
     String doomed = tabletServers.get(0);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/SimpleBalancerFairnessIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/SimpleBalancerFairnessIT.java b/test/src/test/java/org/apache/accumulo/test/functional/SimpleBalancerFairnessIT.java
index a12d076..f04ac78 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/SimpleBalancerFairnessIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/SimpleBalancerFairnessIT.java
@@ -49,7 +49,7 @@ public class SimpleBalancerFairnessIT extends ConfigurableMacIT {
     cfg.setSiteConfig(siteConfig);
   }
   
-  @Test(timeout = 120 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void simpleBalancerFairness() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/SimpleMacIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/SimpleMacIT.java b/test/src/test/java/org/apache/accumulo/test/functional/SimpleMacIT.java
index 2be6677..75c2ea1 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/SimpleMacIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/SimpleMacIT.java
@@ -16,9 +16,13 @@
  */
 package org.apache.accumulo.test.functional;
 
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.metadata.MetadataTable;
+import org.apache.accumulo.core.metadata.RootTable;
 import org.apache.accumulo.minicluster.MiniAccumuloCluster;
 import org.apache.accumulo.minicluster.MiniAccumuloConfig;
 import org.apache.log4j.Logger;
+import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.rules.TemporaryFolder;
@@ -50,6 +54,16 @@ public class SimpleMacIT extends AbstractMacIT {
     return cluster;
   }
   
+  @After
+  public void cleanUp() throws Exception {
+    Connector c = getConnector();
+    for (String table : c.tableOperations().list()) {
+      if (table.equals(MetadataTable.NAME) || table.equals(RootTable.NAME))
+        continue;
+      c.tableOperations().delete(table);
+    }
+  }
+  
   @AfterClass
   public static void tearDown() throws Exception {
   }


[3/5] git commit: ACCUMULO-1620 limit the number of objects logged

Posted by ec...@apache.org.
ACCUMULO-1620 limit the number of objects logged


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

Branch: refs/heads/master
Commit: 9291beebf7f6ef323a2f7a211edf121251e5741f
Parents: 9d50657
Author: Eric Newton <er...@gmail.com>
Authored: Fri Aug 2 16:26:46 2013 -0400
Committer: Eric Newton <er...@gmail.com>
Committed: Fri Aug 2 16:26:46 2013 -0400

----------------------------------------------------------------------
 .../security/AuditedSecurityOperation.java      | 24 +++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/9291beeb/server/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java b/server/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java
index 7944ee3..ee337a5 100644
--- a/server/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java
+++ b/server/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java
@@ -17,8 +17,12 @@
 package org.apache.accumulo.server.security;
 
 import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.client.impl.Tables;
@@ -120,13 +124,27 @@ public class AuditedSecurityOperation extends SecurityOperation {
   }
   
   public static final String CAN_SCAN_AUDIT_TEMPLATE = "action: scan; targetTable: %s; authorizations: %s; range: %s; columns: %s; iterators: %s; iteratorOptions: %s;";
+  private static final int MAX_ELEMENTS_TO_LOG = 10;
+  
+  private static List<String> truncate(Collection<? extends Object> list) {
+    List<String> result = new ArrayList<String>();
+    int i = 0;
+    for (Object obj : list) {
+      if (i > MAX_ELEMENTS_TO_LOG) {
+        result.add(" and " + (list.size() - MAX_ELEMENTS_TO_LOG) + " more ");
+        break;
+      }
+      result.add(obj.toString());
+    }
+    return result;
+  }
   
   @Override
   public boolean canScan(TCredentials credentials, String tableId, TRange range, List<TColumn> columns, List<IterInfo> ssiList,
       Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations) throws ThriftSecurityException {
     if (shouldAudit(credentials, tableId)) {
       Range convertedRange = new Range(range);
-      List<Column> convertedColumns = Translator.translate(columns, new Translator.TColumnTranslator());
+      List<String> convertedColumns = truncate(Translator.translate(columns, new Translator.TColumnTranslator()));
       String tableName = getTableName(tableId);
       
       try {
@@ -152,6 +170,10 @@ public class AuditedSecurityOperation extends SecurityOperation {
       @SuppressWarnings({"unchecked", "rawtypes"})
       Map<KeyExtent,List<Range>> convertedBatch = Translator.translate(tbatch, new Translator.TKeyExtentTranslator(), new Translator.ListTranslator(
           new Translator.TRangeTranslator()));
+      Map<KeyExtent, List<String>> truncated = new HashMap<KeyExtent, List<String>>();
+      for (Entry<KeyExtent,List<Range>> entry : convertedBatch.entrySet()) {
+          truncated.put(entry.getKey(), truncate(entry.getValue()));
+      }
       List<Column> convertedColumns = Translator.translate(tcolumns, new Translator.TColumnTranslator());
       String tableName = getTableName(tableId);
       


[4/5] ACCUMULO-1537 make the IT a bit more stable

Posted by ec...@apache.org.
http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/SparseColumnFamilyIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/SparseColumnFamilyIT.java b/test/src/test/java/org/apache/accumulo/test/functional/SparseColumnFamilyIT.java
index 3c6c91e..8b7a83a 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/SparseColumnFamilyIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/SparseColumnFamilyIT.java
@@ -36,7 +36,7 @@ import org.junit.Test;
  */
 public class SparseColumnFamilyIT extends SimpleMacIT {
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 30 * 1000)
   public void sparceColumnFamily() throws Exception {
     String scftt = makeTableName();
     Connector c = getConnector();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/SplitIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/SplitIT.java b/test/src/test/java/org/apache/accumulo/test/functional/SplitIT.java
index 49ece93..761953a 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/SplitIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/SplitIT.java
@@ -52,7 +52,7 @@ public class SplitIT extends ConfigurableMacIT {
     cfg.setSiteConfig(siteConfig);
   }
   
-  @Test(timeout = 120 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void tabletShouldSplit() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -85,7 +85,7 @@ public class SplitIT extends ConfigurableMacIT {
             .waitFor());
   }
   
-  @Test(timeout = 60 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void interleaveSplit() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -96,7 +96,7 @@ public class SplitIT extends ConfigurableMacIT {
     assertTrue(c.tableOperations().listSplits("test_ingest").size() > 20);
   }
   
-  @Test(timeout = 120 * 1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void deleteSplit() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java b/test/src/test/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java
index 78a4473..69f2808 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java
@@ -22,7 +22,7 @@ import org.junit.Test;
 
 public class SplitRecoveryIT extends SimpleMacIT {
   
-  @Test(timeout=10*1000)
+  @Test(timeout = 10 * 1000)
   public void test() throws Exception {
     assertEquals(0, exec(SplitRecoveryTest.class).waitFor());
   }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/StartIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/StartIT.java b/test/src/test/java/org/apache/accumulo/test/functional/StartIT.java
index 3c1b98b..eeec941 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/StartIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/StartIT.java
@@ -23,7 +23,7 @@ import org.junit.Test;
 
 public class StartIT extends SimpleMacIT {
   
-  @Test(timeout=10*1000)
+  @Test(timeout = 10 * 1000)
   public void test() throws Exception {
     assertTrue(exec(TestMain.class, "exception").waitFor() != 0);
     assertEquals(0, exec(TestMain.class, "success").waitFor());

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/TableIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/TableIT.java b/test/src/test/java/org/apache/accumulo/test/functional/TableIT.java
index cda6c98..c3f8073 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/TableIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/TableIT.java
@@ -20,6 +20,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import java.io.FileNotFoundException;
 import java.util.Map.Entry;
 
 import org.apache.accumulo.core.cli.BatchWriterOpts;
@@ -31,6 +32,7 @@ import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.KeyExtent;
 import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.core.metadata.MetadataTable;
+import org.apache.accumulo.core.metadata.schema.MetadataSchema;
 import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.core.util.CachedConfiguration;
 import org.apache.accumulo.test.TestIngest;
@@ -58,6 +60,7 @@ public class TableIT extends SimpleMacIT {
     String id = to.tableIdMap().get(tableName);
     Scanner s = c.createScanner(MetadataTable.NAME, Authorizations.EMPTY);
     s.setRange(new KeyExtent(new Text(id), null, null).toMetadataRange());
+    s.fetchColumnFamily(MetadataSchema.TabletsSection.DataFileColumnFamily.NAME);
     int count = 0;
     for (@SuppressWarnings("unused")
     Entry<Key,Value> entry : s) {
@@ -73,7 +76,11 @@ public class TableIT extends SimpleMacIT {
       count++;
     }
     assertEquals(0, count);
-    assertEquals(0, fs.listStatus(new Path(rootPath() + "/accumulo/tables/" + id)).length);
+    try {
+      assertEquals(0, fs.listStatus(new Path(rootPath() + "/accumulo/tables/" + id)).length);
+    } catch (FileNotFoundException ex) {
+      // that's fine, too
+    }
     assertNull(to.tableIdMap().get(tableName));
     to.create(tableName);
     TestIngest.ingest(c, opts, new BatchWriterOpts());

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/TabletIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/TabletIT.java b/test/src/test/java/org/apache/accumulo/test/functional/TabletIT.java
index 4168f5a..f87a856 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/TabletIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/TabletIT.java
@@ -38,7 +38,7 @@ public class TabletIT extends ConfigurableMacIT {
     cfg.setSiteConfig(siteConfig);
   }
 
-  @Test(timeout=30*1000)
+  @Test(timeout = 30 * 1000)
   public void test() throws Exception {
     assertEquals(0, cluster.exec(CreateTestTable.class, "" + N).waitFor());
     assertEquals(0, cluster.exec(CreateTestTable.class, "-readonly", "" + N).waitFor());

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/TimeoutIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/TimeoutIT.java b/test/src/test/java/org/apache/accumulo/test/functional/TimeoutIT.java
index fb542b8..4bae35c 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/TimeoutIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/TimeoutIT.java
@@ -42,7 +42,7 @@ import org.junit.Test;
  */
 public class TimeoutIT extends SimpleMacIT {
   
-  @Test(timeout=60*1000)
+  @Test(timeout = 60 * 1000)
   public void run() throws Exception {
     Connector conn = getConnector();
     testBatchWriterTimeout(conn);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/VisibilityIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/VisibilityIT.java b/test/src/test/java/org/apache/accumulo/test/functional/VisibilityIT.java
index 2bbc7a5..bde7883 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/VisibilityIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/VisibilityIT.java
@@ -46,7 +46,7 @@ import org.junit.Test;
 
 public class VisibilityIT extends SimpleMacIT {
   
-  @Test(timeout=30*1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void run() throws Exception {
     Connector c = getConnector();
     String table = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/WriteAheadLogIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/WriteAheadLogIT.java b/test/src/test/java/org/apache/accumulo/test/functional/WriteAheadLogIT.java
index 67144e4..a798709 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/WriteAheadLogIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/WriteAheadLogIT.java
@@ -48,7 +48,7 @@ public class WriteAheadLogIT extends ConfigurableMacIT {
     cfg.useMiniDFS(true);
   }
 
-  @Test(timeout=100*1000)
+  @Test(timeout = 4 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/WriteLotsIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/WriteLotsIT.java b/test/src/test/java/org/apache/accumulo/test/functional/WriteLotsIT.java
index 752d843..5571a09 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/WriteLotsIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/WriteLotsIT.java
@@ -29,7 +29,7 @@ import org.junit.Test;
 
 public class WriteLotsIT extends SimpleMacIT {
   
-  @Test(timeout=20*1000)
+  @Test(timeout = 20 * 1000)
   public void writeLots() throws Exception {
     final Connector c = getConnector();
     final String tableName = makeTableName();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ZooCacheIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ZooCacheIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ZooCacheIT.java
index 96b3b55..44db530 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ZooCacheIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ZooCacheIT.java
@@ -26,7 +26,7 @@ import org.junit.Test;
 
 public class ZooCacheIT extends SimpleMacIT {
   
-  @Test(timeout=200*1000)
+  @Test(timeout = 2 * 60 *1000)
   public void test() throws Exception {
     assertEquals(0, exec(CacheTestClean.class, "/zcTest-42", "/tmp/zcTest-42").waitFor());
     final AtomicReference<Exception> ref = new AtomicReference<Exception>();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/040f8912/test/src/test/java/org/apache/accumulo/test/functional/ZookeeperRestartIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ZookeeperRestartIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ZookeeperRestartIT.java
index 5f4eca9..8646e54 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ZookeeperRestartIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ZookeeperRestartIT.java
@@ -48,7 +48,7 @@ public class ZookeeperRestartIT extends ConfigurableMacIT {
     cfg.setSiteConfig(siteConfig);
   }
 
-  @Test(timeout = 20 * 1000)
+  @Test(timeout = 2 * 60 * 1000)
   public void test() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");