[accumulo] branch main updated: Refactor LogSorter to use config (#2191)

2021-07-07 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 908105b  Refactor LogSorter to use config (#2191)
908105b is described below

commit 908105bc8fddd64aa2d5907c22ccf2a232209306
Author: Mike Miller 
AuthorDate: Wed Jul 7 07:29:44 2021 -0400

Refactor LogSorter to use config (#2191)

* Refactor LogSorter writeBuffer to allow use of system configuration
when writing out sorted rfiles. This will use configured settings on the
sorted files instead of only the defaults.
---
 .../java/org/apache/accumulo/tserver/log/LogSorter.java | 13 ++---
 .../apache/accumulo/tserver/log/SortedLogRecoveryTest.java  |  6 --
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java
index 293ff82..bd299af 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java
@@ -32,7 +32,6 @@ import java.util.concurrent.ThreadPoolExecutor;
 
 import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.conf.AccumuloConfiguration;
-import org.apache.accumulo.core.conf.DefaultConfiguration;
 import org.apache.accumulo.core.conf.Property;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Mutation;
@@ -146,7 +145,7 @@ public class LogSorter {
 // Creating a 'finished' marker will cause recovery to proceed 
normally and the
 // empty file will be correctly ignored downstream.
 fs.mkdirs(new Path(destPath));
-writeBuffer(context, destPath, Collections.emptyList(), part++);
+writeBuffer(destPath, Collections.emptyList(), part++);
 fs.create(SortedLogState.getFinishedMarkerPath(destPath)).close();
 return;
   }
@@ -164,10 +163,10 @@ public class LogSorter {
 value.readFields(decryptingInput);
 buffer.add(new Pair<>(key, value));
   }
-  writeBuffer(context, destPath, buffer, part++);
+  writeBuffer(destPath, buffer, part++);
   buffer.clear();
 } catch (EOFException ex) {
-  writeBuffer(context, destPath, buffer, part++);
+  writeBuffer(destPath, buffer, part++);
   break;
 }
   }
@@ -215,8 +214,8 @@ public class LogSorter {
   }
 
   @VisibleForTesting
-  public static void writeBuffer(ServerContext context, String destPath,
-  List> buffer, int part) throws IOException 
{
+  void writeBuffer(String destPath, List> 
buffer, int part)
+  throws IOException {
 String filename = String.format("part-r-%05d.rf", part);
 Path path = new Path(destPath, filename);
 FileSystem fs = context.getVolumeManager().getFileSystemByPath(path);
@@ -238,7 +237,7 @@ public class LogSorter {
 
 try (var writer = FileOperations.getInstance().newWriterBuilder()
 .forFile(fullPath.toString(), fs, fs.getConf(), 
context.getCryptoService())
-.withTableConfiguration(DefaultConfiguration.getInstance()).build()) {
+.withTableConfiguration(conf).build()) {
   writer.startDefaultLocalityGroup();
   for (var entry : keyListMap.entrySet()) {
 LogFileValue val = new LogFileValue();
diff --git 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/log/SortedLogRecoveryTest.java
 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/log/SortedLogRecoveryTest.java
index 2121725..582b9bc 100644
--- 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/log/SortedLogRecoveryTest.java
+++ 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/log/SortedLogRecoveryTest.java
@@ -79,6 +79,7 @@ public class SortedLogRecoveryTest {
   static final Text cq = new Text("cq");
   static final Value value = new Value("value");
   static ServerContext context;
+  static LogSorter logSorter;
 
   @Rule
   public TemporaryFolder tempFolder =
@@ -87,6 +88,7 @@ public class SortedLogRecoveryTest {
   @Before
   public void setup() {
 context = EasyMock.createMock(ServerContext.class);
+logSorter = new LogSorter(context, DefaultConfiguration.getInstance());
   }
 
   static class KeyValue implements Comparable {
@@ -179,11 +181,11 @@ public class SortedLogRecoveryTest {
 for (KeyValue pair : entry.getValue()) {
   buffer.add(new Pair<>(pair.key, pair.value));
   if (buffer.size() >= bufferSize) {
-LogSorter.writeBuffer(context, destPath, buffer, parts++);
+logSorter.writeBuffer(destPath, buffer, parts++);
 buffer.clear();
   }
 }
-LogSorter.writeBuffer(context, destPath, buff

[accumulo] branch main updated: Catch NoNodeException in CompactRange undo (#2178)

2021-06-24 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 04a4a7b  Catch NoNodeException in CompactRange undo (#2178)
04a4a7b is described below

commit 04a4a7bcb5f6e7d38829c270b46c1484e4b42650
Author: Mike Miller 
AuthorDate: Thu Jun 24 06:36:22 2021 -0400

Catch NoNodeException in CompactRange undo (#2178)

* Fixes #1919
* It is possible for a compaction to run after a table is deleted so
catch the exception and print to debug, avoiding the FATE warning
---
 .../manager/tableOps/compact/CompactRange.java | 33 --
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactRange.java
 
b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactRange.java
index dfa52c4..6d94c52 100644
--- 
a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactRange.java
+++ 
b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactRange.java
@@ -149,24 +149,27 @@ public class CompactRange extends ManagerRepo {
 
 ZooReaderWriter zoo = environment.getContext().getZooReaderWriter();
 
-zoo.mutateExisting(zTablePath, currentValue -> {
-  String cvs = new String(currentValue, UTF_8);
-  String[] tokens = cvs.split(",");
-  long flushID = Long.parseLong(tokens[0]);
-
-  String txidString = String.format("%016x", txid);
+try {
+  zoo.mutateExisting(zTablePath, currentValue -> {
+String cvs = new String(currentValue, UTF_8);
+String[] tokens = cvs.split(",");
+long flushID = Long.parseLong(tokens[0]);
 
-  StringBuilder encodedIterators = new StringBuilder();
-  for (int i = 1; i < tokens.length; i++) {
-if (tokens[i].startsWith(txidString))
-  continue;
-encodedIterators.append(",");
-encodedIterators.append(tokens[i]);
-  }
+String txidString = String.format("%016x", txid);
 
-  return (Long.toString(flushID) + encodedIterators).getBytes(UTF_8);
-});
+StringBuilder encodedIterators = new StringBuilder();
+for (int i = 1; i < tokens.length; i++) {
+  if (tokens[i].startsWith(txidString))
+continue;
+  encodedIterators.append(",");
+  encodedIterators.append(tokens[i]);
+}
 
+return (Long.toString(flushID) + encodedIterators).getBytes(UTF_8);
+  });
+} catch (NoNodeException ke) {
+  log.debug("Node for {} no longer exists.", tableId, ke);
+}
   }
 
   @Override


[accumulo] branch main updated: Adds tests to LogFileKeyTest (#2177)

2021-06-23 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 89b411c  Adds tests to LogFileKeyTest (#2177)
89b411c is described below

commit 89b411c391675cb3f1faed83f2dd4451b2ac6d12
Author: Mike Miller 
AuthorDate: Wed Jun 23 09:57:31 2021 -0400

Adds tests to LogFileKeyTest (#2177)
---
 .../apache/accumulo/tserver/logger/LogFileKey.java | 15 ++-
 .../accumulo/tserver/log/LogFileKeyTest.java   | 49 ++
 2 files changed, 62 insertions(+), 2 deletions(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogFileKey.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogFileKey.java
index cf5dc21..b860be5 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogFileKey.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogFileKey.java
@@ -28,6 +28,7 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 import java.io.UncheckedIOException;
+import java.util.Arrays;
 
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Range;
@@ -36,10 +37,13 @@ import org.apache.hadoop.io.DataInputBuffer;
 import org.apache.hadoop.io.DataOutputBuffer;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.io.WritableComparable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Preconditions;
 
 public class LogFileKey implements WritableComparable {
+  private static final Logger log = LoggerFactory.getLogger(LogFileKey.class);
 
   public LogEvents event;
   public String filename = null;
@@ -258,7 +262,9 @@ public class LogFileKey implements 
WritableComparable {
 
   /**
* Format the row using 13 bytes encoded to allow proper sorting of the 
RFile Key. The highest
-   * byte is for the event number, 4 bytes for the tabletId and 8 bytes for 
the sequence long.
+   * byte is for the event number, 4 bytes for the tabletId and 8 bytes for 
the sequence long. The
+   * conversions of integer to byte[] and long to byte[] is similar to what 
DataOutputStream does
+   * for writeInt() and writeLong()
*/
   private byte[] formatRow(int tabletId, long seq) {
 byte eventNum = getEventByte();
@@ -283,11 +289,14 @@ public class LogFileKey implements 
WritableComparable {
 row[10] = (byte) ((seq >>> 16) & mask);
 row[11] = (byte) ((seq >>> 8) & mask);
 row[12] = (byte) (seq & mask);
+
+log.trace("Convert {} {} {} to row {}", event, tabletId, seq, 
Arrays.toString(row));
 return row;
   }
 
   /**
-   * Extract the tabletId integer from the byte encoded Row.
+   * Extract the tabletId integer from the byte encoded Row. Similar to what 
DataInputStream does
+   * for readInt()
*/
   private static int getTabletId(byte[] row) {
 int mask = 0xff; // use a mask of int type to convert byte to int without 
sign extension
@@ -335,6 +344,8 @@ public class LogFileKey implements 
WritableComparable {
 if (eventType(logFileKey.event) != rowParts[0]) {
   throw new AssertionError("Event in row differs from column family. Key: 
" + key);
 }
+log.trace("From row {} get {} {} {}", Arrays.toString(rowParts), 
logFileKey.event,
+logFileKey.tabletId, logFileKey.seq);
 
 // handle special cases of what is stored in the qualifier
 switch (logFileKey.event) {
diff --git 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/log/LogFileKeyTest.java
 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/log/LogFileKeyTest.java
index 72cc339..0f04aca 100644
--- 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/log/LogFileKeyTest.java
+++ 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/log/LogFileKeyTest.java
@@ -20,12 +20,17 @@ package org.apache.accumulo.tserver.log;
 
 import static org.junit.Assert.assertEquals;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.TableId;
+import org.apache.accumulo.core.dataImpl.KeyExtent;
 import org.apache.accumulo.tserver.logger.LogEvents;
 import org.apache.accumulo.tserver.logger.LogFileKey;
+import org.apache.hadoop.io.Text;
 import org.junit.Test;
 
 public class LogFileKeyTest {
@@ -98,4 +103,48 @@ public class LogFileKeyTest {
 }
 
   }
+
+  private void testToFromKey(int tabletId, long seq) throws IOException {
+var logFileKey = nk(LogEvents.DEFINE_TABLET, tabletId, seq);
+logFileKey.tablet = new KeyExtent(TableId.of("5"), new Text("b"), null);
+Key k = logFileKey.toKey();
+
+var converted = LogFileKey.fromKey(k);
+assertEquals("Failed 

[accumulo] branch main updated: Fix row encoding/decoding in LogFileKey (#2176)

2021-06-23 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new b8262a4  Fix row encoding/decoding in LogFileKey (#2176)
b8262a4 is described below

commit b8262a424db92729c89d6870ba5973386b9e3ea1
Author: Christopher Tubbs 
AuthorDate: Wed Jun 23 08:46:15 2021 -0400

Fix row encoding/decoding in LogFileKey (#2176)

Fix bitwise operations to encode and decode the tabletId and sequence
number to/from a row

This fixes #2173
---
 .../apache/accumulo/tserver/logger/LogFileKey.java | 54 +-
 1 file changed, 31 insertions(+), 23 deletions(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogFileKey.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogFileKey.java
index bf08ca4..cf5dc21 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogFileKey.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/logger/LogFileKey.java
@@ -245,8 +245,8 @@ public class LogFileKey implements 
WritableComparable {
* byte in the row.
*/
   private byte getEventByte() {
-int evenTypeInteger = eventType(event);
-return (byte) (evenTypeInteger & 0xff);
+int eventTypeInteger = eventType(event);
+return (byte) (eventTypeInteger & 0xff);
   }
 
   /**
@@ -269,19 +269,20 @@ public class LogFileKey implements 
WritableComparable {
 // encode the signed integer so negatives will sort properly for tabletId
 int encodedTabletId = tabletId ^ 0x8000;
 
+int mask = 0xff; // use a mask of int type to truncate the selected 8 bits
 row[0] = eventNum;
-row[1] = (byte) ((encodedTabletId >>> 24) & 0xff);
-row[2] = (byte) ((encodedTabletId >>> 16) & 0xff);
-row[3] = (byte) ((encodedTabletId >>> 8) & 0xff);
-row[4] = (byte) (encodedTabletId & 0xff);
-row[5] = (byte) (seq >>> 56);
-row[6] = (byte) (seq >>> 48);
-row[7] = (byte) (seq >>> 40);
-row[8] = (byte) (seq >>> 32);
-row[9] = (byte) (seq >>> 24);
-row[10] = (byte) (seq >>> 16);
-row[11] = (byte) (seq >>> 8);
-row[12] = (byte) (seq); // >>> 0
+row[1] = (byte) ((encodedTabletId >>> 24) & mask);
+row[2] = (byte) ((encodedTabletId >>> 16) & mask);
+row[3] = (byte) ((encodedTabletId >>> 8) & mask);
+row[4] = (byte) (encodedTabletId & mask);
+row[5] = (byte) ((seq >>> 56) & mask);
+row[6] = (byte) ((seq >>> 48) & mask);
+row[7] = (byte) ((seq >>> 40) & mask);
+row[8] = (byte) ((seq >>> 32) & mask);
+row[9] = (byte) ((seq >>> 24) & mask);
+row[10] = (byte) ((seq >>> 16) & mask);
+row[11] = (byte) ((seq >>> 8) & mask);
+row[12] = (byte) (seq & mask);
 return row;
   }
 
@@ -289,7 +290,13 @@ public class LogFileKey implements 
WritableComparable {
* Extract the tabletId integer from the byte encoded Row.
*/
   private static int getTabletId(byte[] row) {
-int encoded = ((row[1] << 24) + (row[2] << 16) + (row[3] << 8) + row[4]);
+int mask = 0xff; // use a mask of int type to convert byte to int without 
sign extension
+// @formatter:off
+int encoded = (row[1] & mask) << 24 |
+  (row[2] & mask) << 16 |
+  (row[3] & mask) <<  8 |
+  (row[4] & mask);
+// @formatter:on
 return encoded ^ 0x8000;
   }
 
@@ -297,15 +304,16 @@ public class LogFileKey implements 
WritableComparable {
* Extract the sequence long from the byte encoded Row.
*/
   private static long getSequence(byte[] row) {
+long mask = 0xff; // use a mask of long type to convert byte to long 
without sign extension
 // @formatter:off
-return (((long) row[5] << 56) +
-((long) (row[6] & 255) << 48) +
-((long) (row[7] & 255) << 40) +
-((long) (row[8] & 255) << 32) +
-((long) (row[9] & 255) << 24) +
-((row[10] & 255) << 16) +
-((row[11] & 255) << 8) +
-((row[12] & 255)));
+return (row[5]  & mask) << 56 |
+   (row[6]  & mask) << 48 |
+   (row[7]  & mask) << 40 |
+   (row[8]  & mask) << 32 |
+   (row[9]  & mask) << 24 |
+   (row[10] & mask) << 16 |
+   (row[11] & mask) <<  8 |
+   (row[12] & mask);
 // @formatter:on
   }
 


[accumulo] branch main updated: Make sorted recovery write to RFiles (#2117)

2021-06-21 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 3e765b1  Make sorted recovery write to RFiles (#2117)
3e765b1 is described below

commit 3e765b1f3b487092206cee036097820c37b7907e
Author: Mike Miller 
AuthorDate: Mon Jun 21 09:53:33 2021 -0400

Make sorted recovery write to RFiles (#2117)

* Change LogSorter and SortedLogRecovery to write/read RFile instead of 
MapFile
* Rewrite LogSorter writeBuffer method and make static to test
* Create toKey() and fromKey() methods in LogFileKey for converting WAL keys
* Create toValue() and FromValue() methods in LogFileValue for converting 
WAL values
* Byte encode the rows of the Key to sort WAL events properly
* Make RecoveryLogsIterator convert Key Value pairs on next()

Co-authored-by: Keith Turner 
Co-authored-by: Christopher Tubbs 
---
 .../org/apache/accumulo/tserver/TabletServer.java  |   6 +-
 .../org/apache/accumulo/tserver/log/LogSorter.java |  64 +---
 .../accumulo/tserver/log/RecoveryLogReader.java|   2 +-
 .../accumulo/tserver/log/RecoveryLogsIterator.java | 124 +++
 .../accumulo/tserver/log/SortedLogRecovery.java|  63 
 .../accumulo/tserver/log/TabletServerLogger.java   |   9 +-
 .../apache/accumulo/tserver/logger/LogFileKey.java | 167 +
 .../accumulo/tserver/logger/LogFileValue.java  |  28 
 .../tserver/log/SortedLogRecoveryTest.java |  79 +++---
 .../tserver/log/TestUpgradePathForWALogs.java  |   3 +
 10 files changed, 436 insertions(+), 109 deletions(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
index 6887f4a..2ab89fa 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
@@ -1133,7 +1133,7 @@ public class TabletServer extends AbstractServer {
 
   public void recover(VolumeManager fs, KeyExtent extent, List 
logEntries,
   Set tabletFiles, MutationReceiver mutationReceiver) throws 
IOException {
-List recoveryLogs = new ArrayList<>();
+List recoveryDirs = new ArrayList<>();
 List sorted = new ArrayList<>(logEntries);
 sorted.sort((e1, e2) -> (int) (e1.timestamp - e2.timestamp));
 for (LogEntry entry : sorted) {
@@ -1148,9 +1148,9 @@ public class TabletServer extends AbstractServer {
 throw new IOException(
 "Unable to find recovery files for extent " + extent + " logEntry: 
" + entry);
   }
-  recoveryLogs.add(recovery);
+  recoveryDirs.add(recovery);
 }
-logger.recover(fs, extent, recoveryLogs, tabletFiles, mutationReceiver);
+logger.recover(getContext(), extent, recoveryDirs, tabletFiles, 
mutationReceiver);
   }
 
   public int createLogId() {
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java
index 98fe935..293ff82 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java
@@ -23,16 +23,20 @@ import java.io.EOFException;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.TreeMap;
 import java.util.concurrent.ThreadPoolExecutor;
 
 import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.conf.AccumuloConfiguration;
+import org.apache.accumulo.core.conf.DefaultConfiguration;
 import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Mutation;
+import org.apache.accumulo.core.file.FileOperations;
 import org.apache.accumulo.core.master.thrift.RecoveryStatus;
 import org.apache.accumulo.core.util.Pair;
 import org.apache.accumulo.core.util.threads.ThreadPools;
@@ -47,11 +51,12 @@ import org.apache.accumulo.tserver.logger.LogFileValue;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.io.MapFile;
 import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.annotations.VisibleForTesting;
+
 public class LogSorter {
 
   private static final Logger log = LoggerFactory.getLogger(LogSorter.class);
@@ -141,7 +146,7 @@ public class LogSorter {
 // Creating a 'finished' marker will cause recovery to proceed

[accumulo] branch main updated: Add test and fix for bug in KeyBuilder (#2170)

2021-06-17 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 1fecdd3  Add test and fix for bug in KeyBuilder (#2170)
1fecdd3 is described below

commit 1fecdd378f2bc15955baa371ac9bb706bcc94dfc
Author: Mike Miller 
AuthorDate: Thu Jun 17 09:40:49 2021 -0400

Add test and fix for bug in KeyBuilder (#2170)

* Replace error prone CharsetEncoder with toString() and getBytes()
---
 .../main/java/org/apache/accumulo/core/data/KeyBuilder.java | 13 +
 .../java/org/apache/accumulo/core/data/KeyBuilderTest.java  | 10 ++
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/core/src/main/java/org/apache/accumulo/core/data/KeyBuilder.java 
b/core/src/main/java/org/apache/accumulo/core/data/KeyBuilder.java
index 100a8cc..1d625b8 100644
--- a/core/src/main/java/org/apache/accumulo/core/data/KeyBuilder.java
+++ b/core/src/main/java/org/apache/accumulo/core/data/KeyBuilder.java
@@ -20,11 +20,6 @@ package org.apache.accumulo.core.data;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
-import java.nio.CharBuffer;
-import java.nio.charset.CharacterCodingException;
-import java.nio.charset.CharsetEncoder;
-import java.nio.charset.CodingErrorAction;
-
 import org.apache.accumulo.core.security.ColumnVisibility;
 import org.apache.hadoop.io.Text;
 
@@ -326,13 +321,7 @@ public class KeyBuilder {
 }
 
 private byte[] encodeCharSequence(CharSequence chars) {
-  CharsetEncoder encoder = 
UTF_8.newEncoder().onMalformedInput(CodingErrorAction.REPORT)
-  .onUnmappableCharacter(CodingErrorAction.REPORT);
-  try {
-return encoder.encode(CharBuffer.wrap(chars)).array();
-  } catch (CharacterCodingException ex) {
-throw new RuntimeException("KeyBuilder supports only CharSequences 
encoded in UTF-8", ex);
-  }
+  return chars.toString().getBytes(UTF_8);
 }
 
 @Override
diff --git 
a/core/src/test/java/org/apache/accumulo/core/data/KeyBuilderTest.java 
b/core/src/test/java/org/apache/accumulo/core/data/KeyBuilderTest.java
index 8f795c5..70f02e5 100644
--- a/core/src/test/java/org/apache/accumulo/core/data/KeyBuilderTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/data/KeyBuilderTest.java
@@ -305,4 +305,14 @@ public class KeyBuilderTest {
 keyExpected.setDeleted(false);
 assertEquals(keyExpected, keyBuilt);
   }
+
+  /**
+   * Tests bug where a String of 10 chars or longer was being encoded 
incorrectly.
+   */
+  @Test
+  public void test10CharactersBug() {
+Key keyBuilt1 = Key.builder().row(rowText).family("1234567890").build();
+Key keyBuilt2 = Key.builder().row(rowText).family(new 
Text("1234567890")).build();
+assertEquals(keyBuilt1, keyBuilt2);
+  }
 }


[accumulo] branch main updated: Fix crypto in SplitLarge utility (#2145)

2021-06-04 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 512325e  Fix crypto in SplitLarge utility (#2145)
512325e is described below

commit 512325e1ab14351df7722ca1956b14c42fff90d7
Author: Mike Miller 
AuthorDate: Fri Jun 4 13:31:01 2021 -0400

Fix crypto in SplitLarge utility (#2145)

* The option that was added in 2.0 for the encryption only included the 
name of the service. You also need a way to pass in other options for it to 
work. This change just simplifies that by removing the option altogether and 
reading the config from classpath, similar to other utilities.
---
 .../org/apache/accumulo/core/file/rfile/SplitLarge.java| 14 +-
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java 
b/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
index f0ca7da..580c68d 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
@@ -21,10 +21,8 @@ package org.apache.accumulo.core.file.rfile;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.accumulo.core.cli.Help;
+import org.apache.accumulo.core.cli.ConfigOpts;
 import org.apache.accumulo.core.conf.AccumuloConfiguration;
-import org.apache.accumulo.core.conf.ConfigurationTypeHelper;
-import org.apache.accumulo.core.conf.DefaultConfiguration;
 import org.apache.accumulo.core.conf.Property;
 import org.apache.accumulo.core.crypto.CryptoServiceFactory;
 import org.apache.accumulo.core.data.Key;
@@ -46,12 +44,10 @@ import com.beust.jcommander.Parameter;
  */
 public class SplitLarge {
 
-  static class Opts extends Help {
+  static class Opts extends ConfigOpts {
 @Parameter(names = "-m",
 description = "the maximum size of the key/value pair to shunt to the 
small file")
 long maxSize = 10 * 1024 * 1024;
-@Parameter(names = "-crypto", description = "the class to perform 
encryption/decryption")
-String cryptoClass = Property.INSTANCE_CRYPTO_SERVICE.getDefaultValue();
 @Parameter(description = " {  ... }")
 List files = new ArrayList<>();
   }
@@ -63,9 +59,9 @@ public class SplitLarge {
 opts.parseArgs(SplitLarge.class.getName(), args);
 
 for (String file : opts.files) {
-  AccumuloConfiguration aconf = DefaultConfiguration.getInstance();
-  CryptoService cryptoService = 
ConfigurationTypeHelper.getClassInstance(null, opts.cryptoClass,
-  CryptoService.class, CryptoServiceFactory.newDefaultInstance());
+  AccumuloConfiguration aconf = opts.getSiteConfiguration();
+  CryptoService cryptoService =
+  CryptoServiceFactory.newInstance(aconf, 
CryptoServiceFactory.ClassloaderType.JAVA);
   Path path = new Path(file);
   CachableBuilder cb =
   new CachableBuilder().fsPath(fs, 
path).conf(conf).cryptoService(cryptoService);


[accumulo] branch main updated (af2d2d6 -> b15fbf3)

2021-05-21 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from af2d2d6  Improve LocalityGroupUtil.java (#2112)
 add b15fbf3  Move logic in LogSorter outside sort method (#2113)

No new revisions were added by this update.

Summary of changes:
 .../org/apache/accumulo/tserver/log/LogSorter.java | 119 ++---
 .../tserver/log/TestUpgradePathForWALogs.java  |  97 +
 .../tserver/src/test/resources/walog-from-20.walog | Bin 0 -> 982 bytes
 3 files changed, 108 insertions(+), 108 deletions(-)
 create mode 100755 server/tserver/src/test/resources/walog-from-20.walog


[accumulo-website] branch main updated: Update people.md (#283)

2021-05-20 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 8f0de12  Update people.md (#283)
8f0de12 is described below

commit 8f0de12ec2f3190c0fbedcb0ff64aa41884f559a
Author: nicolasalarconrapela 
AuthorDate: Thu May 20 17:20:57 2021 +0300

Update people.md (#283)
---
 pages/people.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pages/people.md b/pages/people.md
index 7c0cb80..80e142c 100644
--- a/pages/people.md
+++ b/pages/people.md
@@ -147,6 +147,7 @@ GitHub also has a [contributor list][github-contributors] 
based on commits.
 | Mike Fagan  | [Arcus Research][ARCUS]
   | [MT][MT]  |
 | Morgan Haskel   |
   |   |
 | Nguessan Kouame |
   |   |
+| Nicolás Alarcón R.  |
   | [CEST][CEST]  |
 | Oren Falkowitz  | [sqrrl][SQRRL] 
   | [ET][ET]  |
 | Phil Eberhardt  | [sqrrl][SQRRL] 
   | [ET][ET]  |
 | Philip Young|
   |   |


[accumulo] branch main updated: Fix property JSON strings (#2109)

2021-05-14 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 763cf4f  Fix property JSON strings (#2109)
763cf4f is described below

commit 763cf4fae5d93aff96a06458f98dfe7296b5b882
Author: Mike Miller 
AuthorDate: Fri May 14 14:10:01 2021 -0400

Fix property JSON strings (#2109)

* Apply replaceAll for quotes on all parts of the default JSON values in
Property.java. Closes #2105
---
 .../main/java/org/apache/accumulo/core/conf/Property.java   | 13 ++---
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/core/src/main/java/org/apache/accumulo/core/conf/Property.java 
b/core/src/main/java/org/apache/accumulo/core/conf/Property.java
index 30b9ce1..1b14a8c 100644
--- a/core/src/main/java/org/apache/accumulo/core/conf/Property.java
+++ b/core/src/main/java/org/apache/accumulo/core/conf/Property.java
@@ -442,8 +442,8 @@ public enum Property {
   "The maximum number of files a compaction will open"),
   TSERV_COMPACTION_SERVICE_ROOT_EXECUTORS(
   "tserver.compaction.major.service.root.planner.opts.executors",
-  "[{'name':'small','maxSize':'32M','numThreads':1},"
-  + "{'name':'huge','numThreads':1}]".replaceAll("'", "\""),
+  
("[{'name':'small','maxSize':'32M','numThreads':1},{'name':'huge','numThreads':1}]")
+  .replaceAll("'", "\""),
   PropertyType.STRING,
   "See {% jlink -f 
org.apache.accumulo.core.spi.compaction.DefaultCompactionPlanner %} "),
   
TSERV_COMPACTION_SERVICE_META_PLANNER("tserver.compaction.major.service.meta.planner",
@@ -458,8 +458,8 @@ public enum Property {
   "The maximum number of files a compaction will open"),
   TSERV_COMPACTION_SERVICE_META_EXECUTORS(
   "tserver.compaction.major.service.meta.planner.opts.executors",
-  "[{'name':'small','maxSize':'32M','numThreads':2},"
-  + "{'name':'huge','numThreads':2}]".replaceAll("'", "\""),
+  
("[{'name':'small','maxSize':'32M','numThreads':2},{'name':'huge','numThreads':2}]")
+  .replaceAll("'", "\""),
   PropertyType.STRING,
   "See {% jlink -f 
org.apache.accumulo.core.spi.compaction.DefaultCompactionPlanner %} "),
   
TSERV_COMPACTION_SERVICE_DEFAULT_PLANNER("tserver.compaction.major.service.default.planner",
@@ -474,9 +474,8 @@ public enum Property {
   "The maximum number of files a compaction will open"),
   TSERV_COMPACTION_SERVICE_DEFAULT_EXECUTORS(
   "tserver.compaction.major.service.default.planner.opts.executors",
-  "[{'name':'small','maxSize':'32M','numThreads':2},"
-  + "{'name':'medium','maxSize':'128M','numThreads':2},"
-  + "{'name':'large','numThreads':2}]".replaceAll("'", "\""),
+  
("[{'name':'small','maxSize':'32M','numThreads':2},{'name':'medium','maxSize':'128M','numThreads':2},{'name':'large','numThreads':2}]")
+  .replaceAll("'", "\""),
   PropertyType.STRING,
   "See {% jlink -f 
org.apache.accumulo.core.spi.compaction.DefaultCompactionPlanner %} "),
   @Deprecated(since = "2.1.0", forRemoval = true)


[accumulo] branch main updated (a28b27a -> 3c039c7)

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

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


from a28b27a  Add extent to metadata update failure logs (#2086)
 add 3c039c7  Add option to disable encryption to AESCryptoService (#2064)

No new revisions were added by this update.

Summary of changes:
 .../accumulo/core/spi/crypto/AESCryptoService.java | 25 ++---
 .../apache/accumulo/core/crypto/CryptoTest.java| 41 ++
 .../apache/accumulo/core/file/rfile/RFileTest.java |  5 +++
 3 files changed, 66 insertions(+), 5 deletions(-)


[accumulo] branch main updated: Fix #2070 address ShellServerIT test failures (#2087)

2021-05-10 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new a0af230  Fix #2070 address ShellServerIT test failures (#2087)
a0af230 is described below

commit a0af230ab65039ba4eda5e2d6ee415f89f08914c
Author: EdColeman 
AuthorDate: Mon May 10 12:46:29 2021 -0400

Fix #2070 address ShellServerIT test failures (#2087)

- address simple checkstyle errors
- use unique table and namespace names
- Add test for constraints jar built with 2_1
---
 .../org/apache/accumulo/test/ShellServerIT.java| 465 +++--
 test/src/main/resources/FooConstraint_2_1.jar  | Bin 0 -> 2018 bytes
 2 files changed, 252 insertions(+), 213 deletions(-)

diff --git a/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java 
b/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
index bd166af..081e984 100644
--- a/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
@@ -375,7 +375,8 @@ public class ShellServerIT extends SharedMiniClusterBase {
   @SuppressFBWarnings(value = "PATH_TRAVERSAL_IN", justification = "path 
provided by test")
   @Test
   public void exporttableImporttable() throws Exception {
-final String table = name.getMethodName(), table2 = table + "2";
+final String table = getUniqueNames(1)[0];
+final String table2 = table + "2";
 
 // exporttable / importtable
 ts.exec("createtable " + table + " -evc", true);
@@ -452,7 +453,7 @@ public class ShellServerIT extends SharedMiniClusterBase {
 
   @Test
   public void setscaniterDeletescaniter() throws Exception {
-final String table = name.getMethodName();
+final String table = getUniqueNames(1)[0];
 
 // setscaniter, deletescaniter
 ts.exec("createtable " + table);
@@ -482,7 +483,7 @@ public class ShellServerIT extends SharedMiniClusterBase {
 
   @Test
   public void egrep() throws Exception {
-final String table = name.getMethodName();
+final String table = getUniqueNames(1)[0];
 
 // egrep
 ts.exec("createtable " + table);
@@ -494,7 +495,7 @@ public class ShellServerIT extends SharedMiniClusterBase {
 
   @Test
   public void du() throws Exception {
-final String table = name.getMethodName();
+final String table = getUniqueNames(1)[0];
 
 // create and delete a table so we get out of a table context in the shell
 ts.exec("notable", true);
@@ -513,7 +514,7 @@ public class ShellServerIT extends SharedMiniClusterBase {
 String o = ts.output.get();
 // for some reason, there's a bit of fluctuation
 assertTrue("Output did not match regex: '" + o + "'",
-o.matches(".*[1-9][0-9][0-9]\\s\\[" + table + "\\]\\n"));
+o.matches(".*[1-9][0-9][0-9]\\s\\[" + table + "]\\n"));
 ts.exec("deletetable -f " + table);
   }
 
@@ -535,7 +536,7 @@ public class ShellServerIT extends SharedMiniClusterBase {
 
   @Test
   public void user() throws Exception {
-final String table = name.getMethodName();
+final String table = getUniqueNames(1)[0];
 final boolean kerberosEnabled = getToken() instanceof KerberosToken;
 
 // createuser, deleteuser, user, users, droptable, grant, revoke
@@ -577,7 +578,7 @@ public class ShellServerIT extends SharedMiniClusterBase {
 
   @Test
   public void durability() throws Exception {
-final String table = name.getMethodName();
+final String table = getUniqueNames(1)[0];
 ts.exec("createtable " + table);
 ts.exec("insert -d none a cf cq randomGunkaASDFWEAQRd");
 ts.exec("insert -d foo a cf cq2 2", false, "foo", true);
@@ -587,7 +588,7 @@ public class ShellServerIT extends SharedMiniClusterBase {
 
   @Test
   public void iter() throws Exception {
-final String table = name.getMethodName();
+final String table = getUniqueNames(1)[0];
 
 // setshelliter, listshelliter, deleteshelliter
 ts.exec("createtable " + table);
@@ -637,9 +638,10 @@ public class ShellServerIT extends SharedMiniClusterBase {
   @Test
   public void setIterOptionPrompt() throws Exception {
 try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
-  String tableName = name.getMethodName();
+  final String[] tableNames = getUniqueNames(4);
+  final String tableName0 = tableNames[0];
 
-  ts.exec("createtable " + tableName);
+  ts.exec("createtable " + tableName0);
   ts.input.set("\n\n");
   // Setting a non-optiondescriber with no name should fail
   ts.exec("setiter -scan -class " + COLUMN_FAMILY_COUNTER_ITERATOR + "

[accumulo] branch main updated: Create MockServerContext for use in unit tests (#2083)

2021-05-06 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 6a0a5ee  Create MockServerContext for use in unit tests (#2083)
6a0a5ee is described below

commit 6a0a5ee30788f9f606166b8391b22c23d65071dc
Author: Mike Miller 
AuthorDate: Thu May 6 15:13:54 2021 -0400

Create MockServerContext for use in unit tests (#2083)
---
 .../apache/accumulo/server/MockServerContext.java  | 55 ++
 .../accumulo/server/client/BulkImporterTest.java   | 11 +
 .../server/conf/NamespaceConfigurationTest.java| 10 +---
 .../conf/ServerConfigurationFactoryTest.java   | 16 +--
 .../server/conf/TableConfigurationTest.java| 10 +---
 .../server/conf/ZooConfigurationFactoryTest.java   |  7 +--
 .../master/balancer/TableLoadBalancerTest.java | 10 +---
 .../server/problems/ProblemReportTest.java |  4 +-
 .../security/handler/ZKAuthenticatorTest.java  |  7 ++-
 9 files changed, 72 insertions(+), 58 deletions(-)

diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/MockServerContext.java 
b/server/base/src/test/java/org/apache/accumulo/server/MockServerContext.java
new file mode 100644
index 000..64694e8
--- /dev/null
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/MockServerContext.java
@@ -0,0 +1,55 @@
+/*
+ * 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.server;
+
+import static org.easymock.EasyMock.expect;
+
+import java.util.Properties;
+
+import org.apache.accumulo.core.conf.ConfigurationCopy;
+import org.apache.accumulo.core.conf.DefaultConfiguration;
+import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.crypto.CryptoServiceFactory;
+import org.easymock.EasyMock;
+
+/**
+ * Get a generic mocked ServerContext with junk for testing.
+ */
+public class MockServerContext {
+
+  public static ServerContext get() {
+ServerContext sc = EasyMock.createMock(ServerContext.class);
+ConfigurationCopy conf = new 
ConfigurationCopy(DefaultConfiguration.getInstance());
+conf.set(Property.INSTANCE_VOLUMES, "file:///");
+expect(sc.getConfiguration()).andReturn(conf).anyTimes();
+
expect(sc.getCryptoService()).andReturn(CryptoServiceFactory.newDefaultInstance()).anyTimes();
+expect(sc.getProperties()).andReturn(new Properties()).anyTimes();
+return sc;
+  }
+
+  public static ServerContext getWithZK(String instanceID, String zk, int 
zkTimeout) {
+var sc = get();
+expect(sc.getZooKeeperRoot()).andReturn("/accumulo/" + 
instanceID).anyTimes();
+expect(sc.getInstanceID()).andReturn(instanceID).anyTimes();
+expect(sc.getZooKeepers()).andReturn(zk).anyTimes();
+expect(sc.getZooKeepersSessionTimeOut()).andReturn(zkTimeout).anyTimes();
+return sc;
+  }
+
+}
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/client/BulkImporterTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/client/BulkImporterTest.java
index 566596d..b0d17be 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/client/BulkImporterTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/client/BulkImporterTest.java
@@ -31,9 +31,6 @@ import java.util.TreeSet;
 import org.apache.accumulo.core.clientImpl.ClientContext;
 import org.apache.accumulo.core.clientImpl.TabletLocator;
 import org.apache.accumulo.core.clientImpl.TabletLocator.TabletLocation;
-import org.apache.accumulo.core.conf.ConfigurationCopy;
-import org.apache.accumulo.core.conf.DefaultConfiguration;
-import org.apache.accumulo.core.conf.Property;
 import org.apache.accumulo.core.crypto.CryptoServiceFactory;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Mutation;
@@ -43,6 +40,7 @@ import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.core.dataImpl.KeyExtent;
 import org.apache.accumulo.core.file.FileOperations;
 import org.apache.accumulo.core.file.FileSKVWriter;
+import org.apache.accumulo.server.MockServerContext;
 import org.apach

[accumulo] branch main updated: Fix for Constraint API (#2074)

2021-05-03 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 6094a53  Fix for Constraint API (#2074)
6094a53 is described below

commit 6094a537421f7b2d328c8d1d016a2bf830743d4c
Author: Mike Miller 
AuthorDate: Mon May 3 17:13:04 2021 -0400

Fix for Constraint API (#2074)

* Add method to deprecated API to prevent errors
* Add test to DeprecatedConstraintExtendTest
---
 .../accumulo/core/constraints/Constraint.java  | 11 +++
 .../DeprecatedConstraintExtendTest.java| 38 --
 2 files changed, 47 insertions(+), 2 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/constraints/Constraint.java 
b/core/src/main/java/org/apache/accumulo/core/constraints/Constraint.java
index 3414970..b24d613 100644
--- a/core/src/main/java/org/apache/accumulo/core/constraints/Constraint.java
+++ b/core/src/main/java/org/apache/accumulo/core/constraints/Constraint.java
@@ -84,4 +84,15 @@ public interface Constraint extends 
org.apache.accumulo.core.data.constraints.Co
* @return list of violation codes, or null if none
*/
   List check(Environment env, Mutation mutation);
+
+  /**
+   * Implemented for backwards compatibility.
+   *
+   * @since 2.1.0
+   */
+  @Override
+  default List 
check(org.apache.accumulo.core.data.constraints.Constraint.Environment env,
+  Mutation mutation) {
+return check((Environment) env, mutation);
+  }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/constraints/DeprecatedConstraintExtendTest.java
 
b/core/src/test/java/org/apache/accumulo/core/constraints/DeprecatedConstraintExtendTest.java
index aa7ef99..dac943d 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/constraints/DeprecatedConstraintExtendTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/constraints/DeprecatedConstraintExtendTest.java
@@ -40,13 +40,12 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 @SuppressWarnings("deprecation")
 public class DeprecatedConstraintExtendTest {
 
-  Constraint constraint = new MinKeySizeConstraint();
-
   byte[] min = new byte[1024];
   byte[] oversized = new byte[1048577];
 
   @Test
   public void testMinKeySizeConstraint() {
+Constraint constraint = new MinKeySizeConstraint();
 
 // pass constraints
 Mutation m = new Mutation(min);
@@ -67,6 +66,20 @@ public class DeprecatedConstraintExtendTest {
 constraint.check(null, m));
   }
 
+  @Test
+  public void testFoo() {
+FooConstraint fc = new FooConstraint();
+// pass constraints
+Mutation m = new Mutation("blah");
+m.put("colf", "colq", new Value(new byte[] {}));
+assertEquals(null, fc.check(null, m));
+
+// test fail constraint
+m = new Mutation("foo");
+m.put("colf", "colq", new Value(new byte[] {}));
+assertEquals(Collections.singletonList(Short.valueOf("1")), fc.check(null, 
m));
+  }
+
   /**
* Limit the size of 1mb but also a minimum of 1KB
*/
@@ -94,4 +107,25 @@ public class DeprecatedConstraintExtendTest {
   return violations;
 }
   }
+
+  /**
+   * Test previously defined constraint.
+   */
+  public class FooConstraint implements Constraint {
+public String getViolationDescription(short violationCode) {
+  switch (violationCode) {
+case 1:
+  return "Contains foo";
+  }
+  throw new IllegalArgumentException();
+}
+
+public List check(Constraint.Environment env, Mutation mutation) {
+  if (new String(mutation.getRow()).contains("foo")) {
+return Collections.singletonList(Short.valueOf("1"));
+  }
+  return null;
+}
+  }
+
 }


[accumulo] branch main updated: Fix redundant TableId creation in TableLoadBalancer (#2060)

2021-04-30 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 4213d76  Fix redundant TableId creation in TableLoadBalancer (#2060)
4213d76 is described below

commit 4213d76c2b5fcbeeb4163db04c1fb8b7226cfe22
Author: Mike Miller 
AuthorDate: Fri Apr 30 09:34:51 2021 -0400

Fix redundant TableId creation in TableLoadBalancer (#2060)
---
 .../org/apache/accumulo/core/spi/balancer/TableLoadBalancer.java| 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/spi/balancer/TableLoadBalancer.java
 
b/core/src/main/java/org/apache/accumulo/core/spi/balancer/TableLoadBalancer.java
index f046984..02aef99 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/spi/balancer/TableLoadBalancer.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/spi/balancer/TableLoadBalancer.java
@@ -108,10 +108,8 @@ public class TableLoadBalancer implements TabletBalancer {
   public void getAssignments(AssignmentParameters params) {
 // separate the unassigned into tables
 Map> groupedUnassigned = new 
HashMap<>();
-params.unassignedTablets()
-.forEach((tid, lastTserver) -> groupedUnassigned
-.computeIfAbsent(TableId.of(tid.getTable().canonical()), k -> new 
HashMap<>())
-.put(tid, lastTserver));
+params.unassignedTablets().forEach((tid, lastTserver) -> groupedUnassigned
+.computeIfAbsent(tid.getTable(), k -> new HashMap<>()).put(tid, 
lastTserver));
 for (Entry> e : 
groupedUnassigned.entrySet()) {
   Map newAssignments = new HashMap<>();
   getBalancerForTable(e.getKey()).getAssignments(


[accumulo-website] branch asf-site updated (c611f61 -> a0db284)

2021-04-29 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/accumulo-website.git.


from c611f61  Automatic Site Publish by Buildbot
 add 9c2604e  Automatic Site Publish by Buildbot
 add a0db284  Automatic Site Publish by Buildbot

No new revisions were added by this update.

Summary of changes:
 output/feed.xml | 4 ++--
 output/how-to-contribute/index.html | 2 +-
 output/people/index.html| 5 +
 3 files changed, 8 insertions(+), 3 deletions(-)


[accumulo-website] branch main updated: Add build command to pages/how-to-contribute.md (#276)

2021-04-29 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new b670b9a  Add build command to pages/how-to-contribute.md (#276)
b670b9a is described below

commit b670b9af0b054629db930c340fa747814e5829aa
Author: Mike Miller 
AuthorDate: Thu Apr 29 09:13:33 2021 -0400

Add build command to pages/how-to-contribute.md (#276)
---
 pages/how-to-contribute.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/how-to-contribute.md b/pages/how-to-contribute.md
index 7537bae..7857232 100644
--- a/pages/how-to-contribute.md
+++ b/pages/how-to-contribute.md
@@ -40,7 +40,7 @@ Any questions/ideas don't hesitate to [contact us][contact].
 git checkout -b accumulo-4321
 ```
 1. Do work and commit to your branch. You can reference [this link][messages] 
for a guide on how to write good commit log messages.
-1. Ensure you works satisfies the guidelines laid out in the `CONTRIBUTING.md` 
file.
+1. Ensure your branch builds cleanly using the command: ```mvn clean verify 
-DskipITs```
 1. If needed, squash to the minimum number of commits. For help on squashing 
commits, see this [tutorial][squash-tutorial] or [StackOverflow 
answer][squash-stack].
 1. [Push] your branch to your fork.
 ```


[accumulo] branch main updated: Migrate Constraints to API (#1985)

2021-04-28 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new d3b41fc  Migrate Constraints to API (#1985)
d3b41fc is described below

commit d3b41fc0ac5da70aab86e6fb95852353b9a167aa
Author: Mike Miller 
AuthorDate: Wed Apr 28 14:25:18 2021 -0400

Migrate Constraints to API (#1985)

* Create new Constraint API and equivalent classes under the
o.a.a.core.data.constraints package to become public API
* Deprecated Constraint and classes under o.a.a.core.constraints package
and make the old classes extend the new API
* Migrate tests to go along with API changes
* Create DeprecatedConstraintExtendTest to test user extending old API
* Add DefaultKeySizeConstraintTest to reuseForks exceptions
---
 core/pom.xml   |  2 +
 .../core/clientImpl/NamespaceOperationsImpl.java   |  2 +-
 .../core/clientImpl/TableOperationsImpl.java   |  2 +-
 .../apache/accumulo/core/conf/IterConfigUtil.java  |  2 +-
 .../org/apache/accumulo/core/conf/Property.java|  2 +-
 .../accumulo/core/constraints/Constraint.java  | 26 ++
 .../core/constraints/DefaultKeySizeConstraint.java | 13 ++-
 .../core/constraints/NoDeleteConstraint.java   | 12 ++-
 .../core/constraints/VisibilityConstraint.java | 13 ++-
 .../core/{ => data}/constraints/Constraint.java| 19 +++--
 .../constraints/DefaultKeySizeConstraint.java  |  4 +-
 .../{ => data}/constraints/NoDeleteConstraint.java |  4 +-
 .../constraints/VisibilityConstraint.java  |  4 +-
 .../constraints/DefaultKeySizeConstraintTest.java  |  1 +
 .../DeprecatedConstraintExtendTest.java| 97 ++
 .../core/constraints/NoDeleteConstraintTest.java   |  1 +
 .../VisibilityConstraintTest.java  | 11 +--
 .../constraints/DefaultKeySizeConstraintTest.java  |  7 +-
 .../constraints/NoDeleteConstraintTest.java|  2 +-
 .../constraints}/VisibilityConstraintTest.java |  7 +-
 .../server/constraints/MetadataConstraints.java|  2 +-
 .../server/constraints/SystemEnvironment.java  |  2 +-
 .../server/metadata/RootTabletMutatorImpl.java | 15 +++-
 .../accumulo/tserver/TservConstraintEnv.java   | 21 +++--
 .../tserver/constraints/ConstraintChecker.java | 20 -
 .../tserver/constraints/SystemConstraint.java  |  2 +-
 .../constraints/UnsatisfiableConstraint.java   |  2 +-
 .../tserver/constraints/ConstraintCheckerTest.java | 34 
 .../accumulo/shell/commands/ConstraintCommand.java |  2 +-
 .../shell/commands/CreateTableCommand.java |  2 +-
 .../apache/accumulo/test/TableOperationsIT.java|  2 +-
 .../test/constraints/AlphaNumKeyConstraint.java|  2 +-
 .../accumulo/test/constraints/MaxMutationSize.java |  2 +-
 .../test/constraints/NumericValueConstraint.java   |  2 +-
 .../accumulo/test/functional/SlowConstraint.java   |  2 +-
 35 files changed, 252 insertions(+), 91 deletions(-)

diff --git a/core/pom.xml b/core/pom.xml
index 36d9dc6..e546886 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -206,6 +206,7 @@
   **/IdleRatioScanPrioritizerTest.java
   **/TestCfCqSlice.java
   **/TestCfCqSliceSeekingFilter.java
+  
**/core/constraints/DefaultKeySizeConstraintTest.java
 
   
   
@@ -223,6 +224,7 @@
   **/IdleRatioScanPrioritizerTest.java
   **/TestCfCqSlice.java
   **/TestCfCqSliceSeekingFilter.java
+  
**/core/constraints/DefaultKeySizeConstraintTest.java
 
   
 
diff --git 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/NamespaceOperationsImpl.java
 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/NamespaceOperationsImpl.java
index 126b977..979d891 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/NamespaceOperationsImpl.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/NamespaceOperationsImpl.java
@@ -49,8 +49,8 @@ import org.apache.accumulo.core.client.admin.TableOperations;
 import org.apache.accumulo.core.clientImpl.thrift.SecurityErrorCode;
 import org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException;
 import 
org.apache.accumulo.core.clientImpl.thrift.ThriftTableOperationException;
-import org.apache.accumulo.core.constraints.Constraint;
 import org.apache.accumulo.core.data.NamespaceId;
+import org.apache.accumulo.core.data.constraints.Constraint;
 import org.apache.accumulo.core.iterators.IteratorUtil.IteratorScope;
 import org.apache.accumulo.core.iterators.SortedKeyValueIterator;
 import org.apache.accumulo.core.manager.thrift.FateOperation;
diff --git 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java
 
b/core/src/main/java/org/

[accumulo] branch main updated: Made private fields in Violations.CVSKey final (#2036)

2021-04-27 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 9afab2c  Made private fields in Violations.CVSKey final (#2036)
9afab2c is described below

commit 9afab2c1b931d100ed6bad5cfe028c28da944427
Author: alimustafashah 
AuthorDate: Tue Apr 27 18:08:12 2021 +0500

Made private fields in Violations.CVSKey final (#2036)

* Closes #2033
---
 .../main/java/org/apache/accumulo/core/constraints/Violations.java| 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/constraints/Violations.java 
b/core/src/main/java/org/apache/accumulo/core/constraints/Violations.java
index 4e8dc5b..821de1e 100644
--- a/core/src/main/java/org/apache/accumulo/core/constraints/Violations.java
+++ b/core/src/main/java/org/apache/accumulo/core/constraints/Violations.java
@@ -34,8 +34,8 @@ import 
org.apache.accumulo.core.data.ConstraintViolationSummary;
 public class Violations {
 
   private static class CVSKey {
-private String className;
-private short vcode;
+final private String className;
+final private short vcode;
 
 CVSKey(ConstraintViolationSummary cvs) {
   this.className = cvs.constrainClass;


[accumulo-testing] branch main updated: Update pom to Java 11 (#138)

2021-04-14 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 64c5e17  Update pom to Java 11 (#138)
64c5e17 is described below

commit 64c5e17589258dcfd2e66b041abc565b4c1afce4
Author: Mike Miller 
AuthorDate: Wed Apr 14 07:53:38 2021 -0400

Update pom to Java 11 (#138)

* Update pom to Java 11
* Remove obsoleted profile
* Use java 11 for m2e profile as well

Co-authored-by: Christopher Tubbs 
---
 pom.xml | 21 +
 1 file changed, 5 insertions(+), 16 deletions(-)

diff --git a/pom.xml b/pom.xml
index 54064a1..2ca8759 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
   
 org.apache
 apache
-21
+23
   
   org.apache.accumulo
   accumulo-testing
@@ -31,8 +31,9 @@
 2.1.0-SNAPSHOT
 
${project.basedir}/contrib/Eclipse-Accumulo-Codestyle.xml
 3.2.0
-1.8
-1.8
+11
+11
+11
 1.7.25
 3.1.7
 3.4.14
@@ -158,7 +159,7 @@
 
   net.revelc.code.formatter
   formatter-maven-plugin
-  2.10.0
+  2.14.0
   
 ${eclipseFormatterStyle}
 ${maven.compiler.source}
@@ -388,9 +389,6 @@
   m2e.version
 
   
-  
-8
-  
   
 
   
@@ -423,14 +421,5 @@
 
   
 
-
-  jdk-release-flag
-  
-[9,)
-  
-  
-8
-  
-
   
 


[accumulo] branch main updated (7957d67 -> 183387a)

2021-04-09 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 7957d67  Set reuseForks to true for unit tests, false for ITs (#2007)
 add 183387a  Drop duplicate constructor in ServiceLock (#2008)

No new revisions were added by this update.

Summary of changes:
 .../apache/accumulo/fate/zookeeper/ServiceLock.java   | 19 +--
 .../apache/accumulo/gc/SimpleGarbageCollector.java|  2 +-
 .../java/org/apache/accumulo/manager/Manager.java |  4 ++--
 .../java/org/apache/accumulo/monitor/Monitor.java |  2 +-
 .../org/apache/accumulo/tserver/TabletServer.java |  3 +--
 .../accumulo/test/fate/zookeeper/ServiceLockIT.java   | 13 -
 .../accumulo/test/functional/SplitRecoveryIT.java |  2 +-
 .../accumulo/test/functional/ZombieTServer.java   |  3 +--
 8 files changed, 12 insertions(+), 36 deletions(-)


[accumulo-examples] branch main updated: Add missing job information for MR. Fixes #43 (#73)

2021-04-02 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new aed79ea  Add missing job information for MR. Fixes #43 (#73)
aed79ea is described below

commit aed79ea9edb739c90805202314fadb3455a644e2
Author: Mike Miller 
AuthorDate: Fri Apr 2 08:07:21 2021 -0400

Add missing job information for MR. Fixes #43 (#73)

* CharacterHistogram was missing information in the map reduce job so
set the data in the job using legacy methods. This fixes the filedata
example
---
 .../accumulo/examples/filedata/CharacterHistogram.java  | 13 -
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/src/main/java/org/apache/accumulo/examples/filedata/CharacterHistogram.java 
b/src/main/java/org/apache/accumulo/examples/filedata/CharacterHistogram.java
index 0a8aea5..5928786 100644
--- 
a/src/main/java/org/apache/accumulo/examples/filedata/CharacterHistogram.java
+++ 
b/src/main/java/org/apache/accumulo/examples/filedata/CharacterHistogram.java
@@ -21,7 +21,10 @@ import java.io.InputStream;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map.Entry;
+import java.util.Properties;
 
+import org.apache.accumulo.core.client.Accumulo;
+import org.apache.accumulo.core.client.security.tokens.PasswordToken;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Mutation;
 import org.apache.accumulo.core.data.Value;
@@ -93,9 +96,17 @@ public class CharacterHistogram {
 
 job.setNumReduceTasks(0);
 
+Properties props = opts.getClientProperties();
+ChunkInputFormat.setZooKeeperInstance(job, 
props.getProperty("instance.name"),
+props.getProperty("instance.zookeepers"));
+PasswordToken token = new PasswordToken(props.getProperty("auth.token"));
+ChunkInputFormat.setConnectorInfo(job, 
props.getProperty("auth.principal"), token);
+ChunkInputFormat.setInputTableName(job, opts.tableName);
+ChunkInputFormat.setScanAuthorizations(job, opts.auths);
+
 job.setOutputFormatClass(AccumuloOutputFormat.class);
 
AccumuloOutputFormat.configure().clientProperties(opts.getClientProperties())
-.defaultTable(opts.tableName).createTables(true);
+.defaultTable(opts.tableName).createTables(true).store(job);
 
 System.exit(job.waitForCompletion(true) ? 0 : 1);
   }


[accumulo-examples] branch main updated: Make runmr script use HADOOP_HOME (#72)

2021-03-31 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 7aa5a4d  Make runmr script use HADOOP_HOME (#72)
7aa5a4d is described below

commit 7aa5a4d4cf69a7b534a2833c6a50017a0ad5542a
Author: Mike Miller 
AuthorDate: Wed Mar 31 17:20:00 2021 -0400

Make runmr script use HADOOP_HOME (#72)
---
 bin/runmr | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bin/runmr b/bin/runmr
index 9de164e..ee65fac 100755
--- a/bin/runmr
+++ b/bin/runmr
@@ -41,4 +41,4 @@ fi
 "$ex_home"/bin/build
 
 export HADOOP_USE_CLIENT_CLASSLOADER=true
-yarn jar $EXAMPLES_JAR_PATH "org.apache.accumulo.examples.$1" ${*:2}
+"$HADOOP_HOME"/bin/yarn jar $EXAMPLES_JAR_PATH 
"org.apache.accumulo.examples.$1" ${*:2}


[accumulo-examples] branch main updated: Drop TraceDumpExample. Closes #35 (#71)

2021-03-30 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 10e6e1a  Drop TraceDumpExample. Closes #35 (#71)
10e6e1a is described below

commit 10e6e1ad59ff93ca6f7254d44e20268ee476da2c
Author: Mike Miller 
AuthorDate: Tue Mar 30 15:00:26 2021 -0400

Drop TraceDumpExample. Closes #35 (#71)
---
 contrib/import-control.xml |  8 +-
 .../accumulo/examples/client/TraceDumpExample.java | 97 --
 2 files changed, 1 insertion(+), 104 deletions(-)

diff --git a/contrib/import-control.xml b/contrib/import-control.xml
index f4628ff..e8b98dc 100644
--- a/contrib/import-control.xml
+++ b/contrib/import-control.xml
@@ -29,15 +29,9 @@
 
 
 
-
-
+
 
 
-
-
-
-
-
 
 
 
diff --git 
a/src/main/java/org/apache/accumulo/examples/client/TraceDumpExample.java 
b/src/main/java/org/apache/accumulo/examples/client/TraceDumpExample.java
deleted file mode 100644
index 36bff49..000
--- a/src/main/java/org/apache/accumulo/examples/client/TraceDumpExample.java
+++ /dev/null
@@ -1,97 +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.examples.client;
-
-import org.apache.accumulo.core.client.AccumuloClient;
-import org.apache.accumulo.core.client.AccumuloException;
-import org.apache.accumulo.core.client.AccumuloSecurityException;
-import org.apache.accumulo.core.client.Scanner;
-import org.apache.accumulo.core.client.TableNotFoundException;
-import org.apache.accumulo.core.conf.ClientProperty;
-import org.apache.accumulo.core.data.Range;
-import org.apache.accumulo.core.security.TablePermission;
-import org.apache.accumulo.examples.cli.ClientOnDefaultTable;
-import org.apache.accumulo.examples.cli.ScannerOpts;
-import org.apache.accumulo.tracer.TraceDump;
-import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.beust.jcommander.Parameter;
-
-/**
- * Example of using the TraceDump class to print a formatted view of a Trace
- */
-public class TraceDumpExample {
-  private static final Logger log = 
LoggerFactory.getLogger(TraceDumpExample.class);
-
-  static class Opts extends ClientOnDefaultTable {
-public Opts() {
-  super("trace");
-}
-
-@Parameter(names = {"--traceid"},
-description = "The hex string id of a given trace, for example 
16cfbbd7beec4ae3")
-public String traceId = "";
-  }
-
-  public void dump(Opts opts)
-  throws TableNotFoundException, AccumuloException, 
AccumuloSecurityException {
-
-if (opts.traceId.isEmpty()) {
-  throw new IllegalArgumentException("--traceid option is required");
-}
-
-try (AccumuloClient client = opts.createAccumuloClient()) {
-  final String principal = 
ClientProperty.AUTH_PRINCIPAL.getValue(opts.getClientProperties());
-  final String table = opts.getTableName();
-  if (!client.securityOperations().hasTablePermission(principal, table, 
TablePermission.READ)) {
-client.securityOperations().grantTablePermission(principal, table, 
TablePermission.READ);
-try {
-  Thread.sleep(1000);
-} catch (InterruptedException e) {
-  Thread.currentThread().interrupt();
-  throw new RuntimeException(e);
-}
-while (!client.securityOperations().hasTablePermission(principal, 
table,
-TablePermission.READ)) {
-  log.info("{} didn't propagate read permission on {}", principal, 
table);
-  try {
-Thread.sleep(1000);
-  } catch (InterruptedException e) {
-Thread.currentThread().interrupt();
-throw new RuntimeException(e);
-  }
-}
-  }
-  Scanner scanner = client.createScanner(table, opts.auths);
-  scanner.setRange(new Range(new Text(opts.traceId)));
-  TraceDump.printTrace(scanner, System.out::println);
-}
-  }
-
-  public static void main(String[] args)
-  

[accumulo] branch main updated (b0fe6cf -> 391b399)

2021-03-30 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from b0fe6cf  Cleanup Tests (#1982)
 add 391b399  Drop unused method in Property.java (#1983)

No new revisions were added by this update.

Summary of changes:
 .../org/apache/accumulo/core/conf/Property.java| 24 --
 1 file changed, 24 deletions(-)


[accumulo] branch main updated (7de7928 -> b0fe6cf)

2021-03-30 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 7de7928  Fixes #1976 table prop check in Shell (#1979)
 add b0fe6cf  Cleanup Tests (#1982)

No new revisions were added by this update.

Summary of changes:
 .../org/apache/accumulo/core/data/KeyExtentTest.java|  8 
 .../org/apache/accumulo/core/data/MutationTest.java |  3 +++
 .../core/file/rfile/MultiThreadedRFileTest.java |  8 
 .../accumulo/core/file/rfile/RelativeKeyTest.java   |  1 +
 .../core/iterators/system/MultiIteratorTest.java|  9 -
 .../accumulo/core/iterators/user/CombinerTest.java  |  5 -
 .../core/iterators/user/IndexedDocIteratorTest.java |  1 -
 .../core/iterators/user/IntersectingIteratorTest.java   |  2 --
 .../server/master/balancer/GroupBalancerTest.java   |  4 
 .../java/org/apache/accumulo/tracer/TracerTest.java | 17 +++--
 .../org/apache/accumulo/tserver/InMemoryMapTest.java| 16 
 .../tserver/tablet/TabletMutationPrepAttemptTest.java   |  4 +++-
 12 files changed, 10 insertions(+), 68 deletions(-)


[accumulo] branch main updated: Fixes #1976 table prop check in Shell (#1979)

2021-03-29 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 7de7928  Fixes #1976 table prop check in Shell (#1979)
7de7928 is described below

commit 7de7928274b2dca59095957e62d9356dc4b64034
Author: Mike Miller 
AuthorDate: Mon Mar 29 15:34:46 2021 -0400

Fixes #1976 table prop check in Shell (#1979)
---
 shell/src/main/java/org/apache/accumulo/shell/Shell.java | 2 +-
 .../org/apache/accumulo/start/classloader/vfs/ContextManager.java| 5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/shell/src/main/java/org/apache/accumulo/shell/Shell.java 
b/shell/src/main/java/org/apache/accumulo/shell/Shell.java
index 41d83bc..a3ecb76 100644
--- a/shell/src/main/java/org/apache/accumulo/shell/Shell.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/Shell.java
@@ -484,7 +484,7 @@ public class Shell extends ShellOptions implements 
KeywordExecutable {
   // look for either the old property or the new one, but
   // if the new one is set, stop looking and let it take precedence
   if (entry.getKey().equals(Property.TABLE_CLASSLOADER_CONTEXT.getKey())
-  && entry.getValue() != null && !entry.getKey().isEmpty()) {
+  && entry.getValue() != null && !entry.getValue().isEmpty()) {
 return entry.getValue();
   }
   @SuppressWarnings("removal")
diff --git 
a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/ContextManager.java
 
b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/ContextManager.java
index 8c4db84..c53d815 100644
--- 
a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/ContextManager.java
+++ 
b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/ContextManager.java
@@ -189,13 +189,12 @@ class ContextManager {
 if (loader == null) {
   // oops, context was closed by another thread, try again
   ClassLoader loader2 = getClassLoader(contextName);
-  log.debug("Returning new classloader {} for context {}", 
loader2.getClass().getSimpleName(),
+  log.debug("Returning new classloader {} for context {}", 
loader2.getClass().getName(),
   contextName);
   return loader2;
 }
 
-log.debug("Returning classloader {} for context {}", 
loader.getClass().getSimpleName(),
-contextName);
+log.debug("Returning classloader {} for context {}", 
loader.getClass().getName(), contextName);
 return loader;
 
   }


[accumulo-examples] branch main updated: Add missing htrace dep

2021-03-25 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 9f7704d  Add missing htrace dep
9f7704d is described below

commit 9f7704df126821a7850a8356cddec0bd9ef16056
Author: Mike Miller 
AuthorDate: Thu Mar 25 11:14:40 2021 -0400

Add missing htrace dep
---
 pom.xml | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e789216..3601f32 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,8 @@
 2.1.0-SNAPSHOT
 
contrib/Eclipse-Accumulo-Codestyle.xml
 3.3.0
+4.1.0-incubating
+3.2.0-incubating
 2.14.0
 11
 11
@@ -89,7 +91,12 @@
 
   org.apache.htrace
   htrace-core
-  3.1.0-incubating
+  ${htrace.version}
+
+
+  org.apache.htrace
+  htrace-core4
+  ${htrace.hadoop.version}
 
 
   org.apache.logging.log4j


[accumulo-examples] branch main updated: Add more precise excludes to pom to fix hadoop client

2021-03-25 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 09e12a9  Add more precise excludes to pom to fix hadoop client
09e12a9 is described below

commit 09e12a9934b9eeb3bbf49a2b3132fb781567e85f
Author: Mike Miller 
AuthorDate: Thu Mar 25 10:16:45 2021 -0400

Add more precise excludes to pom to fix hadoop client
---
 pom.xml | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e2e3fd1..e789216 100644
--- a/pom.xml
+++ b/pom.xml
@@ -321,7 +321,17 @@
   
org.apache.logging.log4j:log4j-slf4j-impl:jar:
   
javax.activation:javax.activation-api:jar:
   
org.apache.zookeeper:zookeeper-jute:jar:
-  org.apache.hadoop:*
+  
org.apache.hadoop:hadoop-annotations:jar:
+  org.apache.hadoop:hadoop-auth:jar:
+  
org.apache.hadoop:hadoop-mapreduce-client-common:jar:
+  org.apache.hadoop:hadoop-yarn-api:jar:
+  
org.apache.hadoop:hadoop-yarn-common:jar:
+  
org.apache.hadoop:hadoop-mapreduce-client-core:jar:
+  org.apache.hadoop:hadoop-common:jar:
+  
org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:
+  
org.apache.hadoop:hadoop-yarn-client:jar:
+  
org.apache.hadoop:hadoop-hdfs-client:jar:
+  
org.apache.hadoop.thirdparty:hadoop-shaded-protobuf_3_7:jar:
 
   
   


[accumulo-examples] branch main updated: Fix shade plugin warnings

2021-03-25 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new b6bc9d9  Fix shade plugin warnings
b6bc9d9 is described below

commit b6bc9d9dabb56b8a5e64435e0d45e1c0f828e36f
Author: Mike Miller 
AuthorDate: Thu Mar 25 09:58:13 2021 -0400

Fix shade plugin warnings
---
 pom.xml | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/pom.xml b/pom.xml
index 438fcf0..e2e3fd1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -316,12 +316,19 @@
   
 
   org.apache.accumulo:accumulo-native
+  
org.apache.logging.log4j:log4j-api:jar:
+  
org.apache.logging.log4j:log4j-1.2-api:jar:
+  
org.apache.logging.log4j:log4j-slf4j-impl:jar:
+  
javax.activation:javax.activation-api:jar:
+  
org.apache.zookeeper:zookeeper-jute:jar:
+  org.apache.hadoop:*
 
   
   
 
   *:*
   
+module-info.class
 META-INF/*.SF
 META-INF/*.DSA
 META-INF/*.RSA


[accumulo] branch main updated: Refactor Crypto packages (#1956)

2021-03-04 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 0781550  Refactor Crypto packages (#1956)
0781550 is described below

commit 0781550076f04d12716650fd64881d8b9d041afa
Author: Mike Miller 
AuthorDate: Thu Mar 4 17:43:04 2021 -0500

Refactor Crypto packages (#1956)

* Move AESCryptoService and NoCryptoService into public spi package
* Move CryptoEnvironmentImpl into core.crypto package with other server 
crypto stuff
* Make AESCryptoUtils static methods on AESCryptoService
---
 .../org/apache/accumulo/core/conf/Property.java|  2 +-
 .../CryptoEnvironmentImpl.java |  2 +-
 .../accumulo/core/crypto/CryptoServiceFactory.java |  2 +-
 .../apache/accumulo/core/crypto/CryptoUtils.java   |  1 -
 .../accumulo/core/cryptoImpl/AESKeyUtils.java  | 95 --
 .../apache/accumulo/core/file/rfile/PrintInfo.java |  2 +-
 .../accumulo/core/file/rfile/bcfile/BCFile.java|  6 +-
 .../crypto}/AESCryptoService.java  | 81 +++---
 .../crypto}/NoCryptoService.java   |  7 +-
 .../crypto}/NoFileDecrypter.java   |  5 +-
 .../crypto}/NoFileEncrypter.java   |  5 +-
 .../accumulo/core/conf/SiteConfigurationTest.java  |  4 +-
 .../apache/accumulo/core/crypto/CryptoTest.java| 30 ---
 .../apache/accumulo/core/file/rfile/RFileTest.java |  2 +-
 core/src/test/resources/accumulo2.properties   |  2 +-
 .../org/apache/accumulo/tserver/log/DfsLogger.java |  4 +-
 .../test/functional/WriteAheadLogEncryptedIT.java  |  2 +-
 17 files changed, 99 insertions(+), 153 deletions(-)

diff --git a/core/src/main/java/org/apache/accumulo/core/conf/Property.java 
b/core/src/main/java/org/apache/accumulo/core/conf/Property.java
index 04015e3..c757648 100644
--- a/core/src/main/java/org/apache/accumulo/core/conf/Property.java
+++ b/core/src/main/java/org/apache/accumulo/core/conf/Property.java
@@ -176,7 +176,7 @@ public enum Property {
   "Sensitive properties related to on-disk file encryption."),
   @Experimental
   INSTANCE_CRYPTO_SERVICE("instance.crypto.service",
-  "org.apache.accumulo.core.cryptoImpl.NoCryptoService", 
PropertyType.CLASSNAME,
+  "org.apache.accumulo.core.spi.crypto.NoCryptoService", 
PropertyType.CLASSNAME,
   "The class which executes on-disk file encryption. The default does 
nothing. To enable "
   + "encryption, replace this classname with an implementation of the"
   + "org.apache.accumulo.core.spi.crypto.CryptoService interface."),
diff --git 
a/core/src/main/java/org/apache/accumulo/core/cryptoImpl/CryptoEnvironmentImpl.java
 b/core/src/main/java/org/apache/accumulo/core/crypto/CryptoEnvironmentImpl.java
similarity index 96%
rename from 
core/src/main/java/org/apache/accumulo/core/cryptoImpl/CryptoEnvironmentImpl.java
rename to 
core/src/main/java/org/apache/accumulo/core/crypto/CryptoEnvironmentImpl.java
index 17863be..ba2deae 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/cryptoImpl/CryptoEnvironmentImpl.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/crypto/CryptoEnvironmentImpl.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.accumulo.core.cryptoImpl;
+package org.apache.accumulo.core.crypto;
 
 import org.apache.accumulo.core.spi.crypto.CryptoEnvironment;
 
diff --git 
a/core/src/main/java/org/apache/accumulo/core/crypto/CryptoServiceFactory.java 
b/core/src/main/java/org/apache/accumulo/core/crypto/CryptoServiceFactory.java
index f3c8737..1415b0d 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/crypto/CryptoServiceFactory.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/crypto/CryptoServiceFactory.java
@@ -21,8 +21,8 @@ package org.apache.accumulo.core.crypto;
 import org.apache.accumulo.core.conf.AccumuloConfiguration;
 import org.apache.accumulo.core.conf.DefaultConfiguration;
 import org.apache.accumulo.core.conf.Property;
-import org.apache.accumulo.core.cryptoImpl.NoCryptoService;
 import org.apache.accumulo.core.spi.crypto.CryptoService;
+import org.apache.accumulo.core.spi.crypto.NoCryptoService;
 
 public class CryptoServiceFactory {
 
diff --git 
a/core/src/main/java/org/apache/accumulo/core/crypto/CryptoUtils.java 
b/core/src/main/java/org/apache/accumulo/core/crypto/CryptoUtils.java
index 703a0eb..53fff25 100644
--- a/core/src/main/java/org/apache/accumulo/core/crypto/CryptoUtils.java
+++ b/core/src/main/java/org/apache/accumulo/core/crypto/CryptoUtils.java
@@ -26,7 +26,6 @@ import java.security.NoSuchProviderException;
 import java.security.SecureRandom;
 import java.util.Objects;
 
-import org.apache.accumulo.core.cryptoImpl.CryptoEnvironm

[accumulo] branch main updated: Clean up CompactionDirectives default impl (#1950)

2021-03-04 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 3bbc77d  Clean up CompactionDirectives default impl (#1950)
3bbc77d is described below

commit 3bbc77de13aa6cf0b849f7b28ec08cb6e6b843e9
Author: Mike Miller 
AuthorDate: Thu Mar 4 07:27:58 2021 -0500

Clean up CompactionDirectives default impl (#1950)

* Created CompactionDirectivesBuilder class for builder logic


Co-authored-by: Keith Turner 
---
 .../core/spi/compaction/CompactionDirectives.java  | 17 +++--
 ...tives.java => CompactionDirectivesBuilder.java} | 38 +-
 ...rectives.java => CompactionDirectivesImpl.java} | 32 
 .../spi/compaction/CompactionsDirectiveImpl.java   | 85 --
 .../spi/compaction/SimpleCompactionDispatcher.java |  8 +-
 5 files changed, 48 insertions(+), 132 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
 
b/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
index e3370eb..6991fc6 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
@@ -32,17 +32,24 @@ public interface CompactionDirectives {
   CompactionServiceId getService();
 
   /**
+   * Required for CompactionDirectives
+   *
* @since 2.1.0
*/
-  public static interface Builder {
-Builder setService(CompactionServiceId service);
+  interface ServiceBuilder {
+Builder toService(CompactionServiceId service);
 
-Builder setService(String compactionServiceId);
+Builder toService(String compactionServiceId);
+  }
 
+  /**
+   * @since 2.1.0
+   */
+  interface Builder {
 CompactionDirectives build();
   }
 
-  public static Builder builder() {
-return CompactionsDirectiveImpl.DEFAULT_BUILDER;
+  static ServiceBuilder builder() {
+return new CompactionDirectivesBuilder();
   }
 }
diff --git 
a/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
 
b/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectivesBuilder.java
similarity index 55%
copy from 
core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
copy to 
core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectivesBuilder.java
index e3370eb..c542699 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectivesBuilder.java
@@ -18,31 +18,31 @@
  */
 package org.apache.accumulo.core.spi.compaction;
 
+import java.util.Objects;
+
 /**
- * The directions of a {@link CompactionDispatcher}
- *
- * @since 2.1.0
- * @see org.apache.accumulo.core.spi.compaction
+ * This class intentionally package private.
  */
-public interface CompactionDirectives {
-
-  /**
-   * @return The service where a compaction should run.
-   */
-  CompactionServiceId getService();
+class CompactionDirectivesBuilder
+implements CompactionDirectives.Builder, 
CompactionDirectives.ServiceBuilder {
 
-  /**
-   * @since 2.1.0
-   */
-  public static interface Builder {
-Builder setService(CompactionServiceId service);
+  private CompactionServiceId service;
 
-Builder setService(String compactionServiceId);
+  @Override
+  public CompactionDirectives.Builder toService(CompactionServiceId service) {
+this.service = Objects.requireNonNull(service, "CompactionServiceId cannot 
be null");
+return this;
+  }
 
-CompactionDirectives build();
+  @Override
+  public CompactionDirectives.Builder toService(String compactionServiceId) {
+this.service = CompactionServiceId.of(compactionServiceId);
+return this;
   }
 
-  public static Builder builder() {
-return CompactionsDirectiveImpl.DEFAULT_BUILDER;
+  @Override
+  public CompactionDirectives build() {
+return new CompactionDirectivesImpl(service);
   }
+
 }
diff --git 
a/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
 
b/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectivesImpl.java
similarity index 61%
copy from 
core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
copy to 
core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectivesImpl.java
index e3370eb..fe2a833 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectives.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/spi/compaction/CompactionDirectivesImpl.java
@@ -19,30 +19,24 @@
 package org.apache.accumulo.core.spi.compaction;
 
 /**
- * The directions of a {@link CompactionDispatcher}
- *
- * @sinc

[accumulo] branch main updated (7e3c67d -> 2a4226b)

2021-02-26 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 7e3c67d  Fix typo in RecoveryManager
 add 2a4226b  Create CryptoUtils getFileDecrypter method (#1951)

No new revisions were added by this update.

Summary of changes:
 .../org/apache/accumulo/core/crypto/CryptoUtils.java  | 15 +++
 .../org/apache/accumulo/core/crypto/CryptoTest.java   | 19 +++
 .../org/apache/accumulo/tserver/log/DfsLogger.java|  5 +
 3 files changed, 23 insertions(+), 16 deletions(-)



[accumulo] branch main updated: Fix typo in RecoveryManager

2021-02-25 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 7e3c67d  Fix typo in RecoveryManager
7e3c67d is described below

commit 7e3c67d0c0b831d7d29c69e24d07dd700f24c5e0
Author: Mike Miller 
AuthorDate: Thu Feb 25 15:37:53 2021 -0500

Fix typo in RecoveryManager
---
 .../main/java/org/apache/accumulo/manager/recovery/RecoveryManager.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/recovery/RecoveryManager.java
 
b/server/manager/src/main/java/org/apache/accumulo/manager/recovery/RecoveryManager.java
index 4406f5a..c849b8d 100644
--- 
a/server/manager/src/main/java/org/apache/accumulo/manager/recovery/RecoveryManager.java
+++ 
b/server/manager/src/main/java/org/apache/accumulo/manager/recovery/RecoveryManager.java
@@ -112,7 +112,7 @@ public class RecoveryManager {
   initiateSort(sortId, source, destination);
 }
   } catch (FileNotFoundException e) {
-log.debug("Unable to initate log sort for " + source + ": " + e);
+log.debug("Unable to initiate log sort for " + source + ": " + e);
   } catch (Exception e) {
 log.warn("Failed to initiate log sort " + source, e);
   } finally {



[accumulo] branch main updated (8718d02 -> a17397d)

2021-02-25 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 8718d02  Improve tablet details in Monitor. Closes #1940 (#1943)
 add a17397d  Increase difference between test values. Fixes #1789 (#1948)

No new revisions were added by this update.

Summary of changes:
 .../tserver/memory/LargestFirstMemoryManager.java  |  2 +-
 .../memory/LargestFirstMemoryManagerTest.java  | 55 --
 2 files changed, 30 insertions(+), 27 deletions(-)



[accumulo] branch main updated (65c451a -> 8718d02)

2021-02-25 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 65c451a  Minor warning cleanup from IDE
 add 8718d02  Improve tablet details in Monitor. Closes #1940 (#1943)

No new revisions were added by this update.

Summary of changes:
 .../src/main/resources/org/apache/accumulo/monitor/templates/server.ftl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



[accumulo] branch main updated (97ac5c4 -> 2b1410a)

2021-02-24 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 97ac5c4  Update plugin/some dependency versions (#1941)
 add 2b1410a  Create readTablets method in Ample. Closes #1473 (#1945)

No new revisions were added by this update.

Summary of changes:
 .../accumulo/core/clientImpl/OfflineIterator.java  |  4 +-
 .../core/clientImpl/TableOperationsImpl.java   |  4 +-
 .../clientImpl/bulk/ConcurrentKeyExtentCache.java  |  4 +-
 .../accumulo/core/metadata/schema/Ample.java   |  8 +++
 .../accumulo/core/metadata/schema/AmpleImpl.java   | 10 ++-
 .../core/metadata/schema/TabletsMetadata.java  | 23 ---
 .../org/apache/accumulo/core/summary/Gatherer.java |  8 +--
 .../java/org/apache/accumulo/core/util/Merge.java  |  4 +-
 .../manager/balancer/BalancerEnvironmentImpl.java  |  4 +-
 .../server/master/balancer/GroupBalancer.java  |  4 +-
 .../accumulo/server/util/ListVolumesUsed.java  |  4 +-
 .../accumulo/server/util/MetadataTableUtil.java|  4 +-
 .../manager/state/RootTabletStateStoreTest.java|  6 ++
 .../apache/accumulo/gc/SimpleGarbageCollector.java |  4 +-
 .../manager/ManagerClientServiceHandler.java   |  5 +-
 .../manager/tableOps/bulkVer2/LoadFiles.java   |  4 +-
 .../manager/tableOps/bulkVer2/PrepBulkImport.java  |  7 ++-
 .../manager/tableOps/compact/CompactionDriver.java |  5 +-
 .../shell/commands/ListTabletsCommand.java |  2 +-
 .../apache/accumulo/test/CompactionExecutorIT.java |  4 +-
 .../accumulo/test/functional/AccumuloClientIT.java |  1 -
 .../apache/accumulo/test/functional/BulkNewIT.java |  4 +-
 .../accumulo/test/functional/MetadataIT.java   | 73 ++
 23 files changed, 147 insertions(+), 49 deletions(-)



[accumulo-testing] branch main updated: Fix typo in bin/cingest script

2021-02-23 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new fbaf16d  Fix typo in bin/cingest script
fbaf16d is described below

commit fbaf16dc2c065eaab690d8d7abd75750d5d0425c
Author: Mike Miller 
AuthorDate: Tue Feb 23 08:28:57 2021 -0500

Fix typo in bin/cingest script
---
 bin/cingest | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bin/cingest b/bin/cingest
index ab44b19..0753608 100755
--- a/bin/cingest
+++ b/bin/cingest
@@ -31,7 +31,7 @@ Available applications:
 batchwalk Randomly walks the graph using a batch scanner
 scan  Scans the graph
 verifyVerifies continous ingest test. Stop ingest before running.
-moru  Streses Accumulo by reading and writing to the ingest table.
+moru  Stresses Accumulo by reading and writing to the ingest table.
   Stop ingest before running.
 bulk  Create RFiles in a Map Reduce job and calls importDirectory 
if successful
 EOF



[accumulo-testing] branch main updated: Add back END to MultiTable so it can be used by other modules

2021-02-22 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 17963d6  Add back END to MultiTable so it can be used by other modules
17963d6 is described below

commit 17963d619f5418254e5dafd930c1d2210f48e937
Author: Mike Miller 
AuthorDate: Mon Feb 22 14:40:12 2021 -0500

Add back END to MultiTable so it can be used by other modules
---
 src/main/resources/randomwalk/modules/MultiTable.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/main/resources/randomwalk/modules/MultiTable.xml 
b/src/main/resources/randomwalk/modules/MultiTable.xml
index 55b7f0b..6698e4a 100644
--- a/src/main/resources/randomwalk/modules/MultiTable.xml
+++ b/src/main/resources/randomwalk/modules/MultiTable.xml
@@ -34,6 +34,7 @@
   
   
   
+  
 
 
 



[accumulo] branch main updated: Stop recovery if tablet is being deleted (#1934)

2021-02-19 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 1052076  Stop recovery if tablet is being deleted (#1934)
1052076 is described below

commit 10520766da991746df86cb94e4acf94a39d00747
Author: Mike Miller 
AuthorDate: Fri Feb 19 09:08:40 2021 -0500

Stop recovery if tablet is being deleted (#1934)
---
 .../src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
index 1a90b1c..fc8c6fe 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
@@ -340,7 +340,8 @@ public class Tablet {
 
 tabletMemory = new TabletMemory(this);
 
-if (!logEntries.isEmpty()) {
+// don't bother examining WALs for recovery if Table is being deleted
+if (!logEntries.isEmpty() && !isBeingDeleted()) {
   TabletLogger.recovering(extent, logEntries);
   final AtomicLong entriesUsedOnTablet = new AtomicLong(0);
   // track max time from walog entries without timestamps



[accumulo] branch main updated (e6cc640 -> f18a83d)

2021-02-19 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from e6cc640  Remove unused param from CompactionEnv (#1936)
 add f18a83d  Add stats to new Compactable classes. Fixes #1930 (#1937)

No new revisions were added by this update.

Summary of changes:
 .../accumulo/monitor/rest/tservers/TabletServerResource.java |  2 +-
 .../org/apache/accumulo/tserver/compactions/Compactable.java |  2 +-
 .../accumulo/tserver/compactions/CompactionExecutor.java |  5 +++--
 .../org/apache/accumulo/tserver/tablet/CompactableImpl.java  | 12 ++--
 .../org/apache/accumulo/tserver/tablet/CompactableUtils.java |  5 -
 .../main/java/org/apache/accumulo/tserver/tablet/Tablet.java |  9 +
 6 files changed, 28 insertions(+), 7 deletions(-)



[accumulo] branch main updated (287a1bd -> e6cc640)

2021-02-18 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 287a1bd  Stop user flush if table is being deleted (#1931)
 add e6cc640  Remove unused param from CompactionEnv (#1936)

No new revisions were added by this update.

Summary of changes:
 .../java/org/apache/accumulo/tserver/tablet/CompactableImpl.java| 2 +-
 .../java/org/apache/accumulo/tserver/tablet/CompactableUtils.java   | 4 ++--
 .../src/main/java/org/apache/accumulo/tserver/tablet/Compactor.java | 6 +++---
 .../java/org/apache/accumulo/tserver/tablet/MinorCompactor.java | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)



[accumulo-testing] branch main updated: Add more splits to RW multitable CreateTable

2021-02-17 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 66dcd04  Add more splits to RW multitable CreateTable
66dcd04 is described below

commit 66dcd0430ff0b012a75c256f4bb8a462c2ffe14d
Author: Mike Miller 
AuthorDate: Wed Feb 17 09:21:10 2021 -0500

Add more splits to RW multitable CreateTable
---
 .../apache/accumulo/testing/randomwalk/multitable/CreateTable.java | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git 
a/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/CreateTable.java
 
b/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/CreateTable.java
index b132662..3ef2d27 100644
--- 
a/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/CreateTable.java
+++ 
b/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/CreateTable.java
@@ -36,13 +36,16 @@ public class CreateTable extends Test {
 for (int i = 1; i < 10; i++) {
   splits.add(new Text(Integer.toString(i)));
 }
+for (String s : "a b c d e f".split(" ")) {
+  splits.add(new Text(s));
+}
   }
 
   @Override
   public void visit(State state, RandWalkEnv env, Properties props) throws 
Exception {
 AccumuloClient client = env.getAccumuloClient();
 
-int nextId = ((Integer) state.get("nextId")).intValue();
+int nextId = (Integer) state.get("nextId");
 String tableName = String.format("%s_%d", 
state.getString("tableNamePrefix"), nextId);
 try {
   client.tableOperations().create(tableName);
@@ -61,6 +64,6 @@ public class CreateTable extends Test {
 }
 
 nextId++;
-state.set("nextId", Integer.valueOf(nextId));
+state.set("nextId", nextId);
   }
 }



[accumulo] branch main updated: Stop user flush if table is being deleted (#1931)

2021-02-17 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 287a1bd  Stop user flush if table is being deleted (#1931)
287a1bd is described below

commit 287a1bd4c9729ad3b738db91942f3841e852d523
Author: Mike Miller 
AuthorDate: Wed Feb 17 08:32:57 2021 -0500

Stop user flush if table is being deleted (#1931)
---
 .../src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
index f4eb7f9..7605500 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
@@ -843,7 +843,8 @@ public class Tablet {
   return;
 }
 
-if (isClosing() || isClosed() || 
getTabletMemory().memoryReservedForMinC()) {
+if (isClosing() || isClosed() || isBeingDeleted()
+|| getTabletMemory().memoryReservedForMinC()) {
   return;
 }
 



[accumulo] branch main updated: Update ServerBulkImportStatus for new Bulk import. Closes #1510 (#1923)

2021-02-17 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 970b054  Update ServerBulkImportStatus for new Bulk import. Closes 
#1510 (#1923)
970b054 is described below

commit 970b0547cc9ae46fc5f95130b407bb36fc9521a9
Author: Mike Miller 
AuthorDate: Wed Feb 17 07:42:38 2021 -0500

Update ServerBulkImportStatus for new Bulk import. Closes #1510 (#1923)
---
 .../apache/accumulo/server/util/ServerBulkImportStatus.java | 13 +++--
 .../org/apache/accumulo/manager/FateServiceHandler.java |  1 +
 .../accumulo/manager/tableOps/bulkVer2/BulkImportMove.java  |  2 ++
 .../manager/tableOps/bulkVer2/CleanUpBulkImport.java|  3 +++
 .../accumulo/manager/tableOps/bulkVer2/LoadFiles.java   |  2 ++
 .../org/apache/accumulo/monitor/templates/bulkImport.ftl|  2 +-
 .../org/apache/accumulo/tserver/ThriftClientHandler.java|  8 
 .../java/org/apache/accumulo/tserver/tablet/Tablet.java |  2 +-
 8 files changed, 25 insertions(+), 8 deletions(-)

diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/util/ServerBulkImportStatus.java
 
b/server/base/src/main/java/org/apache/accumulo/server/util/ServerBulkImportStatus.java
index 0aadcb8..34d87e1 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/util/ServerBulkImportStatus.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/util/ServerBulkImportStatus.java
@@ -37,12 +37,13 @@ public class ServerBulkImportStatus {
 
   public void updateBulkImportStatus(List files, BulkImportState 
state) {
 for (String file : files) {
-  BulkImportStatus initial = new 
BulkImportStatus(System.currentTimeMillis(), file, state);
-  status.putIfAbsent(file, initial);
-  initial = status.get(file);
-  if (initial != null) {
-initial.state = state;
-  }
+  status.compute(file, (key, currentStatus) -> {
+if (currentStatus == null) {
+  return new BulkImportStatus(System.currentTimeMillis(), file, state);
+}
+currentStatus.state = state;
+return currentStatus;
+  });
 }
   }
 
diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/FateServiceHandler.java
 
b/server/manager/src/main/java/org/apache/accumulo/manager/FateServiceHandler.java
index 0db5622..d1ff6dd 100644
--- 
a/server/manager/src/main/java/org/apache/accumulo/manager/FateServiceHandler.java
+++ 
b/server/manager/src/main/java/org/apache/accumulo/manager/FateServiceHandler.java
@@ -599,6 +599,7 @@ class FateServiceHandler implements FateService.Iface {
 if (!canBulkImport)
   throw new ThriftSecurityException(c.getPrincipal(), 
SecurityErrorCode.PERMISSION_DENIED);
 
+manager.updateBulkImportStatus(dir, BulkImportState.INITIAL);
 manager.fate.seedTransaction(opid,
 new TraceRepo<>(new PrepBulkImport(tableId, dir, setTime)), 
autoCleanup);
 break;
diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/BulkImportMove.java
 
b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/BulkImportMove.java
index 4788afd..838eaf6 100644
--- 
a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/BulkImportMove.java
+++ 
b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/BulkImportMove.java
@@ -30,6 +30,7 @@ import 
org.apache.accumulo.core.clientImpl.thrift.TableOperationExceptionType;
 import org.apache.accumulo.core.conf.AccumuloConfiguration;
 import org.apache.accumulo.core.conf.Property;
 import org.apache.accumulo.core.manager.state.tables.TableState;
+import org.apache.accumulo.core.master.thrift.BulkImportState;
 import org.apache.accumulo.fate.FateTxId;
 import org.apache.accumulo.fate.Repo;
 import org.apache.accumulo.manager.Manager;
@@ -84,6 +85,7 @@ class BulkImportMove extends ManagerRepo {
 }
 
 try {
+  manager.updateBulkImportStatus(sourceDir.toString(), 
BulkImportState.MOVING);
   Map oldToNewNameMap =
   BulkSerialize.readRenameMap(bulkDir.toString(), fs::open);
   moveFiles(tid, sourceDir, bulkDir, manager, fs, oldToNewNameMap);
diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/CleanUpBulkImport.java
 
b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/CleanUpBulkImport.java
index 0b3d3cb..d7b0088 100644
--- 
a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/CleanUpBulkImport.java
+++ 
b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/CleanUpBulkImport.java
@@ -24,6 +24,7 @@ import java.util.Collections;
 import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.client.AccumuloClient;
 import org.apache.accumulo.core.manager.state.tables.T

[accumulo] 01/02: Merge remote-tracking branch 'upstream/1.10' into main

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

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

commit 3a1d7404b2dc8d910c8a340c19a5326ae2e3cd23
Merge: 0d5ea4b 4b3a3b9
Author: Mike Miller 
AuthorDate: Tue Feb 16 15:13:04 2021 -0500

Merge remote-tracking branch 'upstream/1.10' into main




[accumulo] 02/02: Improvements to TabletStateChangeIteratorIT. Closes #1932

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

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

commit 925d17bdd72cf1bbdd0d693d31e58b02fb7d6eab
Author: Mike Miller 
AuthorDate: Tue Feb 16 10:37:37 2021 -0500

Improvements to TabletStateChangeIteratorIT. Closes #1932

* Modified copyTable method to gather info about the metadata first
before creating the copy, preventing information about the copy itself
from being seen.
* Added debugging information
* Changed createTable method to pre split tables
---
 .../functional/TabletStateChangeIteratorIT.java| 62 ++
 1 file changed, 51 insertions(+), 11 deletions(-)

diff --git 
a/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
 
b/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
index 0a66f3d..f7597fa 100644
--- 
a/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
+++ 
b/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
@@ -20,10 +20,12 @@ package org.apache.accumulo.test.functional;
 
 import static org.junit.Assert.assertEquals;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map.Entry;
 import java.util.Set;
 import java.util.SortedSet;
@@ -43,6 +45,7 @@ import org.apache.accumulo.core.client.RowIterator;
 import org.apache.accumulo.core.client.Scanner;
 import org.apache.accumulo.core.client.TableExistsException;
 import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.client.admin.NewTableConfiguration;
 import org.apache.accumulo.core.clientImpl.ClientContext;
 import org.apache.accumulo.core.clientImpl.ClientInfo;
 import org.apache.accumulo.core.clientImpl.Tables;
@@ -68,6 +71,8 @@ import 
org.apache.accumulo.server.manager.state.MetaDataTableScanner;
 import org.apache.accumulo.server.manager.state.TabletStateChangeIterator;
 import org.apache.hadoop.io.Text;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Sets;
 
@@ -76,6 +81,7 @@ import com.google.common.collect.Sets;
  * in the metadata table when there is no work to be done on the tablet (see 
ACCUMULO-3580)
  */
 public class TabletStateChangeIteratorIT extends AccumuloClusterHarness {
+  private final static Logger log = 
LoggerFactory.getLogger(TabletStateChangeIteratorIT.class);
 
   @Override
   public int defaultTimeoutSeconds() {
@@ -105,9 +111,12 @@ public class TabletStateChangeIteratorIT extends 
AccumuloClusterHarness {
   copyTable(client, MetadataTable.NAME, metaCopy1);
 
   State state = new State(client);
-  while (findTabletsNeedingAttention(client, metaCopy1, state) > 0) {
+  int tabletsInFlux = findTabletsNeedingAttention(client, metaCopy1, 
state);
+  while (tabletsInFlux > 0) {
+log.debug("Waiting for {} tablets for {}", tabletsInFlux, metaCopy1);
 UtilWaitThread.sleep(500);
 copyTable(client, MetadataTable.NAME, metaCopy1);
+tabletsInFlux = findTabletsNeedingAttention(client, metaCopy1, state);
   }
   assertEquals("No tables should need attention", 0,
   findTabletsNeedingAttention(client, metaCopy1, state));
@@ -196,31 +205,39 @@ public class TabletStateChangeIteratorIT extends 
AccumuloClusterHarness {
   private int findTabletsNeedingAttention(AccumuloClient client, String table, 
State state)
   throws TableNotFoundException {
 int results = 0;
+List resultList = new ArrayList<>();
 try (Scanner scanner = client.createScanner(table, Authorizations.EMPTY)) {
   MetaDataTableScanner.configureScanner(scanner, state);
+  log.debug("Current state = {}", state);
   scanner.updateScanIteratorOption("tabletChange", "debug", "1");
   for (Entry e : scanner) {
-if (e != null)
+if (e != null) {
   results++;
+  resultList.add(e.getKey());
+}
   }
 }
-
+log.debug("Tablets in flux: {}", resultList);
 return results;
   }
 
   private void createTable(AccumuloClient client, String t, boolean online)
   throws AccumuloSecurityException, AccumuloException, 
TableNotFoundException,
   TableExistsException {
-client.tableOperations().create(t);
-client.tableOperations().online(t, true);
 SortedSet partitionKeys = new TreeSet<>();
 partitionKeys.add(new Text("some split"));
-client.tableOperations().addSplits(t, partitionKeys);
+NewTableConfiguration ntc = new 
NewTableConfiguration().withSplits(partitionKeys);
+client.tableOperations().create(t, ntc);
+client.tabl

[accumulo] branch main updated (0d5ea4b -> 925d17b)

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

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


from 0d5ea4b  Prevent deleted tablets from being flushed (#1899)
 add 4b3a3b9  Improvements to TabletStateChangeIteratorIT (#1933)
 new 3a1d740  Merge remote-tracking branch 'upstream/1.10' into main
 new 925d17b  Improvements to TabletStateChangeIteratorIT. Closes #1932

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../functional/TabletStateChangeIteratorIT.java| 62 ++
 1 file changed, 51 insertions(+), 11 deletions(-)



[accumulo] branch 1.10 updated: Improvements to TabletStateChangeIteratorIT (#1933)

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

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


The following commit(s) were added to refs/heads/1.10 by this push:
 new 4b3a3b9  Improvements to TabletStateChangeIteratorIT (#1933)
4b3a3b9 is described below

commit 4b3a3b98d8916dc49f0ce54f6b8dca7b9473dc29
Author: Mike Miller 
AuthorDate: Tue Feb 16 15:11:26 2021 -0500

Improvements to TabletStateChangeIteratorIT (#1933)

* Modified copyTable method to gather info about the metadata first
before creating the copy, preventing information about the copy itself
from being seen.
* Added debugging information
---
 .../functional/TabletStateChangeIteratorIT.java| 53 +++---
 1 file changed, 46 insertions(+), 7 deletions(-)

diff --git 
a/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
 
b/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
index 84c503d..b167ded 100644
--- 
a/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
+++ 
b/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
@@ -19,10 +19,12 @@ package org.apache.accumulo.test.functional;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertEquals;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map.Entry;
 import java.util.Set;
 import java.util.SortedSet;
@@ -63,6 +65,8 @@ import 
org.apache.accumulo.server.master.state.TabletStateChangeIterator;
 import org.apache.accumulo.server.zookeeper.ZooLock;
 import org.apache.hadoop.io.Text;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Sets;
 
@@ -71,6 +75,7 @@ import com.google.common.collect.Sets;
  * in the metadata table when there is no work to be done on the tablet (see 
ACCUMULO-3580)
  */
 public class TabletStateChangeIteratorIT extends AccumuloClusterHarness {
+  private final static Logger log = 
LoggerFactory.getLogger(TabletStateChangeIteratorIT.class);
 
   @Override
   public int defaultTimeoutSeconds() {
@@ -97,9 +102,12 @@ public class TabletStateChangeIteratorIT extends 
AccumuloClusterHarness {
 copyTable(MetadataTable.NAME, metaCopy1);
 
 State state = new State();
-while (findTabletsNeedingAttention(metaCopy1, state) > 0) {
+int tabletsInFlux = findTabletsNeedingAttention(metaCopy1, state);
+while (tabletsInFlux > 0) {
+  log.debug("Waiting for {} tablets for {}", tabletsInFlux, metaCopy1);
   UtilWaitThread.sleep(500);
   copyTable(MetadataTable.NAME, metaCopy1);
+  tabletsInFlux = findTabletsNeedingAttention(metaCopy1, state);
 }
 assertEquals("No tables should need attention", 0,
 findTabletsNeedingAttention(metaCopy1, state));
@@ -184,14 +192,19 @@ public class TabletStateChangeIteratorIT extends 
AccumuloClusterHarness {
 
   private int findTabletsNeedingAttention(String table, State state) throws 
TableNotFoundException {
 int results = 0;
+List resultList = new ArrayList<>();
+
 Scanner scanner = getConnector().createScanner(table, 
Authorizations.EMPTY);
 MetaDataTableScanner.configureScanner(scanner, state);
+log.debug("Current state = {}", state);
 scanner.updateScanIteratorOption("tabletChange", "debug", "1");
 for (Entry e : scanner) {
-  if (e != null)
+  if (e != null) {
 results++;
+resultList.add(e.getKey());
+  }
 }
-
+log.debug("Tablets in flux: {}", resultList);
 return results;
   }
 
@@ -208,6 +221,10 @@ public class TabletStateChangeIteratorIT extends 
AccumuloClusterHarness {
 }
   }
 
+  /**
+   * Create a copy of the source table by first gathering all the rows of the 
source in a list of
+   * mutations. Then create the copy of the table and apply the mutations to 
the copy.
+   */
   private void copyTable(String source, String copy) throws AccumuloException,
   AccumuloSecurityException, TableNotFoundException, TableExistsException {
 try {
@@ -216,10 +233,10 @@ public class TabletStateChangeIteratorIT extends 
AccumuloClusterHarness {
   // ignored
 }
 
-getConnector().tableOperations().create(copy);
+log.info("Gathering rows to copy {} ", source);
+List mutations = new ArrayList<>();
 
-try (Scanner scanner = getConnector().createScanner(source, 
Authorizations.EMPTY);
-BatchWriter writer = getConnector().createBatchWriter(copy, new 
BatchWriterConfig())) {
+try (Scanner scanner = getConnector().createScanner(source, 
Authorizations.EMPTY)) {
   RowIterator rows = new RowIte

[accumulo] branch main updated: Prevent deleted tablets from being flushed (#1899)

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

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


The following commit(s) were added to refs/heads/main by this push:
 new 0d5ea4b  Prevent deleted tablets from being flushed (#1899)
0d5ea4b is described below

commit 0d5ea4b51e5f781c35280789d281817d4bb730ee
Author: Mike Miller 
AuthorDate: Fri Feb 12 12:13:46 2021 -0500

Prevent deleted tablets from being flushed (#1899)

* Add check to LargestFirstMemoryManager.tabletsToMinorCompact() to
not pick tablets from a table being deleted
* Remove deleted tablet from memory reports in TabletServerResourceManager
so it won't keep trying to flush delete tablets when they are large
* Created isBeingDeleted() in Tablet for checking
* The CleanUp step of deletes will wait until all tablets of a tablet
are unassigned. This will stop the memory mgr from flushing if the table
is being deleted, allowing it to be unassigned faster.
* Added debug to Tablet.completeClose() for better insight when waiting
* Updated LargestFirstMemoryManagerTest to test tablets being deleted
* Added 1 min timeout to LargestFirstMemoryManagerTest in hopes of
helping with timing issues
---
 .../tserver/TabletServerResourceManager.java   |  4 +--
 .../tserver/memory/LargestFirstMemoryManager.java  | 17 ++
 .../org/apache/accumulo/tserver/tablet/Tablet.java | 13 +++-
 .../memory/LargestFirstMemoryManagerTest.java  | 38 +-
 4 files changed, 54 insertions(+), 18 deletions(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServerResourceManager.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServerResourceManager.java
index f011ea5..300275e 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServerResourceManager.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServerResourceManager.java
@@ -557,13 +557,13 @@ public class TabletServerResourceManager {
   }
   Tablet tablet = tabletReport.getTablet();
   if 
(!tablet.initiateMinorCompaction(MinorCompactionReason.SYSTEM)) {
-if (tablet.isClosed()) {
+if (tablet.isClosed() || tablet.isBeingDeleted()) {
   // attempt to remove it from the current reports if still 
there
   synchronized (tabletReports) {
 TabletMemoryReport latestReport = 
tabletReports.remove(keyExtent);
 if (latestReport != null) {
   if (latestReport.getTablet() == tablet) {
-log.debug("Cleaned up report for closed tablet {}", 
keyExtent);
+log.debug("Cleaned up report for closed/deleted tablet 
{}", keyExtent);
   } else {
 // different tablet instance => put it back
 tabletReports.put(keyExtent, latestReport);
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/memory/LargestFirstMemoryManager.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/memory/LargestFirstMemoryManager.java
index 7c242b0..c10467c 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/memory/LargestFirstMemoryManager.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/memory/LargestFirstMemoryManager.java
@@ -28,6 +28,7 @@ import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.conf.Property;
 import org.apache.accumulo.core.data.TableId;
 import org.apache.accumulo.core.dataImpl.KeyExtent;
+import org.apache.accumulo.core.manager.state.tables.TableState;
 import org.apache.accumulo.server.ServerContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -147,6 +148,10 @@ public class LargestFirstMemoryManager {
 return context.getTableConfiguration(tableId) != null;
   }
 
+  protected boolean tableBeingDeleted(TableId tableId) {
+return context.getTableManager().getTableState(tableId) == 
TableState.DELETING;
+  }
+
   public List tabletsToMinorCompact(List 
tablets) {
 if (maxMemory < 0)
   throw new IllegalStateException(
@@ -167,9 +172,10 @@ public class LargestFirstMemoryManager {
 
 // find the largest and most idle tablets
 for (TabletMemoryReport ts : tablets) {
+  KeyExtent tablet = ts.getExtent();
   // Make sure that the table still exists
-  if (!tableExists(ts.getExtent().tableId())) {
-log.trace("Ignoring extent for deleted table: {}", ts.getExtent());
+  if (!tableExists(tablet.tableId()) || 
tableBeingDeleted(tablet.tableId())) {
+log.trace("Ignoring extent for deleted table: {}", tablet);
 continue;
   }
 
@@ -179,17 +185,16 @@ public class LargestFirstMemoryManager {
   

[accumulo] branch main updated (f2ecaf6 -> 1a5b46e)

2021-02-11 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from f2ecaf6  Document master/manager rename in Upgrader9to10 re #1922 
(#1927)
 add 1a5b46e  Improve log message in Delete CleanUp FATE. (#1829)

No new revisions were added by this update.

Summary of changes:
 .../java/org/apache/accumulo/manager/tableOps/delete/CleanUp.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)



[accumulo] 01/01: Merge remote-tracking branch 'upstream/1.10' into main

2021-02-11 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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

commit 2ff2618b1c49d01a3ded44173b522c5670cfdeac
Merge: c7b1d85 fbdbda9
Author: Mike Miller 
AuthorDate: Thu Feb 11 07:42:33 2021 -0500

Merge remote-tracking branch 'upstream/1.10' into main

 core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java   | 4 ++--
 .../main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java  | 3 ++-
 .../org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java | 4 
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --cc core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java
index fbde1a8,7ea9b81..25c5a52
--- a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java
@@@ -209,163 -196,17 +209,163 @@@ public class RFile 
  
/**
 * This is an intermediate interface in a larger builder pattern. Supports 
setting the required
 +   * input sources for reading summary data from an RFile.
 +   *
 +   * @since 2.0.0
 +   */
 +  public interface SummaryInputArguments {
 +/**
 + * Specify RFiles to read from. When multiple inputs are specified the 
summary data will be
 + * merged.
 + *
 + * @param inputs
 + *  one or more RFiles to read.
 + * @return this
 + */
 +SummaryOptions from(RFileSource... inputs);
 +
 +/**
 + * Specify RFiles to read from. When multiple are specified the summary 
data will be merged.
 + *
 + * @param files
 + *  one or more RFiles to read.
 + * @return this
 + */
 +SummaryFSOptions from(String... files);
 +  }
 +
 +  /**
 +   * This is an intermediate interface in a larger builder pattern. Enables 
optionally setting a
 +   * FileSystem to read RFile summary data from.
 +   *
 +   * @since 2.0.0
 +   */
 +  public interface SummaryFSOptions extends SummaryOptions {
 +/**
 + * Optionally provide a FileSystem to open RFiles. If not specified, the 
FileSystem will be
 + * constructed using configuration on the classpath.
 + *
 + * @param fs
 + *  use this FileSystem to open files.
 + * @return this
 + */
 +SummaryOptions withFileSystem(FileSystem fs);
 +  }
 +
 +  /**
 +   * This is an intermediate interface in a large builder pattern. Allows 
setting options for
 +   * retrieving summary data.
 +   *
 +   * @since 2.0.0
 +   */
 +  public interface SummaryOptions {
 +/**
 + * Retrieve summaries with provided tables properties. Properties for a 
table can be obtained by
 + * calling {@link TableOperations#getProperties(String)}. Any property 
that impacts file
 + * behavior regardless of whether it has the {@link 
Property#TABLE_PREFIX} may be accepted and
 + * used. For example, cache and crypto properties could be passed here.
 + *
 + * @param props
 + *  iterable over Accumulo table key value properties.
 + * @return this
 + */
 +SummaryOptions withTableProperties(Iterable> props);
 +
 +/**
 + * @see #withTableProperties(Iterable) Any property that impacts file 
behavior regardless of
 + *  whether it has the {@link Property#TABLE_PREFIX} may be accepted 
and used. For example,
 + *  cache and crypto properties could be passed here.
 + * @param props
 + *  a map instead of an Iterable
 + * @return this
 + */
 +SummaryOptions withTableProperties(Map props);
 +
 +/**
 + * This method allows retrieving a subset of summary data from a file. If 
a file has lots of
 + * separate summaries, reading a subset may be faster.
 + *
 + * @param summarySelector
 + *  Only read summary data that was generated with configuration 
that this predicate
 + *  matches.
 + * @return this
 + */
 +SummaryOptions selectSummaries(Predicate 
summarySelector);
 +
 +/**
 + * Summary data may possibly be stored at a more granular level than the 
entire file. However
 + * there is no guarantee of this. If the data was stored at a more 
granular level, then this
 + * will get a subset of the summary data. The subset will very likely be 
an inaccurate
 + * approximation.
 + *
 + * @param startRow
 + *  A non-null start row. The startRow is used exclusively.
 + * @return this
 + *
 + * @see FileStatistics#getExtra()
 + */
 +SummaryOptions startRow(Text startRow);
 +
 +/**
 + * @param startRow
 + *  UTF-8 encodes startRow. The startRow is used exclusively.
 + * @return this
 + * @see #startRow(Text)
 + */
 +SummaryOptions startRow(CharSequence startRow);
 +
 +/**
 + * Summary data may possibly be stored at a more granular level than the 
entire file. However
 + * there is no guaran

[accumulo] branch main updated (c7b1d85 -> 2ff2618)

2021-02-11 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from c7b1d85  Fix warnings (unused imports, deprecation)
 add fbdbda9  Improve filename extension usage in RFile API (#1917)
 new 2ff2618  Merge remote-tracking branch 'upstream/1.10' into main

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java   | 4 ++--
 .../main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java  | 3 ++-
 .../org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java | 4 
 3 files changed, 8 insertions(+), 3 deletions(-)



[accumulo] branch 1.10 updated: Improve filename extension usage in RFile API (#1917)

2021-02-11 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/1.10 by this push:
 new fbdbda9  Improve filename extension usage in RFile API (#1917)
fbdbda9 is described below

commit fbdbda9c666a989ea5a5b8270f0ca02d4ec30e58
Author: Mike Miller 
AuthorDate: Thu Feb 11 07:32:34 2021 -0500

Improve filename extension usage in RFile API (#1917)

* Add info about extension to RFile API javadoc
* Throw IllegalArgumentException early when a filename that does not end
in the appropriate RFile extension is used in the RFileWriterBuilder.


Co-authored-by: Christopher Tubbs 
---
 core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java   | 4 ++--
 .../main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java  | 3 ++-
 .../org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java | 4 
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java 
b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java
index fed3e35..7ea9b81 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java
@@ -196,14 +196,14 @@ public class RFile {
 
   /**
* This is an intermediate interface in a larger builder pattern. Supports 
setting the required
-   * output sink to write a RFile to.
+   * output sink to write a RFile to. The filename parameter requires the 
".rf" extension.
*
* @since 1.8.0
*/
   public static interface OutputArguments {
 /**
  * @param filename
- *  name of file to write RFile data
+ *  name of file to write RFile data, ending with the ".rf" 
extension
  * @return this
  */
 public WriterFSOptions to(String filename);
diff --git 
a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java 
b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java
index a0703fd..dc02504 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java
@@ -47,6 +47,7 @@ import com.google.common.base.Preconditions;
  * Keys must be appended in sorted order within a locality group.
  * Locality groups must have a mutually exclusive set of column 
families.
  * The default locality group must be started last.
+ * If using RFile.newWriter().to("filename.rf"), the ".rf" extension is 
required.
  * 
  *
  * 
@@ -58,7 +59,7 @@ import com.google.common.base.Preconditions;
  * IterableEntryKey, Value localityGroup2Data = ...
  * IterableEntryKey, Value defaultGroupData = ...
  *
- * try(RFileWriter writer = RFile.newWriter().to(file).build()) {
+ * try(RFileWriter writer = RFile.newWriter().to("filename.rf").build()) {
  *
  *   // Start a locality group before appending data.
  *   writer.startNewLocalityGroup("groupA", "columnFam1", "columnFam2");
diff --git 
a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java
 
b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java
index 4dd7184..d8476eb 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java
@@ -111,6 +111,10 @@ class RFileWriterBuilder implements RFile.OutputArguments, 
RFile.WriterFSOptions
   @Override
   public WriterFSOptions to(String filename) {
 Objects.requireNonNull(filename);
+if (!filename.endsWith(".rf")) {
+  throw new IllegalArgumentException(
+  "Provided filename (" + filename + ") does not end with '.rf'");
+}
 this.out = new OutputArgs(filename);
 return this;
   }



[accumulo] branch main updated (a75dad4 -> 3edd539)

2021-02-10 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from a75dad4  fixes #1909 - test broken by changes in commit 954a55395 
(#1915)
 add 3edd539  Drop debug logs to trace in ZooLock (#1918)

No new revisions were added by this update.

Summary of changes:
 core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooLock.java | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)



[accumulo-testing] branch main updated: Add a Bulk import to randomwalk MultiTable (#134)

2021-02-09 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 689d6d4  Add a Bulk import to randomwalk MultiTable (#134)
689d6d4 is described below

commit 689d6d411e5fda3aeca292656049de1718e949d5
Author: Mike Miller 
AuthorDate: Tue Feb 9 16:48:55 2021 -0500

Add a Bulk import to randomwalk MultiTable (#134)

* Create new BulkImport test in MultiTable for more realistic case
* Tweak MultiTable.xml to drop 20 tables, same as create. This will keep
the number of talbes down when running for long period.
* Also set log4j testing logging to DEBUG
---
 conf/log4j.properties  |   2 +-
 .../testing/randomwalk/multitable/BulkImport.java  | 119 +
 .../randomwalk/multitable/MultiTableFixture.java   |   3 +
 .../resources/randomwalk/modules/MultiTable.xml|  10 +-
 4 files changed, 130 insertions(+), 4 deletions(-)

diff --git a/conf/log4j.properties b/conf/log4j.properties
index 726fb2c..525a6e4 100644
--- a/conf/log4j.properties
+++ b/conf/log4j.properties
@@ -19,7 +19,7 @@ log4j.appender.CA.layout=org.apache.log4j.PatternLayout
 log4j.appender.CA.layout.ConversionPattern=%d{ISO8601} [%c{3}] %-5p: %m%n
 
 log4j.logger.org.apache.accumulo=WARN
-log4j.logger.org.apache.accumulo.testing=INFO
+log4j.logger.org.apache.accumulo.testing=DEBUG
 log4j.logger.org.apache.curator=ERROR
 log4j.logger.org.apache.hadoop=WARN
 log4j.logger.org.apache.hadoop.mapreduce=ERROR
diff --git 
a/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/BulkImport.java
 
b/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/BulkImport.java
new file mode 100644
index 000..4c43b0a
--- /dev/null
+++ 
b/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/BulkImport.java
@@ -0,0 +1,119 @@
+/*
+ * 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.testing.randomwalk.multitable;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.Random;
+import java.util.TreeSet;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.apache.accumulo.core.client.IteratorSetting.Column;
+import org.apache.accumulo.core.client.rfile.RFile;
+import org.apache.accumulo.core.client.rfile.RFileWriter;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.testing.randomwalk.RandWalkEnv;
+import org.apache.accumulo.testing.randomwalk.State;
+import org.apache.accumulo.testing.randomwalk.Test;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.io.Text;
+
+public class BulkImport extends Test {
+
+  public static final int LOTS = 10;
+  public static final int COLS = 10;
+  public static final List COLNAMES = new ArrayList<>();
+  public static final Text CHECK_COLUMN_FAMILY = new Text("cf");
+  static {
+for (int i = 0; i < COLS; i++) {
+  COLNAMES.add(new Column(CHECK_COLUMN_FAMILY, new 
Text(String.format("%03d", i;
+}
+  }
+  public static final Text MARKER_CF = new Text("marker");
+  static final AtomicLong counter = new AtomicLong();
+
+  private static final Value ONE = new Value("1".getBytes());
+
+  /**
+   * Tests both the legacy (deprecated) and new bulk import methods.
+   */
+  @SuppressWarnings({"deprecation", "unchecked"})
+  public void visit(final State state, final RandWalkEnv env, Properties 
props) throws Exception {
+List tables = (List) state.get("tableList");
+
+if (tables.isEmpty()) {
+  log.debug("No tables to ingest into");
+  return;
+}
+
+Random rand = new Random();
+String tableName = tables.get(rand.nextInt(tables.size()));
+
+String uuid = UUID.randomUUID().toString();
+final Path dir = new Path("/tmp/bulk", uuid);
+final Path fail = new Path(dir.toS

[accumulo-website] branch asf-site updated (495569e -> 0db6439)

2021-02-08 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/accumulo-website.git.


from 495569e  Automatic Site Publish by Buildbot
 add 1ecd555  Automatic Site Publish by Buildbot
 add 0db6439  Automatic Site Publish by Buildbot

No new revisions were added by this update.

Summary of changes:
 output/docs/2.x/administration/caching.html|  4 ++-
 output/docs/2.x/administration/erasure-coding.html |  4 ++-
 output/docs/2.x/administration/fate.html   |  4 ++-
 .../docs/2.x/administration/in-depth-install.html  |  4 ++-
 .../2.x/administration/monitoring-metrics.html |  4 ++-
 output/docs/2.x/administration/multivolume.html|  4 ++-
 output/docs/2.x/administration/replication.html|  4 ++-
 output/docs/2.x/administration/scan-executors.html |  4 ++-
 output/docs/2.x/administration/upgrading.html  |  4 ++-
 .../docs/2.x/configuration/client-properties.html  |  4 ++-
 output/docs/2.x/configuration/files.html   |  4 ++-
 output/docs/2.x/configuration/overview.html|  4 ++-
 .../docs/2.x/configuration/server-properties.html  |  4 ++-
 output/docs/2.x/development/development_tools.html |  4 ++-
 output/docs/2.x/development/high_speed_ingest.html |  4 ++-
 output/docs/2.x/development/iterators.html |  4 ++-
 output/docs/2.x/development/mapreduce.html |  4 ++-
 output/docs/2.x/development/proxy.html |  4 ++-
 output/docs/2.x/development/sampling.html  |  4 ++-
 output/docs/2.x/development/spark.html |  4 ++-
 output/docs/2.x/development/summaries.html |  4 ++-
 output/docs/2.x/getting-started/clients.html   |  4 ++-
 output/docs/2.x/getting-started/design.html|  4 ++-
 output/docs/2.x/getting-started/features.html  |  4 ++-
 output/docs/2.x/getting-started/glossary.html  |  4 ++-
 output/docs/2.x/getting-started/quickstart.html| 28 +---
 output/docs/2.x/getting-started/shell.html |  4 ++-
 .../2.x/getting-started/table_configuration.html   |  4 ++-
 output/docs/2.x/getting-started/table_design.html  |  4 ++-
 output/docs/2.x/security/authentication.html   |  4 ++-
 output/docs/2.x/security/authorizations.html   |  4 ++-
 output/docs/2.x/security/kerberos.html |  4 ++-
 output/docs/2.x/security/on-disk-encryption.html   |  4 ++-
 output/docs/2.x/security/overview.html |  4 ++-
 output/docs/2.x/security/permissions.html  |  4 ++-
 output/docs/2.x/security/wire-encryption.html  |  4 ++-
 output/docs/2.x/troubleshooting/advanced.html  |  4 ++-
 output/docs/2.x/troubleshooting/basic.html |  4 ++-
 output/docs/2.x/troubleshooting/performance.html   |  4 ++-
 .../troubleshooting/system-metadata-tables.html|  4 ++-
 output/docs/2.x/troubleshooting/tools.html |  4 ++-
 output/docs/2.x/troubleshooting/tracing.html   |  4 ++-
 output/feed.xml|  4 +--
 output/release/accumulo-2.1.0/index.html   | 37 +-
 output/search_data.json|  6 ++--
 45 files changed, 180 insertions(+), 59 deletions(-)



[accumulo-website] branch main updated: Make 2.x manual landing page more clear (#262)

2021-02-08 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new ca97fed  Make 2.x manual landing page more clear (#262)
ca97fed is described below

commit ca97fedba96f631611789bf3378754b152d73d6a
Author: Mike Miller 
AuthorDate: Mon Feb 8 13:45:17 2021 -0500

Make 2.x manual landing page more clear (#262)

* Modify quickstart.md to have a title for the whole 2.x manual
* Add skip_doc_h1 tag to drop the title as the first header so it
can be different than the navigation link
---
 _docs-2/getting-started/quickstart.md | 20 ++--
 _layouts/docs-2.html  |  2 ++
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/_docs-2/getting-started/quickstart.md 
b/_docs-2/getting-started/quickstart.md
index db324ab..0fd44db 100644
--- a/_docs-2/getting-started/quickstart.md
+++ b/_docs-2/getting-started/quickstart.md
@@ -1,22 +1,29 @@
 ---
-title: Quick Start
+title: Setup
 category: getting-started
 order: 1
+skip_doc_h1: true
 ---
+# User Manual (2.x)
 
-This quick start provides basic instructions for installing and running 
Accumulo. For detailed instructions,
-see the [in-depth installation guide][in-depth].
+Starting with Accumulo 2.0, the user manual now lives on the website as a 
series of web pages. Previously, it was one large 
+pdf document that was only generated during a release. The user manual can now 
be updated very quickly and indexed 
+for searching across many webpages.
 
-## Consider using automated tools
+The manual can now be 
+searched using the [Search link][search] at the top of the website or 
navigated by clicking the links to the left. If you are new 
+to Accumulo, follow the instructions below to get started.  For detailed 
instructions, see the [in-depth installation guide][in-depth].
+
+## Setup for testing or development
 
 If you are setting up Accumulo for **testing or development,** consider using 
the following tools:
 
 * [Uno] sets up Accumulo on a single machine for development
 * [Muchos] sets up Accumulo on a cluster (optionally launched in Amazon EC2 
and Microsoft Azure VM)
 
-If you are setting up Accumulo for a **production** environment, follow the 
instructions in this quick start.
+If you are setting up Accumulo for a **production** environment, follow the 
instructions below.
 
-## Install Accumulo
+## Setup for Production
 
 Either [download] or [build] a binary distribution of Accumulo from source 
code and
 unpack as follows.
@@ -200,6 +207,7 @@ When finished, use the following commands to stop Accumulo:
 * Stop Accumulo service: `accumulo-service tserver stop`
 * Stop Accumulo cluster: `accumulo-cluster stop`
 
+[search]: {{ site.baseurl }}/search
 [in-depth]: {% durl administration/in-depth-install %}
 [download]: {{ site.baseurl }}/downloads
 [build]: https://github.com/apache/accumulo/blob/main/README.md#building
diff --git a/_layouts/docs-2.html b/_layouts/docs-2.html
index 5c10475..262d568 100644
--- a/_layouts/docs-2.html
+++ b/_layouts/docs-2.html
@@ -38,10 +38,12 @@ skiph1fortitle: true
 Accumulo {{ page.version }} Documentation  {{ 
page.category | capitalize | replace: "-", " " }}  {{ 
page.title }}
 {% endif %}
 
+{% unless page.skip_doc_h1 %}
 
   {{ page.title }}
   https://github.com/apache/accumulo-website/edit/main/{{ page.path }}" 
role="button"> Edit this 
page
 
+{% endunless %}
 
 {{ content }}
 



[accumulo] branch main updated (c00fb38 -> 2bc2415)

2021-02-08 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from c00fb38  Fix log file names in minicluster and two broken ITs. (#1914)
 add daa6985  Add a Bulk import to randomwalk MultiTable (#1911)
 add 2bc2415  Merge remote-tracking branch 'upstream/1.10' into main

No new revisions were added by this update.

Summary of changes:



[accumulo] branch 1.10 updated: Add a Bulk import to randomwalk MultiTable (#1911)

2021-02-08 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/1.10 by this push:
 new daa6985  Add a Bulk import to randomwalk MultiTable (#1911)
daa6985 is described below

commit daa6985409618e6242cbaf693a908d94abd55d9e
Author: Mike Miller 
AuthorDate: Mon Feb 8 12:24:15 2021 -0500

Add a Bulk import to randomwalk MultiTable (#1911)

* Create new BulkImport test in MultiTable for more realistic case
* Other improvements to Randomwalk MultiTable
* Modify randomwalk.conf.example to work with Uno by default
---
 .../test/randomwalk/multitable/BulkImport.java | 115 +
 .../randomwalk/multitable/MultiTableFixture.java   |   3 +
 .../test/randomwalk/multitable/OfflineTable.java   |  10 +-
 test/system/randomwalk/conf/modules/MultiTable.xml |   8 +-
 .../system/randomwalk/conf/randomwalk.conf.example |   2 +-
 5 files changed, 131 insertions(+), 7 deletions(-)

diff --git 
a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/BulkImport.java
 
b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/BulkImport.java
new file mode 100644
index 000..1dc9316
--- /dev/null
+++ 
b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/BulkImport.java
@@ -0,0 +1,115 @@
+/*
+ * 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.randomwalk.multitable;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.Random;
+import java.util.TreeSet;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.apache.accumulo.core.client.IteratorSetting.Column;
+import org.apache.accumulo.core.conf.AccumuloConfiguration;
+import org.apache.accumulo.core.conf.DefaultConfiguration;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.file.FileOperations;
+import org.apache.accumulo.core.file.FileSKVWriter;
+import org.apache.accumulo.core.file.rfile.RFile;
+import org.apache.accumulo.test.randomwalk.Environment;
+import org.apache.accumulo.test.randomwalk.State;
+import org.apache.accumulo.test.randomwalk.Test;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.io.Text;
+
+public class BulkImport extends Test {
+
+  public static final int LOTS = 10;
+  public static final int COLS = 10;
+  public static final List COLNAMES = new ArrayList<>();
+  public static final Text CHECK_COLUMN_FAMILY = new Text("cf");
+  static {
+for (int i = 0; i < COLS; i++) {
+  COLNAMES.add(new Column(CHECK_COLUMN_FAMILY, new 
Text(String.format("%03d", i;
+}
+  }
+  public static final Text MARKER_CF = new Text("marker");
+  static final AtomicLong counter = new AtomicLong();
+
+  private static final Value ONE = new Value("1".getBytes());
+
+  public void visit(final State state, final Environment env, Properties 
props) throws Exception {
+@SuppressWarnings("unchecked")
+List tables = (List) state.get("tableList");
+
+if (tables.isEmpty()) {
+  log.debug("No tables to ingest into");
+  return;
+}
+
+Random rand = new Random();
+String tableName = tables.get(rand.nextInt(tables.size()));
+
+String uuid = UUID.randomUUID().toString();
+final Path dir = new Path("/tmp", "bulk_" + uuid);
+final Path fail = new Path(dir.toString() + "_fail");
+final DefaultConfiguration defaultConfiguration =
+AccumuloConfiguration.getDefaultConfiguration();
+final FileSystem fs = (FileSystem) state.get("fs");
+fs.mkdirs(fail);
+final int parts = rand.nextInt(10) + 1;
+
+TreeSet rows = new TreeSet<>();
+for (int i = 0; i < LOTS; i++)
+  rows.add(uuid + String.format("__%05d", i));
+
+String markerColumnQualifier = String.format("%07d", 
counter.incremen

[accumulo] branch main updated (8ed8ff6 -> fd001c9)

2021-02-01 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 8ed8ff6  Improvements to BulkImportCacheCleaner (#1890)
 add fd001c9  Revert "Add check to not flush when table is being deleted. 
(#1887)"

No new revisions were added by this update.

Summary of changes:
 .../src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java| 6 --
 1 file changed, 6 deletions(-)



[accumulo] branch main updated (b8dac78 -> 8ed8ff6)

2021-02-01 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from b8dac78  Add check to not flush when table is being deleted. (#1887)
 add 8ed8ff6  Improvements to BulkImportCacheCleaner (#1890)

No new revisions were added by this update.

Summary of changes:
 .../apache/accumulo/server/zookeeper/TransactionWatcher.java | 12 +++-
 .../accumulo/tserver/tablet/BulkImportCacheCleaner.java  |  8 ++--
 2 files changed, 13 insertions(+), 7 deletions(-)



[accumulo] branch main updated (6af856b -> b8dac78)

2021-02-01 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 6af856b  Merge remote-tracking branch 'upstream/1.10' into main
 add b8dac78  Add check to not flush when table is being deleted. (#1887)

No new revisions were added by this update.

Summary of changes:
 .../src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java| 6 ++
 1 file changed, 6 insertions(+)



[accumulo] branch main updated (ecddf35 -> 6af856b)

2021-01-27 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from ecddf35  Merge remote-tracking branch 'upstream/1.10' into main
 add ed97eac  Make UnloadTabletHandler log before waiting (#1881)
 new 6af856b  Merge remote-tracking branch 'upstream/1.10' into main

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/main/java/org/apache/accumulo/tserver/UnloadTabletHandler.java   | 1 +
 1 file changed, 1 insertion(+)



[accumulo] 01/01: Merge remote-tracking branch 'upstream/1.10' into main

2021-01-27 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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

commit 6af856b38bb57f49418547a8b9c262c66a1fe31e
Merge: ecddf35 ed97eac
Author: Mike Miller 
AuthorDate: Wed Jan 27 08:20:57 2021 -0500

Merge remote-tracking branch 'upstream/1.10' into main

 .../src/main/java/org/apache/accumulo/tserver/UnloadTabletHandler.java   | 1 +
 1 file changed, 1 insertion(+)

diff --cc 
server/tserver/src/main/java/org/apache/accumulo/tserver/UnloadTabletHandler.java
index e3978f0,000..798d7b4
mode 100644,00..100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/UnloadTabletHandler.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/UnloadTabletHandler.java
@@@ -1,141 -1,0 +1,142 @@@
 +/*
 + * 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.tserver;
 +
 +import static java.util.concurrent.TimeUnit.MILLISECONDS;
 +import static java.util.concurrent.TimeUnit.NANOSECONDS;
 +
 +import org.apache.accumulo.core.conf.Property;
 +import org.apache.accumulo.core.dataImpl.KeyExtent;
 +import org.apache.accumulo.core.master.thrift.TabletLoadState;
 +import org.apache.accumulo.core.metadata.TServerInstance;
 +import org.apache.accumulo.core.metadata.TabletLocationState;
 +import 
org.apache.accumulo.core.metadata.TabletLocationState.BadLocationStateException;
 +import org.apache.accumulo.core.tabletserver.thrift.TUnloadTabletGoal;
 +import org.apache.accumulo.server.master.state.DistributedStoreException;
 +import org.apache.accumulo.server.master.state.TabletStateStore;
 +import org.apache.accumulo.tserver.mastermessage.TabletStatusMessage;
 +import org.apache.accumulo.tserver.tablet.Tablet;
 +import org.apache.zookeeper.KeeperException;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
 +
 +class UnloadTabletHandler implements Runnable {
 +  private static final Logger log = 
LoggerFactory.getLogger(UnloadTabletHandler.class);
 +  private final KeyExtent extent;
 +  private final TUnloadTabletGoal goalState;
 +  private final long requestTimeSkew;
 +  private final TabletServer server;
 +
 +  public UnloadTabletHandler(TabletServer server, KeyExtent extent, 
TUnloadTabletGoal goalState,
 +  long requestTime) {
 +this.extent = extent;
 +this.goalState = goalState;
 +this.server = server;
 +this.requestTimeSkew = requestTime - 
MILLISECONDS.convert(System.nanoTime(), NANOSECONDS);
 +  }
 +
 +  @Override
 +  public void run() {
 +
 +Tablet t = null;
 +
 +synchronized (server.unopenedTablets) {
 +  if (server.unopenedTablets.contains(extent)) {
 +server.unopenedTablets.remove(extent);
 +// enqueueMasterMessage(new TabletUnloadedMessage(extent));
 +return;
 +  }
 +}
 +synchronized (server.openingTablets) {
 +  while (server.openingTablets.contains(extent)) {
 +try {
++  log.info("Waiting for tablet {} to finish opening before 
unloading.", extent);
 +  server.openingTablets.wait();
 +} catch (InterruptedException e) {}
 +  }
 +}
 +synchronized (server.onlineTablets) {
 +  if (server.onlineTablets.snapshot().containsKey(extent)) {
 +t = server.onlineTablets.snapshot().get(extent);
 +  }
 +}
 +
 +if (t == null) {
 +  // Tablet has probably been recently unloaded: repeated master
 +  // unload request is crossing the successful unloaded message
 +  if (!server.recentlyUnloadedCache.containsKey(extent)) {
 +log.info("told to unload tablet that was not being served {}", 
extent);
 +server.enqueueMasterMessage(
 +new 
TabletStatusMessage(TabletLoadState.UNLOAD_FAILURE_NOT_SERVING, extent));
 +  }
 +  return;
 +}
 +
 +try {
 +  t.close(!goalState.equals(TUnloadTabletGoal.DELETED));
 +} catch (Exception e) {
 +
 +  if ((t.isClosing() || t.isClosed()) && e instanceof 
IllegalStateException) {
 +log.debug("Failed to unload tablet {}... it was already closing or 
closed : {}", extent,
 +e.g

[accumulo] branch 1.10 updated: Make UnloadTabletHandler log before waiting (#1881)

2021-01-27 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/1.10 by this push:
 new ed97eac  Make UnloadTabletHandler log before waiting (#1881)
ed97eac is described below

commit ed97eac76da47f711f8f901810cc9d4d8fb27214
Author: Mike Miller 
AuthorDate: Wed Jan 27 08:09:54 2021 -0500

Make UnloadTabletHandler log before waiting (#1881)

* If a tablet is in the process of being opened, the UnloadTabletHandler
will wait for a tablet to be removed from the list before proceeding
with the unload.  This could take a long time so log info before waiting.
* Fix Typo in UnloadTabletHandler
---
 .../src/main/java/org/apache/accumulo/tserver/TabletServer.java| 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
index 73bc58f..e141de9 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
@@ -2220,6 +2220,7 @@ public class TabletServer extends AccumuloServerContext 
implements Runnable {
   synchronized (openingTablets) {
 while (openingTablets.contains(extent)) {
   try {
+log.info("Waiting for tablet {} to finish opening before 
unloading.", extent);
 openingTablets.wait();
   } catch (InterruptedException e) {}
 }
@@ -2246,7 +2247,7 @@ public class TabletServer extends AccumuloServerContext 
implements Runnable {
   } catch (Throwable e) {
 
 if ((t.isClosing() || t.isClosed()) && e instanceof 
IllegalStateException) {
-  log.debug("Failed to unload tablet {} ... it was alread closing or 
closed : {}", extent,
+  log.debug("Failed to unload tablet {} ... it was already closing or 
closed : {}", extent,
   e.getMessage());
 } else {
   log.error("Failed to close tablet {}... Aborting migration", extent, 
e);



[accumulo] branch main updated (300c933 -> ecddf35)

2021-01-26 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 300c933  Deprecate/replace 'master.*' properties with 'manager.*'. 
(fixes #1640) (#1873)
 add 48e483b  Add tserver to badservers instead of dropping. Fixes #1775
 new ecddf35  Merge remote-tracking branch 'upstream/1.10' into main

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:



[accumulo] 01/01: Merge remote-tracking branch 'upstream/1.10' into main

2021-01-26 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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

commit ecddf35a9e84be668caf0837166abc07ff67594a
Merge: 300c933 48e483b
Author: Mike Miller 
AuthorDate: Tue Jan 26 09:40:56 2021 -0500

Merge remote-tracking branch 'upstream/1.10' into main

* git merge upstream/1.10 -sours




[accumulo] branch 1.10 updated (0187567 -> 48e483b)

2021-01-26 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a change to branch 1.10
in repository https://gitbox.apache.org/repos/asf/accumulo.git.


from 0187567  Re-throw exception from LoggingRunnable (re #1808)
 add 48e483b  Add tserver to badservers instead of dropping. Fixes #1775

No new revisions were added by this update.

Summary of changes:
 server/master/src/main/java/org/apache/accumulo/master/Master.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



[accumulo] branch main updated (2db6d44 -> 9fdfaff)

2021-01-26 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 2db6d44  Move tests using curator testing server to more general 
package. (#1882)
 add 9fdfaff  Add tserver to badservers instead of dropping. Fixes #1775 
(#1878)

No new revisions were added by this update.

Summary of changes:
 server/manager/src/main/java/org/apache/accumulo/master/Master.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



[accumulo-website] branch asf-site updated (44f239a -> 495569e)

2021-01-25 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/accumulo-website.git.


from 44f239a  Automatic Site Publish by Buildbot
 add 9022d1b  Automatic Site Publish by Buildbot
 add 495569e  Automatic Site Publish by Buildbot

No new revisions were added by this update.

Summary of changes:
 output/feed.xml   |  4 +--
 output/people/index.html  | 16 ++---
 output/tour/authorizations/index.html | 67 ---
 3 files changed, 44 insertions(+), 43 deletions(-)



[accumulo-website] branch main updated: Update Authorizations.md and People.md (#260)

2021-01-25 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 52301d9  Update Authorizations.md and People.md (#260)
52301d9 is described below

commit 52301d9e789512d575625839f04147764dc40573
Author: slackwinner <50567198+slackwin...@users.noreply.github.com>
AuthorDate: Mon Jan 25 11:25:58 2021 -0500

Update Authorizations.md and People.md (#260)

* Applied a few minor changes in Authorizations.md file to fix formatting 
issue on Accumulo website. In addition, added my name to the people.md to 
receive credit for #255.
---
 pages/people.md|  1 +
 tour/authorizations.md | 15 ---
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/pages/people.md b/pages/people.md
index 65af7ad..e61afb6 100644
--- a/pages/people.md
+++ b/pages/people.md
@@ -85,6 +85,7 @@ GitHub also has a [contributor list][github-contributors] 
based on commits.
 | Christian Rohling   | [Endgame][ENDGAME] 
   | [ET][ET]  |
 | Craig Scheiderer| [Arctic Slope Regional Corp.][ASRC]
   | [ET][ET]  |
 | Damon Brown | [Tetra Concepts LLC][TETRA]
   | [ET][ET]  |
+| Dane Magbuhos   |
   | [ET][ET]  |
 | Dave Wang   | [Cloudera][CLOUDERA]   
   | [PT][PT]  |
 | David M. Lyle   |
   |   |
 | David Protzman  |
   |   |
diff --git a/tour/authorizations.md b/tour/authorizations.md
index 99383da..f21e7aa 100644
--- a/tour/authorizations.md
+++ b/tour/authorizations.md
@@ -16,7 +16,8 @@ For example:
 
 We now want to secure our secret identities of the heroes so that only users 
with the proper authorizations can read their names.
 
-1. Using the code from the previous exercise, add the following to the 
beginning of the _exercise_ method.
+1\. Using the code from the previous exercise, add the following to the 
beginning of the _exercise_ method.
+
 ```java
   // Create a "secretId" authorization & visibility
   final String secretId = "secretId";
@@ -28,25 +29,25 @@ We now want to secure our secret identities of the heroes 
so that only users wit
   client.securityOperations().changeUserAuthorizations("commissioner", auths);
   client.securityOperations().grantTablePermission("commissioner", "GothamPD", 
TablePermission.READ);
 ```
-
-2. The [Mutation] API allows you to set the `secretId` visibility on a column. 
Find the proper method for setting a column visibility in
+2\. The [Mutation] API allows you to set the `secretId` visibility on a 
column. Find the proper method for setting a column visibility in
 the Mutation API and modify the code so the `colVis` variable created above 
secures the "name" columns.
 
-3. Build and run.  What data do you see?
+3\. Build and run.  What data do you see?
 * You should see all of the data except the secret identities of Batman and 
Robin. This is because the `Scanner` was created from the root user which 
doesn't have the `secretId` authorization.
 * Replace the `Authorizations.EMPTY` in the Scanner with the `auths` variable 
created above and run it again.
 * This should result in an error since the root user doesn't have the 
authorizations we tried to pass to the Scanner.
 
-4. Use the following to create a client for the "commissioner" using the 
[Accumulo] entry point.
+4\. Use the following to create a client for the "commissioner" using the 
[Accumulo] entry point.
+
 ```java
   try (AccumuloClient commishClient = 
Accumulo.newClient().from(client.properties()).as("commissioner", 
"gordonrocks").build()) {
 // Insert your code here
   }
 ```
+5\. Using the commissioner client, create a Scanner with the authorizations 
needed to view the secret identities.
 
-5. Using the commissioner client, create a Scanner with the authorizations 
needed to view the secret identities.
+6\. Build and run.  You should see all the rows in the GothamPD table printed, 
including these secured key/value pairs:
 
-6. Build and run.  You should see all the rows in the GothamPD table printed, 
including these secured key/value pairs:
 ```commandline
 Key : id0001 hero:name [secretId] 1511900180231 false Value : Bruce 
Wayne
 Key : id0002 hero:name [secretId] 1511900180231 false Value : Dick 
Grayson



[accumulo] branch main updated: Add cast checks to compaction cancel method. Fixes #1875 (#1876)

2021-01-21 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 06251db  Add cast checks to compaction cancel method. Fixes #1875 
(#1876)
06251db is described below

commit 06251dba99a8655c0db6786866447a6995976eb2
Author: Mike Miller 
AuthorDate: Thu Jan 21 13:22:21 2021 -0500

Add cast checks to compaction cancel method. Fixes #1875 (#1876)
---
 .../accumulo/tserver/compactions/CompactionExecutor.java   | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/compactions/CompactionExecutor.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/compactions/CompactionExecutor.java
index a743509..21cf147 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/compactions/CompactionExecutor.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/compactions/CompactionExecutor.java
@@ -117,7 +117,19 @@ public class CompactionExecutor {
 // Occasionally clean the queue of canceled tasks that have hung 
around because of their low
 // priority. This runs periodically, instead of every time something 
is canceled, to avoid
 // hurting performance.
-queue.removeIf(runnable -> ((CompactionTask) runnable).getStatus() == 
Status.CANCELED);
+queue.removeIf(runnable -> {
+  CompactionTask compactionTask;
+  if (runnable instanceof TraceRunnable) {
+runnable = ((TraceRunnable) runnable).getRunnable();
+  }
+  if (runnable instanceof CompactionTask) {
+compactionTask = (CompactionTask) runnable;
+  } else {
+throw new IllegalArgumentException(
+"Unknown runnable type " + runnable.getClass().getName());
+  }
+  return compactionTask.getStatus() == Status.CANCELED;
+});
   }
 
   return canceled;



[accumulo] branch main updated (3e23ad8 -> 9f549b2)

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

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


from 3e23ad8  Fixes #1665 use old compaction thread pool config if set 
(#1861)
 add 076f1b3  Add check for finished to LogSorter (#1863)
 new 9f549b2  Merge remote-tracking branch 'upstream/1.10' into main

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/main/java/org/apache/accumulo/tserver/log/LogSorter.java   | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)



[accumulo] 01/01: Merge remote-tracking branch 'upstream/1.10' into main

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

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

commit 9f549b2fe19666138290913f5660f8bcc83e9f51
Merge: 3e23ad8 076f1b3
Author: Mike Miller 
AuthorDate: Tue Jan 12 14:50:10 2021 -0500

Merge remote-tracking branch 'upstream/1.10' into main

 Conflicts:

server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java

 .../src/main/java/org/apache/accumulo/tserver/log/LogSorter.java   | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --cc 
server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java
index a9c47b35,4d43da0..1a8ac2f
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/LogSorter.java
@@@ -107,7 -109,13 +106,13 @@@ public class LogSorter 
String formerThreadName = Thread.currentThread().getName();
int part = 0;
try {
+ // check for finished first since another thread may have already 
done the sort
+ if (fs.exists(SortedLogState.getFinishedMarkerPath(destPath))) {
+   log.debug("Sorting already finished at {}", destPath);
+   return;
+ }
  
 -log.info("Copying " + srcPath + " to " + destPath);
++log.info("Copying {} to {}", srcPath, destPath);
  // the following call does not throw an exception if the file/dir 
does not exist
  fs.deleteRecursively(new Path(destPath));
  



[accumulo] branch 1.10 updated (e6bba1c -> 076f1b3)

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

mmiller pushed a change to branch 1.10
in repository https://gitbox.apache.org/repos/asf/accumulo.git.


from e6bba1c  Merge pull request #1860 from brianloss/1.10
 add 076f1b3  Add check for finished to LogSorter (#1863)

No new revisions were added by this update.

Summary of changes:
 .../src/main/java/org/apache/accumulo/tserver/log/LogSorter.java   | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)



[accumulo-testing] branch main updated: Exclude log4j2 jars from shade plugin (#133)

2021-01-08 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new fed6712  Exclude log4j2 jars from shade plugin (#133)
fed6712 is described below

commit fed67123411e29decc5ebe17181e280bc549bd88
Author: Mike Miller 
AuthorDate: Fri Jan 8 08:15:28 2021 -0500

Exclude log4j2 jars from shade plugin (#133)
---
 pom.xml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pom.xml b/pom.xml
index 510bc4e..19f3814 100644
--- a/pom.xml
+++ b/pom.xml
@@ -356,6 +356,8 @@
 
   org.apache.accumulo:accumulo-native
   org.apache.hadoop:*
+  
org.apache.logging.log4j:log4j-api:jar:
+  
org.apache.logging.log4j:log4j-1.2-api:jar:
 
   
   



[accumulo] branch main updated (ede736f -> 0aff4d2)

2021-01-05 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from ede736f  Remove unneeded resource warning suppressions (#1852)
 add 0aff4d2  Get proper value in DefaultCompactionPlanner. Fixes #1853 
(#1854)

No new revisions were added by this update.

Summary of changes:
 .../apache/accumulo/core/spi/compaction/DefaultCompactionPlanner.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



[accumulo-testing] branch main updated: Fix warning in randomwalk Init

2021-01-05 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 02a39c5  Fix warning in randomwalk Init
02a39c5 is described below

commit 02a39c518bd40748949d0412bc7698b964d8c910
Author: Mike Miller 
AuthorDate: Tue Jan 5 07:48:13 2021 -0500

Fix warning in randomwalk Init

* Fix redundant cast to java.util.Random warning in randomwalk Init
---
 .../java/org/apache/accumulo/testing/randomwalk/conditional/Init.java  | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git 
a/src/main/java/org/apache/accumulo/testing/randomwalk/conditional/Init.java 
b/src/main/java/org/apache/accumulo/testing/randomwalk/conditional/Init.java
index 2698809..acc6e98 100644
--- a/src/main/java/org/apache/accumulo/testing/randomwalk/conditional/Init.java
+++ b/src/main/java/org/apache/accumulo/testing/randomwalk/conditional/Init.java
@@ -19,7 +19,6 @@ package org.apache.accumulo.testing.randomwalk.conditional;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Properties;
-import java.util.Random;
 import java.util.TreeSet;
 
 import org.apache.accumulo.core.client.ConditionalWriter;
@@ -53,7 +52,7 @@ public class Init extends Test {
 for (int i = 0; i < numBanks; i++)
   banks.add(i);
 // shuffle for case when multiple threads are adding banks
-Collections.shuffle(banks, (Random) state.getRandom());
+Collections.shuffle(banks, state.getRandom());
 
 ConditionalWriter cw = (ConditionalWriter) state.get("cw");
 



[accumulo] branch main updated: Create listtablets shell command. Closes #1317 (#1821)

2021-01-04 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 376910e  Create listtablets shell command. Closes #1317 (#1821)
376910e is described below

commit 376910eb26e51d7361f3852705a954ad998e4c6b
Author: Mike Miller 
AuthorDate: Mon Jan 4 15:16:08 2021 -0500

Create listtablets shell command. Closes #1317 (#1821)

* New command for debugging tablets called listtablets
* Added getLiveTServers() to TabletMetadata for generating a list of
tservers that currently have a lock in ZK, similar to master.
* The list of live tservers is passed to TabletMetadata in order to get
the current state of a tablet
* Command will print one line for every tablet in a table
* Created TabletMetadataIT for testing getLiveTServers()


Co-authored-by: EdColeman 
---
 .../core/metadata/schema/TabletMetadata.java   |  48 +++
 .../main/java/org/apache/accumulo/shell/Shell.java |   8 +-
 .../shell/commands/ListTabletsCommand.java | 447 +
 .../shell/commands/ListTabletsCommandTest.java | 193 +
 .../accumulo/test/functional/TabletMetadataIT.java |  78 
 5 files changed, 771 insertions(+), 3 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/metadata/schema/TabletMetadata.java
 
b/core/src/main/java/org/apache/accumulo/core/metadata/schema/TabletMetadata.java
index 8be6cbd..1286fce 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/metadata/schema/TabletMetadata.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/metadata/schema/TabletMetadata.java
@@ -18,6 +18,7 @@
  */
 package org.apache.accumulo.core.metadata.schema;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
 import static 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.SuspendLocationColumn;
 import static 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.COMPACT_QUAL;
 import static 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.DIRECTORY_QUAL;
@@ -29,18 +30,22 @@ import static 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSec
 
 import java.util.Collection;
 import java.util.EnumSet;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.OptionalLong;
 import java.util.Set;
 import java.util.SortedMap;
 import java.util.function.Function;
 
+import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.client.RowIterator;
 import org.apache.accumulo.core.client.Scanner;
+import org.apache.accumulo.core.clientImpl.ClientContext;
 import org.apache.accumulo.core.data.ByteSequence;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Range;
@@ -65,7 +70,12 @@ import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.Se
 import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.TabletColumnFamily;
 import org.apache.accumulo.core.tabletserver.log.LogEntry;
 import org.apache.accumulo.core.util.HostAndPort;
+import org.apache.accumulo.core.util.ServerServices;
+import org.apache.accumulo.fate.zookeeper.ZooCache;
+import org.apache.accumulo.fate.zookeeper.ZooLock;
 import org.apache.hadoop.io.Text;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
@@ -75,6 +85,7 @@ import com.google.common.collect.ImmutableSortedMap;
 import com.google.common.collect.Iterators;
 
 public class TabletMetadata {
+  private static final Logger log = 
LoggerFactory.getLogger(TabletMetadata.class);
 
   private TableId tableId;
   private Text prevEndRow;
@@ -435,4 +446,41 @@ public class TabletMetadata {
 te.fetchedCols = EnumSet.of(ColumnType.PREV_ROW);
 return te;
   }
+
+  /**
+   * Get the tservers that are live from ZK. Live servers will have a valid 
ZooLock. This method was
+   * pulled from org.apache.accumulo.server.master.LiveTServerSet
+   */
+  public static synchronized Set 
getLiveTServers(ClientContext context) {
+final Set liveServers = new HashSet<>();
+
+final String path = context.getZooKeeperRoot() + Constants.ZTSERVERS;
+
+for (String child : context.getZooCache().getChildren(path)) {
+  checkServer(context, path, child).ifPresent(liveServers::add);
+}
+log.trace("Found {} live tservers at ZK path: {}", liveServers.size(), 
path);
+
+return liveServers;
+  }
+
+  /**
+   * Check for tserver ZooLock at the ZK location. Return Optional containing 
TServerInstance if a
+   * valid Zoolock exists.
+   */
+  private static Optional checkServ

[accumulo] branch 1.10 updated: Reduce log level of replication offline retries (#1843)

2020-12-30 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/1.10 by this push:
 new 6bf3f40  Reduce log level of replication offline retries (#1843)
6bf3f40 is described below

commit 6bf3f406481a392c5bcffc15d44ccdfd52c2b577
Author: Mike Miller 
AuthorDate: Wed Dec 30 07:10:41 2020 -0500

Reduce log level of replication offline retries (#1843)

* Reduce logging level to trace of retries when replication is offline
* User can easily see if repl table is online through monitor, no need
to keep spamming logs when it is offline
---
 .../org/apache/accumulo/master/replication/FinishedWorkUpdater.java   | 4 ++--
 .../accumulo/master/replication/RemoveCompleteReplicationRecords.java | 2 +-
 .../org/apache/accumulo/master/replication/ReplicationDriver.java | 2 +-
 .../main/java/org/apache/accumulo/master/replication/WorkDriver.java  | 2 +-
 .../main/java/org/apache/accumulo/master/replication/WorkMaker.java   | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git 
a/server/master/src/main/java/org/apache/accumulo/master/replication/FinishedWorkUpdater.java
 
b/server/master/src/main/java/org/apache/accumulo/master/replication/FinishedWorkUpdater.java
index 4495aae..01e89f2 100644
--- 
a/server/master/src/main/java/org/apache/accumulo/master/replication/FinishedWorkUpdater.java
+++ 
b/server/master/src/main/java/org/apache/accumulo/master/replication/FinishedWorkUpdater.java
@@ -62,10 +62,10 @@ public class FinishedWorkUpdater implements Runnable {
 
   @Override
   public void run() {
-log.debug("Looking for finished replication work");
+log.trace("Looking for finished replication work");
 
 if (!ReplicationTable.isOnline(conn)) {
-  log.debug("Replication table is not yet online, will retry");
+  log.trace("Replication table is not yet online, will retry");
   return;
 }
 
diff --git 
a/server/master/src/main/java/org/apache/accumulo/master/replication/RemoveCompleteReplicationRecords.java
 
b/server/master/src/main/java/org/apache/accumulo/master/replication/RemoveCompleteReplicationRecords.java
index 2d5f431..efa6fc4 100644
--- 
a/server/master/src/main/java/org/apache/accumulo/master/replication/RemoveCompleteReplicationRecords.java
+++ 
b/server/master/src/main/java/org/apache/accumulo/master/replication/RemoveCompleteReplicationRecords.java
@@ -74,7 +74,7 @@ public class RemoveCompleteReplicationRecords implements 
Runnable {
 throw new AssertionError("Inconceivable; an exception should have been"
 + " thrown, but 'bs' or 'bw' was null instead");
 } catch (ReplicationTableOfflineException e) {
-  log.debug("Not attempting to remove complete replication records as the"
+  log.trace("Not attempting to remove complete replication records as the"
   + " table ({}) isn't yet online", ReplicationTable.NAME);
   return;
 }
diff --git 
a/server/master/src/main/java/org/apache/accumulo/master/replication/ReplicationDriver.java
 
b/server/master/src/main/java/org/apache/accumulo/master/replication/ReplicationDriver.java
index 9ed4409..57a7adc 100644
--- 
a/server/master/src/main/java/org/apache/accumulo/master/replication/ReplicationDriver.java
+++ 
b/server/master/src/main/java/org/apache/accumulo/master/replication/ReplicationDriver.java
@@ -118,7 +118,7 @@ public class ReplicationDriver extends Daemon {
 
   // Sleep for a bit
   long sleepMillis = 
conf.getTimeInMillis(Property.MASTER_REPLICATION_SCAN_INTERVAL);
-  log.debug("Sleeping for {}ms before re-running", sleepMillis);
+  log.trace("Sleeping for {}ms before re-running", sleepMillis);
   try {
 Thread.sleep(sleepMillis);
   } catch (InterruptedException e) {
diff --git 
a/server/master/src/main/java/org/apache/accumulo/master/replication/WorkDriver.java
 
b/server/master/src/main/java/org/apache/accumulo/master/replication/WorkDriver.java
index dabfc79..785addb 100644
--- 
a/server/master/src/main/java/org/apache/accumulo/master/replication/WorkDriver.java
+++ 
b/server/master/src/main/java/org/apache/accumulo/master/replication/WorkDriver.java
@@ -105,7 +105,7 @@ public class WorkDriver extends Daemon {
   }
 
   long sleepTime = 
conf.getTimeInMillis(Property.REPLICATION_WORK_ASSIGNMENT_SLEEP);
-  log.debug("Sleeping {} ms before next work assignment", sleepTime);
+  log.trace("Sleeping {} ms before next work assignment", sleepTime);
   sleepUninterruptibly(sleepTime, TimeUnit.MILLISECONDS);
 
   // After each loop, make sure that the WorkAssigner implementation 
didn't change
diff --git 
a/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java
 
b/server/master/src/ma

[accumulo-website] branch asf-site updated (ffca8f2 -> 18c4baf)

2020-12-09 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/accumulo-website.git.


from ffca8f2  Automatic Site Publish by Buildbot
 add 18c4baf  Automatic Site Publish by Buildbot

No new revisions were added by this update.

Summary of changes:
 output/feed.xml|  4 +-
 output/release/accumulo-1.10.0/index.html  |  4 +-
 .../index.html | 67 --
 output/release/accumulo-2.0.0-alpha-1/index.html   |  4 +-
 output/release/accumulo-2.0.0/index.html   |  4 ++
 .../{accumulo-1.3.6 => accumulo-2.0.1}/index.html  | 39 -
 output/release/index.html  | 22 +++
 output/search_data.json| 16 ++
 8 files changed, 121 insertions(+), 39 deletions(-)
 copy output/release/{accumulo-2.0.0-alpha-1 => accumulo-1.10.1}/index.html 
(74%)
 copy output/release/{accumulo-1.3.6 => accumulo-2.0.1}/index.html (84%)



[accumulo-website] branch main updated: Create drafts for 1.10.1 and 2.0.1

2020-12-09 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 1c67ee8  Create drafts for 1.10.1 and 2.0.1
1c67ee8 is described below

commit 1c67ee89cb1cd553e012bfbddf89d01a62392254
Author: Mike Miller 
AuthorDate: Wed Dec 9 10:44:05 2020 -0500

Create drafts for 1.10.1 and 2.0.1
---
 _posts/release/2020-12-09-accumulo-1.10.1.md | 54 
 _posts/release/2020-12-09-accumulo-2.0.1.md  | 27 ++
 2 files changed, 81 insertions(+)

diff --git a/_posts/release/2020-12-09-accumulo-1.10.1.md 
b/_posts/release/2020-12-09-accumulo-1.10.1.md
new file mode 100644
index 000..f8370bf
--- /dev/null
+++ b/_posts/release/2020-12-09-accumulo-1.10.1.md
@@ -0,0 +1,54 @@
+---
+title: Apache Accumulo 1.10.1
+sortableversion: '01.10.01'
+LTM: true
+draft: true
+---
+
+## About
+
+Apache Accumulo 1.10.1 is a bug fix release of the 1.10 LTM release line.
+
+This release contains contributions from more than X contributors from the
+Apace Accumulo community in over X commits. These release notes are highlights 
of those changes. The full
+detailed changes can be seen in the git history. If anything is missing from
+this list, please [contact] us to have it included.
+
+Users of 1.10.0 or earlier are urged to upgrade to 1.10.1 as soon as it is
+available, as this is a continuation of the 1.10 LTM release line.  Users are 
also encouraged to
+consider migrating to a 2.x version when a suitable one becomes available.
+
+## Minimum Requirements
+
+The versions mentioned here are a guide only. It is not expected that our
+convenience binary tarball will work out-of-the-box with your particular
+environment, and some responsibility is placed on users to properly configure
+Accumulo, or even patch and rebuild it from source, for their particular
+environment.
+
+Please [contact] us or file a [bug report][issues] if you have trouble with a
+specific version or wish to seek tips. Be prepared to provide details of the
+problems you encounter, as well as perform some troubleshooting steps of your
+own, in order to get the best response.
+
+## Major Bug Fixes
+
+### TODO title bug fix
+
+## Other Miscellaneous Bug Fixes
+
+* {% ghi 1644 %} TODO Describe bugs
+
+## Useful Links
+
+* [Release VOTE email thread][vote-emails]
+* [All Changes since 1.10.0][all-changes]
+* [GitHub] - List of issues tracked on GitHub corresponding to this release
+
+[GitHub]: 
https://github.com/apache/accumulo/issues?q=project%3Aapache%2Faccumulo%2F8
+[LTM]: {{ site.baseurl }}/contributor/versioning#LTM
+[all-changes]: 
https://github.com/apache/accumulo/compare/rel/1.10.0...apache:rel/1.10.1
+[contact]: {{ site.baseurl }}/contact-us
+[issues]: https://github.com/apache/accumulo/issues
+[semver]: https://semver.org/spec/v2.0.0.html
+[vote-emails]: 
https://lists.apache.org/thread.html/rd4731d4fd87c30958ad82a8b0be9375f2562ab0a9531ea037e646f3c%40%3Cdev.accumulo.apache.org%3E
diff --git a/_posts/release/2020-12-09-accumulo-2.0.1.md 
b/_posts/release/2020-12-09-accumulo-2.0.1.md
new file mode 100644
index 000..d9852bd
--- /dev/null
+++ b/_posts/release/2020-12-09-accumulo-2.0.1.md
@@ -0,0 +1,27 @@
+---
+title: Apache Accumulo 2.0.1
+sortableversion: '02.00.01'
+draft: true
+---
+
+Apache Accumulo 2.0.1 contains bug fixes for 2.0.0. It contains X commits from 
X contributors
+in the Accumulo community. The following release notes highlight some of the
+changes. If anything is missing from this list, please [contact] the developers
+to have it included.
+
+## Major Bug Fixes
+
+### TODO title bug fix
+
+## Other Miscellaneous Bug Fixes
+
+* {% ghi 1644 %} TODO Describe bugs
+
+## Upgrading
+
+View the [Upgrading Accumulo documentation][upgrade] for guidance.
+
+[contact]: /contact-us
+[semver]: https://semver.org/spec/v2.0.0.html
+[upgrade]: /docs/2.x/administration/upgrading
+[website-repo]: https://github.com/apache/accumulo-website



[accumulo] 01/01: Merge remote-tracking branch 'upstream/1.10' into main

2020-12-08 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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

commit b263b863335f22b4a0f54479444b5b84ef0db9e8
Merge: 58b9de1 b8fd349
Author: Mike Miller 
AuthorDate: Tue Dec 8 15:38:00 2020 -0500

Merge remote-tracking branch 'upstream/1.10' into main




[accumulo] branch main updated (58b9de1 -> b263b86)

2020-12-08 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 58b9de1  Throw exceptions when permissions checks fail (#1828)
 add b8fd349  Improve log message in Delete CleanUp FATE. (#1829)
 new b263b86  Merge remote-tracking branch 'upstream/1.10' into main

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:



[accumulo] branch 1.10 updated: Improve log message in Delete CleanUp FATE. (#1829)

2020-12-08 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/1.10 by this push:
 new b8fd349  Improve log message in Delete CleanUp FATE. (#1829)
b8fd349 is described below

commit b8fd34907155df4d69202b95183b3934ca660d95
Author: Mike Miller 
AuthorDate: Tue Dec 8 14:39:17 2020 -0500

Improve log message in Delete CleanUp FATE. (#1829)



Co-authored-by: Christopher Tubbs 
---
 .../src/main/java/org/apache/accumulo/master/tableOps/CleanUp.java   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/server/master/src/main/java/org/apache/accumulo/master/tableOps/CleanUp.java 
b/server/master/src/main/java/org/apache/accumulo/master/tableOps/CleanUp.java
index 0adedbc..6ff79e9 100644
--- 
a/server/master/src/main/java/org/apache/accumulo/master/tableOps/CleanUp.java
+++ 
b/server/master/src/main/java/org/apache/accumulo/master/tableOps/CleanUp.java
@@ -102,8 +102,9 @@ class CleanUp extends MasterRepo {
   if (!state.equals(TabletState.UNASSIGNED)) {
 // This code will even wait on tablets that are assigned to dead 
tablets servers. This is
 // intentional because the master may make metadata writes for these 
tablets. See #587
-log.debug("Still waiting for table to be deleted: " + tableId + " 
locationState: "
-+ locationState);
+log.debug(
+"Still waiting for table({}) to be deleted; Target tablet state: 
UNASSIGNED, Current tablet state: {}, locationState: {}",
+tableId, state, locationState);
 done = false;
 break;
   }



[accumulo] branch main updated (c29c102 -> b93c678)

2020-12-08 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from c29c102  fixes #1574: remove stop / start of MAC because flushes are 
waiting for completion. Reduce number of tables created so test does not time 
out. (#1801)
 add b93c678  Clean up some memory manager internals (#1826)

No new revisions were added by this update.

Summary of changes:
 .../tabletserver/MemoryManagementActions.java  |  27 
 .../accumulo/server/tabletserver/TabletState.java  |  31 -
 .../tserver/TabletServerResourceManager.java   |  77 +++
 .../tserver/memory}/LargestFirstMemoryManager.java |  13 +-
 .../tserver/memory/TabletMemoryReport.java |  63 +
 .../LargestFirstMemoryManagerTest.java | 154 -
 6 files changed, 145 insertions(+), 220 deletions(-)
 delete mode 100644 
server/base/src/main/java/org/apache/accumulo/server/tabletserver/MemoryManagementActions.java
 delete mode 100644 
server/base/src/main/java/org/apache/accumulo/server/tabletserver/TabletState.java
 rename server/{base/src/main/java/org/apache/accumulo/server/tabletserver => 
tserver/src/main/java/org/apache/accumulo/tserver/memory}/LargestFirstMemoryManager.java
 (96%)
 create mode 100644 
server/tserver/src/main/java/org/apache/accumulo/tserver/memory/TabletMemoryReport.java
 rename server/tserver/src/test/java/org/apache/accumulo/tserver/{ => 
memory}/LargestFirstMemoryManagerTest.java (63%)



[accumulo] branch main updated (d33e07a -> f279ae8)

2020-11-24 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from d33e07a  Fix typo in issue template (flaky, not flakey)
 add f279ae8  Add getTabletState to TabletMetadata (#1799)

No new revisions were added by this update.

Summary of changes:
 .../core/metadata/schema/MetadataSchema.java   |  2 +-
 .../core/metadata/schema/TabletMetadata.java   | 37 -
 .../core/metadata/schema/TabletsMetadata.java  |  4 +
 .../core/metadata/schema/TabletMetadataTest.java   | 89 ++
 4 files changed, 130 insertions(+), 2 deletions(-)



[accumulo] branch main updated (a7a96b8 -> a19e207)

2020-11-20 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from a7a96b8  Fix #1764 Parallelize listcompactions in shell (#1783)
 add a19e207  Make TabletLocationState human readable (#1796)

No new revisions were added by this update.

Summary of changes:
 .../core/metadata/TabletLocationState.java | 52 ++
 1 file changed, 24 insertions(+), 28 deletions(-)



[accumulo] branch main updated (7ee4a2d -> 5cb30ed)

2020-11-17 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 7ee4a2d  Add back toString() to TServerInstance
 add 5cb30ed  Utilize ServerContext in DeadServerList

No new revisions were added by this update.

Summary of changes:
 .../org/apache/accumulo/server/master/state/DeadServerList.java | 5 +++--
 server/manager/src/main/java/org/apache/accumulo/master/Master.java | 6 ++
 .../apache/accumulo/monitor/rest/tservers/TabletServerResource.java | 3 +--
 3 files changed, 6 insertions(+), 8 deletions(-)



[accumulo] branch main updated: Add back toString() to TServerInstance

2020-11-17 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 7ee4a2d  Add back toString() to TServerInstance
7ee4a2d is described below

commit 7ee4a2da58a923543495e9f10b40a5669e92f57c
Author: Mike Miller 
AuthorDate: Tue Nov 17 15:53:12 2020 -0500

Add back toString() to TServerInstance

* There are places in the code that use the toString() in
TServerInstance to write to ZK, one place is WalStateManager but to be
safe need to keep the method since it is difficult to find where string 
concat
is used
---
 .../main/java/org/apache/accumulo/core/metadata/TServerInstance.java | 5 +
 1 file changed, 5 insertions(+)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/metadata/TServerInstance.java 
b/core/src/main/java/org/apache/accumulo/core/metadata/TServerInstance.java
index eb7e2a3..8ba5860 100644
--- a/core/src/main/java/org/apache/accumulo/core/metadata/TServerInstance.java
+++ b/core/src/main/java/org/apache/accumulo/core/metadata/TServerInstance.java
@@ -88,6 +88,11 @@ public class TServerInstance implements 
Comparable {
 return false;
   }
 
+  @Override
+  public String toString() {
+return hostPortSession;
+  }
+
   public String getHostPortSession() {
 return hostPortSession;
   }



[accumulo] branch main updated (7d678ab -> cccac86)

2020-11-17 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from 7d678ab  Update hadoop version to 3.3.0 in pom.xml (#1785)
 add cccac86  Refactor Tablet state classes (#1774)

No new revisions were added by this update.

Summary of changes:
 .../accumulo/core/client/ZooKeeperInstance.java|  2 +-
 .../accumulo/core/clientImpl/ClientContext.java|  2 +-
 .../core/clientImpl/RootTabletLocator.java |  2 +-
 .../core/clientImpl/TableOperationsImpl.java   |  2 +-
 .../apache/accumulo/core/logging/TabletLogger.java | 12 +--
 .../accumulo/core/metadata}/SuspendingTServer.java |  6 +-
 .../accumulo/core/metadata}/TServerInstance.java   | 67 ++--
 .../core/metadata}/TabletLocationState.java|  4 +-
 .../accumulo/core/metadata}/TabletState.java   |  2 +-
 .../accumulo/core/metadata/schema/Ample.java   | 18 +
 .../core/metadata/schema/TabletMetadata.java   | 30 +---
 .../org/apache/accumulo/core/summary/Gatherer.java |  4 +-
 .../accumulo/server/log/WalStateManager.java   |  2 +-
 .../accumulo/server/master/LiveTServerSet.java |  4 +-
 .../master/balancer/ChaoticLoadBalancer.java   |  2 +-
 .../master/balancer/DefaultLoadBalancer.java   |  6 +-
 .../server/master/balancer/GroupBalancer.java  | 88 ++
 .../balancer/HostRegexTableLoadBalancer.java   |  8 +-
 .../server/master/balancer/TableLoadBalancer.java  |  2 +-
 .../server/master/balancer/TabletBalancer.java |  4 +-
 .../accumulo/server/master/state/Assignment.java   |  1 +
 .../accumulo/server/master/state/CurrentState.java |  1 +
 .../master/state/LoggingTabletStateStore.java  |  4 +-
 .../server/master/state/MetaDataStateStore.java|  2 +
 .../server/master/state/MetaDataTableScanner.java  |  5 +-
 .../server/master/state/RootTabletStateStore.java  |  1 +
 .../server/master/state/TabletMigration.java   |  1 +
 .../master/state/TabletStateChangeIterator.java|  6 +-
 .../server/master/state/TabletStateStore.java  |  2 +
 .../server/master/state/ZooTabletStateStore.java   | 13 ++--
 .../server/metadata/TabletMutatorBase.java | 13 ++--
 .../accumulo/server/util/FindOfflineTablets.java   |  6 +-
 .../accumulo/server/util/MasterMetadataUtil.java   |  2 +-
 .../accumulo/server/master/LiveTServerSetTest.java |  2 +-
 .../BaseHostRegexTableLoadBalancerTest.java|  4 +-
 .../master/balancer/ChaoticLoadBalancerTest.java   |  2 +-
 .../master/balancer/DefaultLoadBalancerTest.java   |  2 +-
 .../server/master/balancer/GroupBalancerTest.java  | 13 ++--
 ...tRegexTableLoadBalancerReconfigurationTest.java | 14 ++--
 .../balancer/HostRegexTableLoadBalancerTest.java   | 35 +
 .../master/balancer/TableLoadBalancerTest.java |  7 +-
 .../master/state/RootTabletStateStoreTest.java |  4 +-
 .../master/state/TabletLocationStateTest.java  |  3 +
 .../accumulo/gc/GarbageCollectWriteAheadLogs.java  |  6 +-
 .../gc/GarbageCollectWriteAheadLogsTest.java   |  4 +-
 .../java/org/apache/accumulo/master/Master.java| 18 ++---
 .../master/MasterClientServiceHandler.java |  8 +-
 .../apache/accumulo/master/TabletGroupWatcher.java | 10 +--
 .../replication/MasterReplicationCoordinator.java  |  9 +--
 .../apache/accumulo/master/state/MergeStats.java   |  6 +-
 .../apache/accumulo/master/state/TableCounts.java  |  2 +-
 .../apache/accumulo/master/state/TableStats.java   |  2 +-
 .../master/tableOps/bulkVer1/CopyFailed.java   |  2 +-
 .../master/tableOps/bulkVer1/LoadFiles.java|  6 +-
 .../master/tableOps/compact/CompactionDriver.java  |  4 +-
 .../accumulo/master/tableOps/delete/CleanUp.java   |  4 +-
 .../master/tserverOps/ShutdownTServer.java | 18 +++--
 .../accumulo/master/upgrade/Upgrader9to10.java |  2 +-
 .../MasterReplicationCoordinatorTest.java  |  2 +-
 .../master/tableOps/ShutdownTServerTest.java   | 16 ++--
 .../monitor/rest/tables/TablesResource.java|  4 +-
 .../org/apache/accumulo/tserver/TabletServer.java  |  5 +-
 .../accumulo/tserver/UnloadTabletHandler.java  |  6 +-
 .../accumulo/tserver/tablet/DatafileManager.java   |  2 +-
 .../org/apache/accumulo/tserver/tablet/Tablet.java |  2 +-
 .../apache/accumulo/tserver/tablet/TabletData.java |  4 +-
 .../accumulo/tserver/CheckTabletMetadataTest.java  |  2 +-
 .../test/MasterRepairsDualAssignmentIT.java|  4 +-
 .../java/org/apache/accumulo/test/UnusedWALIT.java |  2 +-
 .../test/functional/MasterAssignmentIT.java|  2 +-
 .../test/functional/RegexGroupBalanceIT.java   |  6 +-
 .../accumulo/test/functional/SplitRecoveryIT.java  |  2 +-
 .../functional/TabletStateChangeIteratorIT.java|  2 +-
 .../apache/accumulo/test/master/MergeStateIT.java  |  4 +-
 .../accumulo/test/master/SuspendedTabletsIT.java   |  8 +-
 .../accumulo/test/performance/NullTserver.java |  4

[accumulo] branch main updated (fe4d4d1 -> 1861473)

2020-11-12 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


from fe4d4d1  Improve tool tip for hold time in Monitor (#1772)
 add 1861473  Make cluster script start monitor last. Fixes #1777 (#1778)

No new revisions were added by this update.

Summary of changes:
 assemble/bin/accumulo-cluster | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)



[accumulo] branch main updated: Improve tool tip for hold time in Monitor (#1772)

2020-11-12 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new fe4d4d1  Improve tool tip for hold time in Monitor (#1772)
fe4d4d1 is described below

commit fe4d4d1f8d9a7c62a5372b6adacfa6d9f55a9900
Author: Mike Miller 
AuthorDate: Thu Nov 12 11:02:16 2020 -0500

Improve tool tip for hold time in Monitor (#1772)

* Also make the description for Ingest the same on all pages
---
 .../main/resources/org/apache/accumulo/monitor/templates/table.ftl  | 2 +-
 .../main/resources/org/apache/accumulo/monitor/templates/tables.ftl | 2 +-
 .../resources/org/apache/accumulo/monitor/templates/tservers.ftl| 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git 
a/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/table.ftl
 
b/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/table.ftl
index 5506a1a..891589d 100644
--- 
a/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/table.ftl
+++ 
b/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/table.ftl
@@ -44,7 +44,7 @@
 Entries
 Ingest
 Query
-HoldTime
+HoldTime
 RunningScans
 MinorCompactions
 MajorCompactions
diff --git 
a/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/tables.ftl
 
b/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/tables.ftl
index 38212f2..d4b232b 100644
--- 
a/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/tables.ftl
+++ 
b/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/tables.ftl
@@ -101,7 +101,7 @@
   Ingest
   Read
   Returned
-  HoldTime
+  HoldTime
   Scans
   MinC
   MajC
diff --git 
a/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/tservers.ftl
 
b/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/tservers.ftl
index 2066f24..291595a 100644
--- 
a/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/tservers.ftl
+++ 
b/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/tservers.ftl
@@ -57,15 +57,15 @@
 LastContact
 ResponseTime
 Entries
-Ingest
+Ingest
 Query
-HoldTime
+HoldTime
 RunningScans
 MinorCompactions
 MajorCompactions
 Index CacheHit Rate
 Data CacheHit Rate
-OSLoad
+OSLoad
   
 
 



[accumulo] branch main updated: Minor cleanup in BulkImport (#1769)

2020-11-04 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 46ee51d  Minor cleanup in BulkImport (#1769)
46ee51d is described below

commit 46ee51d0c6afe9910873f55653017b91c45a345a
Author: Mike Miller 
AuthorDate: Wed Nov 4 16:35:25 2020 -0500

Minor cleanup in BulkImport (#1769)

* Remove exceptions from BulkImport and ConcurrentKeyExtentCache
internal classes that were declared but never thrown
* Remove other unused variables
* Shorten a few lines that use lambdas
---
 .../accumulo/core/clientImpl/bulk/BulkImport.java  | 35 ++
 .../clientImpl/bulk/ConcurrentKeyExtentCache.java  |  9 ++
 .../bulk/ConcurrentKeyExtentCacheTest.java | 13 ++--
 3 files changed, 14 insertions(+), 43 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/BulkImport.java 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/BulkImport.java
index 1a60318..160db69 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/BulkImport.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/BulkImport.java
@@ -22,6 +22,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.MINUTES;
 import static java.util.stream.Collectors.groupingBy;
+import static 
org.apache.accumulo.core.file.blockfile.impl.CachableBlockFile.pathToCacheId;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -75,7 +76,6 @@ import org.apache.accumulo.core.data.TableId;
 import org.apache.accumulo.core.dataImpl.KeyExtent;
 import org.apache.accumulo.core.file.FileOperations;
 import org.apache.accumulo.core.file.FileSKVIterator;
-import org.apache.accumulo.core.file.blockfile.impl.CachableBlockFile;
 import org.apache.accumulo.core.spi.crypto.CryptoService;
 import org.apache.accumulo.core.volume.VolumeConfiguration;
 import org.apache.accumulo.fate.util.Retry;
@@ -302,35 +302,25 @@ public class BulkImport implements 
ImportDestinationArguments, ImportMappingOpti
   }
 
   public interface KeyExtentCache {
-KeyExtent lookup(Text row)
-throws AccumuloException, AccumuloSecurityException, 
TableNotFoundException;
+KeyExtent lookup(Text row);
   }
 
   public static List findOverlappingTablets(KeyExtentCache 
extentCache,
-  FileSKVIterator reader)
-  throws IOException, AccumuloException, AccumuloSecurityException, 
TableNotFoundException {
-
-Text startRow = null;
-Text endRow = null;
+  FileSKVIterator reader) throws IOException {
 
 List result = new ArrayList<>();
 Collection columnFamilies = Collections.emptyList();
-Text row = startRow;
-if (row == null)
-  row = new Text();
+Text row = new Text();
 while (true) {
-  // log.debug(filename + " Seeking to row " + row);
   reader.seek(new Range(row, null), columnFamilies, false);
   if (!reader.hasTop()) {
-// log.debug(filename + " not found");
 break;
   }
   row = reader.getTopKey().getRow();
   KeyExtent extent = extentCache.lookup(row);
-  // log.debug(filename + " found row " + row + " at location " + 
tabletLocation);
   result.add(extent);
   row = extent.endRow();
-  if (row != null && (endRow == null || row.compareTo(endRow) < 0)) {
+  if (row != null) {
 row = nextRow(row);
   } else
 break;
@@ -347,8 +337,7 @@ public class BulkImport implements 
ImportDestinationArguments, ImportMappingOpti
 
   public static List findOverlappingTablets(ClientContext context,
   KeyExtentCache extentCache, Path file, FileSystem fs, Cache 
fileLenCache,
-  CryptoService cs)
-  throws IOException, AccumuloException, AccumuloSecurityException, 
TableNotFoundException {
+  CryptoService cs) throws IOException {
 try (FileSKVIterator reader = 
FileOperations.getInstance().newReaderBuilder()
 .forFile(file.toString(), fs, fs.getConf(), cs)
 
.withTableConfiguration(context.getConfiguration()).withFileLenCache(fileLenCache)
@@ -361,7 +350,6 @@ public class BulkImport implements 
ImportDestinationArguments, ImportMappingOpti
 HashMap fileLens = new HashMap<>();
 for (FileStatus status : statuses) {
   fileLens.put(status.getPath().getName(), status.getLen());
-  status.getLen();
 }
 
 return fileLens;
@@ -371,9 +359,7 @@ public class BulkImport implements 
ImportDestinationArguments, ImportMappingOpti
 Map fileLens = getFileLenMap(statuses);
 
 Map absFileLens = new HashMap<>();
-fileLens.forEach((k, v) -> {
-  absFileLens.put(CachableBlockFile.pathToCacheId(new Path(dir, k)), v);
-});
+ 

[accumulo] branch main updated: Modify IteratorEnvIT to expose bug

2020-11-03 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 02f778a  Modify IteratorEnvIT to expose bug
02f778a is described below

commit 02f778a87bc74659dac45b9caf278bd7267e0dad
Author: Mike Miller 
AuthorDate: Tue Nov 3 13:57:46 2020 -0500

Modify IteratorEnvIT to expose bug

* IteratorEnvIT had flawed logic that was masking a bug in the
implementation of IteratorEnvironment
* IteratorEnvironment.getPluginEnv() is not impl and currently throws an
UnsupportedOperationException
---
 test/src/main/java/org/apache/accumulo/test/IteratorEnvIT.java | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/test/src/main/java/org/apache/accumulo/test/IteratorEnvIT.java 
b/test/src/main/java/org/apache/accumulo/test/IteratorEnvIT.java
index f64afe3..6965b69 100644
--- a/test/src/main/java/org/apache/accumulo/test/IteratorEnvIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/IteratorEnvIT.java
@@ -146,10 +146,14 @@ public class IteratorEnvIT extends AccumuloClusterHarness 
{
   private static void testEnv(IteratorScope scope, Map opts,
   IteratorEnvironment env) {
 TableId expectedTableId = TableId.of(opts.get("expected.table.id"));
-if 
(!"value1".equals(env.getConfig().get("table.custom.iterator.env.test")) && 
!"value1".equals(
+if 
(!"value1".equals(env.getConfig().get("table.custom.iterator.env.test")))
+  throw new RuntimeException("Test failed - Expected table property not 
found.");
+if (!"value1".equals(
 
env.getServiceEnv().getConfiguration(env.getTableId()).getTableCustom("iterator.env.test")))
   throw new RuntimeException("Test failed - Expected table property not 
found.");
-if 
(!"value1".equals(env.getConfig().get("table.custom.iterator.env.test")) && 
!"value1".equals(
+if 
(!"value1".equals(env.getConfig().get("table.custom.iterator.env.test")))
+  throw new RuntimeException("Test failed - Expected table property not 
found.");
+if (!"value1".equals(
 
env.getPluginEnv().getConfiguration(env.getTableId()).getTableCustom("iterator.env.test")))
   throw new RuntimeException("Test failed - Expected table property not 
found.");
 if (!scope.equals(env.getIteratorScope()))



[accumulo] branch main updated: Refactor TabletGroupWatcher (#1761)

2020-11-02 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new 3f47da1  Refactor TabletGroupWatcher (#1761)
3f47da1 is described below

commit 3f47da1777f5d059d42d7706574ee3fd9882006b
Author: Mike Miller 
AuthorDate: Mon Nov 2 10:14:14 2020 -0500

Refactor TabletGroupWatcher (#1761)

* Create TabletLists to hold the many different data structures being
tracked in the run method of TabletGroupWatcher
* Create methods for some of the logic in the switch case
* Pass TabletLists to the flush method and break flush into methods
* Rename TabletLocationState.getServer() to getLocation() as location is
a more meaningful name instead of server
* Move markDeadServerLogsAsClosed from Master and make private
---
 .../server/master/state/TabletLocationState.java   |   2 +-
 .../master/state/TabletLocationStateTest.java  |   8 +-
 .../java/org/apache/accumulo/master/Master.java|  13 -
 .../apache/accumulo/master/TabletGroupWatcher.java | 279 -
 4 files changed, 171 insertions(+), 131 deletions(-)

diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/master/state/TabletLocationState.java
 
b/server/base/src/main/java/org/apache/accumulo/server/master/state/TabletLocationState.java
index c3a96aa..c2111ef 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/master/state/TabletLocationState.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/master/state/TabletLocationState.java
@@ -87,7 +87,7 @@ public class TabletLocationState {
 return extent + "@(" + future + "," + current + "," + last + ")" + 
(chopped ? " chopped" : "");
   }
 
-  public TServerInstance getServer() {
+  public TServerInstance getLocation() {
 TServerInstance result = null;
 if (current != null) {
   result = current;
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/master/state/TabletLocationStateTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/master/state/TabletLocationStateTest.java
index 9b9d148..b31d138 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/master/state/TabletLocationStateTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/master/state/TabletLocationStateTest.java
@@ -104,25 +104,25 @@ public class TabletLocationStateTest {
   @Test
   public void testGetServer_Current() throws Exception {
 tls = new TabletLocationState(keyExtent, null, current, last, null, 
walogs, true);
-assertSame(current, tls.getServer());
+assertSame(current, tls.getLocation());
   }
 
   @Test
   public void testGetServer_Future() throws Exception {
 tls = new TabletLocationState(keyExtent, future, null, last, null, walogs, 
true);
-assertSame(future, tls.getServer());
+assertSame(future, tls.getLocation());
   }
 
   @Test
   public void testGetServer_Last() throws Exception {
 tls = new TabletLocationState(keyExtent, null, null, last, null, walogs, 
true);
-assertSame(last, tls.getServer());
+assertSame(last, tls.getLocation());
   }
 
   @Test
   public void testGetServer_None() throws Exception {
 tls = new TabletLocationState(keyExtent, null, null, null, null, walogs, 
true);
-assertNull(tls.getServer());
+assertNull(tls.getLocation());
   }
 
   @Test
diff --git 
a/server/manager/src/main/java/org/apache/accumulo/master/Master.java 
b/server/manager/src/main/java/org/apache/accumulo/master/Master.java
index bacc583..45449f7 100644
--- a/server/manager/src/main/java/org/apache/accumulo/master/Master.java
+++ b/server/manager/src/main/java/org/apache/accumulo/master/Master.java
@@ -100,8 +100,6 @@ import org.apache.accumulo.server.HighlyAvailableService;
 import org.apache.accumulo.server.ServerContext;
 import org.apache.accumulo.server.ServerOpts;
 import org.apache.accumulo.server.fs.VolumeManager;
-import org.apache.accumulo.server.log.WalStateManager;
-import org.apache.accumulo.server.log.WalStateManager.WalMarkerException;
 import org.apache.accumulo.server.master.LiveTServerSet;
 import org.apache.accumulo.server.master.LiveTServerSet.TServerConnection;
 import org.apache.accumulo.server.master.balancer.DefaultLoadBalancer;
@@ -135,7 +133,6 @@ import org.apache.accumulo.server.util.TableInfoUtil;
 import org.apache.accumulo.server.util.time.SimpleTimer;
 import org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader;
 import org.apache.accumulo.start.classloader.vfs.ContextManager;
-import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.DataInputBuffer;
 import org.apache.hadoop.io.DataOutputBuffer;
 import org.apache.thrift.TException;
@@ -1675,16 +1672,6 @@ public class Master extends AbstractServer
 }
   }
 
-  public void markDe

[accumulo] branch main updated: Create Ample interface method for createDeleteMutation (#1757)

2020-10-30 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
 new d820360  Create Ample interface method for createDeleteMutation (#1757)
d820360 is described below

commit d820360b975de759b1575d68456e69c828225a85
Author: Mike Miller 
AuthorDate: Fri Oct 30 12:26:48 2020 -0400

Create Ample interface method for createDeleteMutation (#1757)

* Drop static method in favor of method on the Ample interface for
creating delete mutations
* Change GarbageCollectorIT to use Ample for one of the tests
* Reuse Ample object in loops to prevent extra object creation
* Further improvements could be made to not have the Mutation type in Ample
---
 .../org/apache/accumulo/core/metadata/TabletFileUtil.java |  3 ++-
 .../org/apache/accumulo/core/metadata/schema/Ample.java   | 15 +++
 .../apache/accumulo/server/metadata/ServerAmpleImpl.java  | 11 ++-
 .../apache/accumulo/server/util/MetadataTableUtil.java| 14 --
 .../org/apache/accumulo/master/TabletGroupWatcher.java| 13 -
 .../org/apache/accumulo/master/upgrade/Upgrader9to10.java |  4 ++--
 .../accumulo/test/functional/GarbageCollectorIT.java  |  6 +++---
 7 files changed, 44 insertions(+), 22 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/metadata/TabletFileUtil.java 
b/core/src/main/java/org/apache/accumulo/core/metadata/TabletFileUtil.java
index 372c017..ff92ae3 100644
--- a/core/src/main/java/org/apache/accumulo/core/metadata/TabletFileUtil.java
+++ b/core/src/main/java/org/apache/accumulo/core/metadata/TabletFileUtil.java
@@ -28,7 +28,8 @@ public class TabletFileUtil {
   /**
* Validate if string is a valid path. Return normalized string or throw 
exception if not valid.
* This was added to facilitate more use of TabletFile over String but this 
puts the validation in
-   * one location in the case where TabletFile can't be used.
+   * one location in the case where TabletFile can't be used. The Garbage 
Collector is optimized to
+   * store a directory for Tablet File so a String is used.
*/
   public static String validate(String path) {
 Path p = new Path(path);
diff --git 
a/core/src/main/java/org/apache/accumulo/core/metadata/schema/Ample.java 
b/core/src/main/java/org/apache/accumulo/core/metadata/schema/Ample.java
index 2a33e17..4703b32 100644
--- a/core/src/main/java/org/apache/accumulo/core/metadata/schema/Ample.java
+++ b/core/src/main/java/org/apache/accumulo/core/metadata/schema/Ample.java
@@ -21,6 +21,7 @@ package org.apache.accumulo.core.metadata.schema;
 import java.util.Collection;
 import java.util.Iterator;
 
+import org.apache.accumulo.core.data.Mutation;
 import org.apache.accumulo.core.data.TableId;
 import org.apache.accumulo.core.dataImpl.KeyExtent;
 import org.apache.accumulo.core.metadata.MetadataTable;
@@ -152,6 +153,20 @@ public interface Ample {
   }
 
   /**
+   * Return an encoded delete marker Mutation to delete the specified 
TabletFile path. A String is
+   * used for the parameter because the Garbage Collector is optimized to 
store a directory for
+   * Tablet File. Otherwise a {@link TabletFile} object could be used. The 
tabletFilePathToRemove is
+   * validated and normalized before creating the mutation.
+   *
+   * @param tabletFilePathToRemove
+   *  String full path of the TabletFile
+   * @return Mutation with encoded delete marker
+   */
+  default Mutation createDeleteMutation(String tabletFilePathToRemove) {
+throw new UnsupportedOperationException();
+  }
+
+  /**
* This interface allows efficiently updating multiple tablets. Unless close 
is called, changes
* may not be persisted.
*/
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/metadata/ServerAmpleImpl.java
 
b/server/base/src/main/java/org/apache/accumulo/server/metadata/ServerAmpleImpl.java
index c42715e..b1d89dd 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/metadata/ServerAmpleImpl.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/metadata/ServerAmpleImpl.java
@@ -195,18 +195,19 @@ public class ServerAmpleImpl extends AmpleImpl implements 
Ample {
 }
   }
 
-  public static Mutation createDeleteMutation(String pathToRemove) {
-String path = TabletFileUtil.validate(pathToRemove);
+  @Override
+  public Mutation createDeleteMutation(String tabletFilePathToRemove) {
+String path = TabletFileUtil.validate(tabletFilePathToRemove);
 return createDelMutation(path);
   }
 
-  public static Mutation createDeleteMutation(StoredTabletFile pathToRemove) {
+  public Mutation createDeleteMutation(StoredTabletFile pathToRemove) {
 return createDelMutation(pathToRemove.getMetaUpdateDelete());
   }
 
-  private static Mutation createDelMutation(String path) {
+  private Mutation

[accumulo] branch 1.10 updated (51dde75 -> 252897d)

2020-10-28 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a change to branch 1.10
in repository https://gitbox.apache.org/repos/asf/accumulo.git.


from 51dde75  Configure surefire/failsafe forkCount separately (#1756)
 add 252897d  Back port #1754 to 1.10

No new revisions were added by this update.

Summary of changes:
 .../org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)



[accumulo] branch 1.10 updated (51dde75 -> 252897d)

2020-10-28 Thread mmiller
This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a change to branch 1.10
in repository https://gitbox.apache.org/repos/asf/accumulo.git.


from 51dde75  Configure surefire/failsafe forkCount separately (#1756)
 add 252897d  Back port #1754 to 1.10

No new revisions were added by this update.

Summary of changes:
 .../org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)



<    1   2   3   4   5   6   7   8   9   10   >