[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. kturner pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 8e309e987c8e565fa48ed82ac98e6990464ddbc3 Merge: 1e9ac21 bbe2de8 Author: Keith Turner AuthorDate: Thu Aug 5 18:53:24 2021 -0400 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 0a09c287e48485a4909fcdb5343db269898eec80 Merge: 51e18e2 05a4fc0 Author: Christopher Tubbs AuthorDate: Mon Mar 8 07:51:45 2021 -0500 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit df85cfe6a51b2e2a025f7a6904910da4ac328e84 Merge: 675e41a 2dacbc3 Author: Christopher Tubbs AuthorDate: Thu Feb 4 09:25:15 2021 -0500 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. brianloss pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit bdcab448b5c4fb44118197615fe2e231816da01c Merge: 9f549b2 0187567 Author: Brian Loss AuthorDate: Wed Jan 13 11:34:09 2021 -0500 Merge branch '1.10' into main .../apache/accumulo/fate/util/LoggingRunnable.java | 36 -- 1 file changed, 26 insertions(+), 10 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/fate/util/LoggingRunnable.java index aafe45d,000..dfe1bf5 mode 100644,00..100644 --- a/core/src/main/java/org/apache/accumulo/fate/util/LoggingRunnable.java +++ b/core/src/main/java/org/apache/accumulo/fate/util/LoggingRunnable.java @@@ -1,56 -1,0 +1,72 @@@ +/* + * 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.fate.util; + +import java.util.Date; + +import org.slf4j.Logger; + +public class LoggingRunnable implements Runnable { + private Runnable runnable; + private Logger log; + + public LoggingRunnable(Logger log, Runnable r) { +this.runnable = r; +this.log = log; + } + + @Override + public void run() { +try { + runnable.run(); +} catch (Throwable t) { ++ boolean errorOnRun = (t instanceof Error); + try { +log.error("Thread \"{}\" died {}", Thread.currentThread().getName(), t.getMessage(), t); + } catch (Throwable t2) { - // maybe the logging system is screwed up OR there is a bug in the exception, like - // t.getMessage() throws a NPE - System.err.println( - "ERROR " + new Date() + " Failed to log message about thread death " + t2.getMessage()); - t2.printStackTrace(); - - // try to print original exception - System.err - .println("ERROR " + new Date() + " Exception that failed to log : " + t.getMessage()); - t.printStackTrace(); ++boolean errorOnLog = (t2 instanceof Error); ++try { ++ // maybe the logging system is screwed up OR there is a bug in the exception, like ++ // t.getMessage() throws a NPE ++ System.err.println("ERROR " + new Date() + " Failed to log message about thread death " ++ + t2.getMessage()); ++ t2.printStackTrace(); ++ ++ // try to print original exception ++ System.err ++ .println("ERROR " + new Date() + " Exception that failed to log : " + t.getMessage()); ++ t.printStackTrace(); ++} catch (Throwable t3) { ++ // If printing to System.err didn't work then don't try to log that exception but do ++ // re-throw it if it's the most serious failure we've seen so far. ++ boolean errorOnPrint = (t3 instanceof Error); ++ if (errorOnPrint && !errorOnLog && !errorOnRun) ++throw t3; ++} ++ ++// If we got a more serious failure when attempting to log the message, ++// then throw that instead of the original exception. ++if (errorOnLog && !errorOnRun) ++ throw t2; + } ++ throw t; +} + } + +}
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. brianloss pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 0f7b66dcf9391ed49c4b79d85227d1c0771b6ff1 Merge: 81e36d0 e6bba1c Author: Brian Loss AuthorDate: Thu Jan 7 16:51:14 2021 -0500 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 658cd00f0448e48c942df21dc526049f33901f62 Merge: 9a7749f 6bf3f40 Author: Christopher Tubbs AuthorDate: Wed Dec 30 13:11:44 2020 -0500 Merge branch '1.10' into main .../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 --cc server/manager/src/main/java/org/apache/accumulo/master/replication/FinishedWorkUpdater.java index 57e4118,000..0559b31 mode 100644,00..100644 --- a/server/manager/src/main/java/org/apache/accumulo/master/replication/FinishedWorkUpdater.java +++ b/server/manager/src/main/java/org/apache/accumulo/master/replication/FinishedWorkUpdater.java @@@ -1,189 -1,0 +1,189 @@@ +/* + * 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.master.replication; + +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.SortedMap; + +import org.apache.accumulo.core.client.AccumuloClient; +import org.apache.accumulo.core.client.BatchScanner; +import org.apache.accumulo.core.client.BatchWriter; +import org.apache.accumulo.core.client.IteratorSetting; +import org.apache.accumulo.core.client.MutationsRejectedException; +import org.apache.accumulo.core.data.Key; +import org.apache.accumulo.core.data.Mutation; +import org.apache.accumulo.core.data.Range; +import org.apache.accumulo.core.data.TableId; +import org.apache.accumulo.core.data.Value; +import org.apache.accumulo.core.iterators.user.WholeRowIterator; +import org.apache.accumulo.core.protobuf.ProtobufUtil; +import org.apache.accumulo.core.replication.ReplicationSchema.StatusSection; +import org.apache.accumulo.core.replication.ReplicationSchema.WorkSection; +import org.apache.accumulo.core.replication.ReplicationTable; +import org.apache.accumulo.core.replication.ReplicationTableOfflineException; +import org.apache.accumulo.core.replication.ReplicationTarget; +import org.apache.accumulo.server.replication.StatusUtil; +import org.apache.accumulo.server.replication.proto.Replication.Status; +import org.apache.hadoop.io.Text; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.protobuf.InvalidProtocolBufferException; + +/** + * Update the status record in the replication table with work that has been replicated to each + * configured peer. + */ +public class FinishedWorkUpdater implements Runnable { + private static final Logger log = LoggerFactory.getLogger(FinishedWorkUpdater.class); + + private final AccumuloClient client; + + public FinishedWorkUpdater(AccumuloClient client) { +this.client = client; + } + + @Override + public void run() { - log.debug("Looking for finished replication work"); ++log.trace("Looking for finished replication work"); + +if (!ReplicationTable.isOnline(client)) { - log.debug("Replication table is not yet online, will retry"); ++ log.trace("Replication table is not yet online, will retry"); + return; +} + +BatchScanner bs; +BatchWriter replBw; +try { + bs = ReplicationTable.getBatchScanner(client, 4); + replBw = ReplicationTable.getBatchWriter(client); +} catch (ReplicationTableOfflineException e) { + log.debug("Table is no longer online, will retry"); + return; +} + +IteratorSetting cfg = new IteratorSetting(50, WholeRowIterator.class); +bs.addScanIterator(cfg); +WorkSection.limit(bs); +bs.setRanges(Collections.singleton(new Range())); + +try { + for (Entry serializedRow : bs) { +SortedMap wholeRow; +try { + wholeRow = Wh
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 9a7749f397a410b8c8692d308ccb24ae499709b5 Merge: 20ac9fc 3e3b199 Author: Christopher Tubbs AuthorDate: Tue Dec 29 00:41:28 2020 -0500 Merge branch '1.10' into main NOTICE | 2 +- assemble/src/main/resources/NOTICE | 2 +- server/native/src/main/resources/NOTICE | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 6ee740fd9dc034d19ab5781ac7813201d1c6c7a9 Merge: dc7277b cd8710a Author: Christopher Tubbs AuthorDate: Tue Dec 22 14:22:09 2020 -0500 Merge branch '1.10' into main pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 243e5771b03281c64115a625da83a20cd586adde Merge: 185fc90 0773baa Author: Christopher Tubbs AuthorDate: Wed Dec 16 23:23:29 2020 -0500 Merge branch '1.10' into main .../accumulo/test/functional/GcMetricsIT.java | 268 +++-- .../accumulo/test/functional/MasterMetricsIT.java | 11 +- .../accumulo/test/metrics/MetricsFileTailer.java | 27 ++- .../resources/hadoop-metrics2-accumulo.properties | 2 +- .../test/metrics/MetricsFileTailerTest.java| 49 ++-- 5 files changed, 133 insertions(+), 224 deletions(-) diff --cc test/src/main/java/org/apache/accumulo/test/functional/GcMetricsIT.java index 94884b4,120ac35..5d76a21 --- a/test/src/main/java/org/apache/accumulo/test/functional/GcMetricsIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/GcMetricsIT.java @@@ -18,7 -18,10 +18,9 @@@ */ package org.apache.accumulo.test.functional; + import static java.util.stream.Collectors.toMap; import static org.junit.Assert.assertTrue; -import static org.junit.Assume.assumeFalse; + import static org.junit.Assume.assumeTrue; import java.util.Collections; import java.util.Map; @@@ -27,14 -30,14 +29,14 @@@ import java.util.TreeMap import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; + import java.util.stream.Stream; - import org.apache.accumulo.core.client.Accumulo; - import org.apache.accumulo.core.client.AccumuloClient; import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.gc.metrics.GcMetrics; -import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl; +import org.apache.accumulo.miniclusterImpl.MiniAccumuloConfigImpl; import org.apache.accumulo.test.metrics.MetricsFileTailer; import org.apache.hadoop.conf.Configuration; + import org.junit.After; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; @@@ -73,137 -70,38 +69,36 @@@ public class GcMetricsIT extends Config return 4 * 60; } - @Test - public void gcMetricsPublished() throws InterruptedException { - boolean gcMetricsEnabled = - cluster.getSiteConfiguration().getBoolean(Property.GC_METRICS_ENABLED); - - if (!gcMetricsEnabled) { - log.info("gc metrics are disabled with GC_METRICS_ENABLED=true"); - return; - } - - log.debug("Client started, properties:{}", accumuloClient.properties()); - - MetricsFileTailer gcTail = new MetricsFileTailer("accumulo.sink.file-gc"); - Thread t1 = new Thread(gcTail); - t1.start(); - - // uncomment for manual jmx / jconsole validation - not for automated testing - // Thread.sleep(320_000); - - try { - - var updateTimestamp = System.currentTimeMillis(); + private final MetricsFileTailer gcTail = new MetricsFileTailer("accumulo.sink.file-gc"); - // Get next update after current time - LineUpdate firstUpdate = waitForUpdate(updateTimestamp, gcTail); - - Map firstSeenMap = parseLine(firstUpdate.getLine()); - - log.debug("L:{}", firstUpdate.getLine()); - log.debug("M:{}", firstSeenMap); - - assertTrue(lookForExpectedKeys(firstSeenMap)); - sanity(updateTimestamp, firstSeenMap); - - // Get next update after the first one - updateTimestamp = firstUpdate.getLastUpdate(); - LineUpdate nextUpdate = waitForUpdate(updateTimestamp, gcTail); - - Map updateSeenMap = parseLine(nextUpdate.getLine()); - - log.debug("Line received:{}", nextUpdate.getLine()); - log.debug("Mapped values:{}", updateSeenMap); - - assertTrue(lookForExpectedKeys(updateSeenMap)); - sanity(updateTimestamp, updateSeenMap); - - validate(firstSeenMap, updateSeenMap); - - } catch (Exception ex) { - log.debug("reads", ex); - } + @Before + public void startTailer() { + gcTail.startDaemonThread(); } - /** -* Validate metrics for consistency withing a run cycle. -* -* @param values -* map of values from one run cycle. -*/ - private void sanity(final long testStart, final Map values) { - - long start = values.get("AccGcStarted"); - long finished = values.get("AccGcFinished"); - - log.debug("test start: {}, gc start: {}, gc finished: {}", testStart, start, finished); - - assertTrue(start >= testStart); - assertTrue(finished >= start); - - start = values.get("AccGcWalStarted"); - finished = values.get("AccGcWalFinished"); - - log.debug("test start: {}, walgc start: {}, walgc finished: {}", testStart, start, finished); - - assertTrue(start >= testStart); - assertTrue(finished >= start); - + @After + public void stopTailer() { + gcTail.close(); } - /** -* A series of sanity checks for the metrics
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 357c54c677b662497f4d417de88e14a38fe18c7a Merge: 1750cd7 d4fd27f Author: Christopher Tubbs AuthorDate: Tue Dec 15 14:30:06 2020 -0500 Merge branch '1.10' into main .../org/apache/accumulo/core/util/UnsynchronizedBufferTest.java | 6 +++--- core/src/test/java/org/apache/accumulo/fate/util/RetryTest.java | 5 ++--- .../src/test/java/org/apache/accumulo/tserver/InMemoryMapTest.java | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --cc core/src/test/java/org/apache/accumulo/core/util/UnsynchronizedBufferTest.java index 93c2b89,b842f3c..2d44494 --- a/core/src/test/java/org/apache/accumulo/core/util/UnsynchronizedBufferTest.java +++ b/core/src/test/java/org/apache/accumulo/core/util/UnsynchronizedBufferTest.java @@@ -52,10 -50,11 +52,10 @@@ public class UnsynchronizedBufferTest assertEquals("34567", new String(buf, UTF_8)); buf = new byte[6]; - +// the byte buffer has the extra byte, but should not be able to read it... - final UnsynchronizedBuffer.Reader ub2 = ub; - final byte[] buf2 = buf; - assertThrows(ArrayIndexOutOfBoundsException.class, () -> ub2.readBytes(buf2)); + final UnsynchronizedBuffer.Reader finalUb = ub; + final byte[] finalBuf = buf; -assertThrows("the byte buffer has the extra byte, but should not be able to read it", -ArrayIndexOutOfBoundsException.class, () -> finalUb.readBytes(finalBuf)); ++assertThrows(ArrayIndexOutOfBoundsException.class, () -> finalUb.readBytes(finalBuf)); } @Test diff --cc core/src/test/java/org/apache/accumulo/fate/util/RetryTest.java index 745d268,000..72e3c9b mode 100644,00..100644 --- a/core/src/test/java/org/apache/accumulo/fate/util/RetryTest.java +++ b/core/src/test/java/org/apache/accumulo/fate/util/RetryTest.java @@@ -1,331 -1,0 +1,330 @@@ +/* + * 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.fate.util; + +import static java.util.concurrent.TimeUnit.DAYS; +import static java.util.concurrent.TimeUnit.HOURS; +import static java.util.concurrent.TimeUnit.MILLISECONDS; +import static java.util.concurrent.TimeUnit.MINUTES; +import static java.util.concurrent.TimeUnit.NANOSECONDS; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import java.util.concurrent.TimeUnit; + +import org.apache.accumulo.fate.util.Retry.NeedsLogInterval; +import org.apache.accumulo.fate.util.Retry.NeedsMaxWait; +import org.apache.accumulo.fate.util.Retry.NeedsRetries; +import org.apache.accumulo.fate.util.Retry.NeedsRetryDelay; +import org.apache.accumulo.fate.util.Retry.NeedsTimeIncrement; +import org.apache.accumulo.fate.util.Retry.RetryFactory; +import org.easymock.EasyMock; +import org.junit.Before; +import org.junit.Test; +import org.slf4j.Logger; + +public class RetryTest { + + private Retry retry; + private static final long INITIAL_WAIT = 1000; + private static final long WAIT_INC = 1000; + private static final double BACKOFF_FACTOR = 1.0; + private static final long MAX_RETRIES = 5; + private static final long LOG_INTERVAL = 1000; + private Retry unlimitedRetry; + private static final TimeUnit MS = MILLISECONDS; + + @Before + public void setup() { +retry = Retry.builder().maxRetries(MAX_RETRIES).retryAfter(INITIAL_WAIT, MS) +.incrementBy(WAIT_INC, MS).maxWait(MAX_RETRIES * WAIT_INC, MS).backOffFactor(BACKOFF_FACTOR) +.logInterval(LOG_INTERVAL, MS).createRetry(); +unlimitedRetry = Retry.builder().infiniteRetries().retryAfter(INITIAL_WAIT, MS) +.incrementBy(WAIT_INC, MS).maxWait(MAX_RETRIES * WAIT_INC, MS).backOffFactor(BACKOFF_FACTOR) +.logInterval(LOG_INTERVAL, MS).createRetry(); + } + + @Test + public void canRetryDoesntAlterState() { +for (int i = 0; i < MAX_RETRIES + 1; i++) { + assertTrue(retry.canRetry()); +} + } + + @Test + p
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 848c60a324cf127393438fc4a0302028f9c154b4 Merge: 3b23f6a 56142a8 Author: Christopher Tubbs AuthorDate: Wed Dec 9 11:49:34 2020 -0500 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 27ea8a1e21428eb8c0d0fe8eb4bf5241015a8721 Merge: 0cd52e9 7e2e09e Author: Christopher Tubbs AuthorDate: Thu Nov 26 14:14:27 2020 -0500 Merge branch '1.10' into main pom.xml | 1 - 1 file changed, 1 deletion(-) diff --cc pom.xml index 8dd884d,6606c0f..b0b4497 --- a/pom.xml +++ b/pom.xml @@@ -1342,9 -1066,9 +1342,8 @@@ true true true - true true true -true true true true
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 0cd52e9854f9972550f2bb494697d39c1cd5665e Merge: f279ae8 64e01c8 Author: Christopher Tubbs AuthorDate: Wed Nov 25 11:58:17 2020 -0500 Merge branch '1.10' into main pom.xml | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-)
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit c4e47bab9d86eca894317efcb19fa11e6225425f Merge: 353c611 51dde75 Author: Christopher Tubbs AuthorDate: Wed Oct 28 12:57:21 2020 -0400 Merge branch '1.10' into main .github/workflows/maven.yaml | 2 +- minicluster/pom.xml | 13 + pom.xml | 18 -- test/src/test/scripts/run-test.sh | 2 +- 4 files changed, 31 insertions(+), 4 deletions(-) diff --cc .github/workflows/maven.yaml index 279fade,09839b9..c14acb8 --- a/.github/workflows/maven.yaml +++ b/.github/workflows/maven.yaml @@@ -60,9 -60,8 +60,9 @@@ jobs strategy: matrix: profile: - - {name: 'unit-tests',args: 'verify -PskipQA -DskipTests=false -DforkCount=1C'} - - {name: 'Hadoop2', args: 'verify javadoc:jar -DskipITs'} - - {name: 'Hadoop3', args: 'verify javadoc:jar -DskipITs -Dhadoop.profile=3'} ++ - {name: 'unit-tests',args: 'verify -PskipQA -DskipTests=false'} + - {name: 'qa-checks', args: 'verify javadoc:jar -Psec-bugs -DskipTests=true -Dspotbugs.timeout=360'} + - {name: 'hadoop-compat', args: 'package -DskipTests -Dhadoop.version=3.0.3'} fail-fast: false timeout-minutes: 60 runs-on: ubuntu-latest diff --cc pom.xml index f067b23,a794f6c..ba39330 --- a/pom.xml +++ b/pom.xml @@@ -122,21 -122,20 +122,20 @@@ ${project.parent.basedir}/contrib/Eclipse-Accumulo-Codestyle.xml + 1 - - 1 - -14.0.1 -2.6.5 +3.2.1 +2.6.1 4.1.0-incubating -3.1.0-incubating +3.2.0-incubating false - -9.2.26.v20180806 -8 -1.8 -1.8 -3.5.0 +3.0.1-b06 +2.3.0.1 +2.30.1 +9.4.27.v20200227 +11 +11 +11 true 2.0.7 @@@ -1607,25 -1368,42 +1609,37 @@@ src/main/spotbugs/exclude-filter.xml - - hadoop-default - - - !hadoop.profile - - - -2 - - - - - hadoop3 - - - hadoop.profile - 3 - - - -3.0.3 - + sec-bugs + + + +com.github.spotbugs +spotbugs-maven-plugin + + + + com.h3xstream.findsecbugs + findsecbugs-plugin + 1.8.0 + + + + + + + + forkCount + + + forkCount + + + + ${forkCount} + ${forkCount} + +
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 0dd13dd38022414500dbb4b379f5eabed4c62e22 Merge: 5c365f9 2ef1477 Author: Christopher Tubbs AuthorDate: Thu Oct 15 13:33:30 2020 -0400 Merge branch '1.10' into main No change in main branch
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 75b19431a1b5e3573a9a54d3874d745f100d3297 Merge: 3dae7d3 ecfa294 Author: Christopher Tubbs AuthorDate: Wed Oct 14 15:08:13 2020 -0400 Merge branch '1.10' into main assemble/bin/accumulo-util | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --cc assemble/bin/accumulo-util index b0533c1,000..0280999 mode 100755,00..100755 --- a/assemble/bin/accumulo-util +++ b/assemble/bin/accumulo-util @@@ -1,220 -1,0 +1,220 @@@ +#! /usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +function print_usage { + cat < ( ...) + +Commands: + build-nativeBuilds Accumulo native libraries + dump-zooDumps data in ZooKeeper + gen-monitor-certGenerates Accumulo monitor certficate + load-jars-hdfs Loads Accumulo jars in lib/ to HDFS for VFS classloader + +EOF + exit 1 +} + +function build_native() { + final_native_target="$basedir/lib/native" + if [[ -f "$final_native_target/libaccumulo.so" ]] || [[ -f "$final_native_target/libaccumulo.dylib" ]]; then +echo "Accumulo native library already exists in $final_native_target" +exit 0 + fi + + native_tarballs=("$basedir"/lib/accumulo-native-*.tar.gz) + if (( ${#native_tarballs[@]} > 1 )); then +echo "Found multiple native tar.gz files: ${native_tarballs[*]}" +exit 1 + fi + + if [[ ! -f ${native_tarballs[0]} ]]; then +echo "Could not find native code artifact: ${native_tarballs[0]}" 1>&2 +exit 1 + fi + + # Make the destination for the native library + mkdir -p "${final_native_target}" || exit 1 + + # Make a directory for us to unpack the native source into - TMP_DIR=$(mktemp -d /tmp/accumulo-native.) || exit 1 ++ TMP_DIR=$(mktemp -d /tmp/accumulo-native.XX) || exit 1 + + # Unpack the tarball to our temp directory + if ! tar xf "${native_tarballs[0]}" -C "${TMP_DIR}" + then + echo "Failed to unpack native tarball to ${TMP_DIR}" + exit 1 + fi + + # Move to the first (only) directory in our unpacked tarball + native_dir=$(find "${TMP_DIR}" -maxdepth 1 -mindepth 1 -type d) + + cd "${native_dir}" || exit 1 + + # Make the native library + export USERFLAGS="$*" + make || { echo 'Make failed!'; exit 1; } + + # "install" the artifact + cp libaccumulo.* "${final_native_target}" || exit 1 + + # Clean up our temp directory + rm -rf "${TMP_DIR}" + + echo "Successfully installed native library" +} + +function gen_monitor_cert() { + if [[ -z "$JAVA_HOME" || ! -d "$JAVA_HOME" ]]; then +echo "JAVA_HOME=${JAVA_HOME} must be set and exist" +exit 1 + fi + + ALIAS="default" + KEYPASS=$(LC_CTYPE=C tr -dc '#-~' < /dev/urandom | tr -d '<>&' | head -c 20) + STOREPASS=$(LC_CTYPE=C tr -dc '#-~' < /dev/urandom | tr -d '<>&' | head -c 20) + KEYSTOREPATH="${conf}/keystore.jks" + TRUSTSTOREPATH="${conf}/cacerts.jks" + CERTPATH="${conf}/server.cer" + + if [[ -e "$KEYSTOREPATH" ]]; then + rm -i "$KEYSTOREPATH" + if [[ -e "$KEYSTOREPATH" ]]; then +echo "KeyStore already exists, exiting" +exit 1 + fi + fi + if [[ -e "$TRUSTSTOREPATH" ]]; then + rm -i "$TRUSTSTOREPATH" + if [[ -e "$TRUSTSTOREPATH" ]]; then +echo "TrustStore already exists, exiting" +exit 2 + fi + fi + if [[ -e "$CERTPATH" ]]; then + rm -i "$CERTPATH" + if [[ -e "$CERTPATH" ]]; then +echo "Certificate already exists, exiting" +exit 3 +fi + fi + + "${JAVA_HOME}/bin/keytool" -genkey -alias "$ALIAS" -keyalg RSA -keypass "$KEYPASS" -storepass "$KEYPASS" -keystore "$KEYSTOREPATH" + "${JAVA_HOME}/bin/keytool" -export -alias "$ALIAS" -storepass "$KEYPASS" -file "$CERTPATH" -keystore "$KEYSTOREPATH" + "${JAVA_HOME}/bin/keytool" -import -v -trustcacerts -alias "$ALIAS" -file "$CERTPATH" -keystore "$TRUSTSTOREPATH" -storepass "$STOREPASS" <<< "yes" + + echo + echo "keystore and truststore generated. now add the following to accumulo.properties:" + echo + echo "moni
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 70a73b1aa8ac435a87aeb1fd2c8daf46b176c204 Merge: f1f7812 1a801bd Author: Christopher Tubbs AuthorDate: Fri Oct 9 16:37:47 2020 -0400 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit f1f7812fbd7872282998ce2d460fa8966cd99c39 Merge: 542dfd5 64372ba Author: Christopher Tubbs AuthorDate: Fri Oct 9 16:20:47 2020 -0400 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 542dfd5d6daac813ac8efe6681c91b345b521dbd Merge: 9b537ca 49b7cd6 Author: Christopher Tubbs AuthorDate: Fri Oct 9 16:15:48 2020 -0400 Merge branch '1.10' into main .github/workflows/maven-full-its.yaml | 15 +++ .github/workflows/maven-on-demand.yaml | 11 +++ .github/workflows/maven.yaml | 5 + 3 files changed, 31 insertions(+)
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 80ee9ca8092dc4bf07aa1a046d6e668f0e16300e Merge: 6281a33 314f2aa Author: Christopher Tubbs AuthorDate: Wed Oct 7 13:21:46 2020 -0400 Merge branch '1.10' into main assemble/build.sh | 157 +++--- pom.xml | 6 +-- 2 files changed, 116 insertions(+), 47 deletions(-) diff --cc pom.xml index 3f62ad3,84101f1..8f7f1b1 --- a/pom.xml +++ b/pom.xml @@@ -118,11 -118,9 +118,9 @@@ 1.66 -2.11.0 +4.3.0 ${project.parent.basedir}/contrib/Eclipse-Accumulo-Codestyle.xml - - @@@ -941,12 -683,12 +939,12 @@@ org.apache.maven.plugins maven-release-plugin - -P !autoformat,thrift,sunny -Dtimeout.factor=2 ${extraReleaseArguments} + -P !autoformat,thrift -DskipTests true clean deploy - clean verify + clean package rel/@{project.version} - apache-release,accumulo-release,skip-plugin-its-with-skipTests +apache-release,accumulo-release false false true
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 550b494418024b7ff23a1a6cd78d25192c903fd3 Merge: eecdd59 9a65fe0 Author: Christopher Tubbs AuthorDate: Tue Sep 29 16:11:07 2020 -0400 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit b3cc58a5a39a8125f30a71f2d6cb4828dc980762 Merge: 21c7a0b c21396d Author: Christopher Tubbs AuthorDate: Mon Sep 28 17:24:45 2020 -0400 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 90b9cacb5bd5b6dc15c7000475e10e55007094a5 Merge: c997ab7 8ff6765 Author: Christopher Tubbs AuthorDate: Wed Sep 2 22:30:12 2020 -0400 Merge branch '1.10' into main pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --cc pom.xml index 371e8e8,dd8397e..83880e3 --- a/pom.xml +++ b/pom.xml @@@ -143,10 -143,10 +143,10 @@@ true 2.0.7 - 2020-08-18T00:00:00Z + 2020-08-27T15:56:15Z false -1.7.25 +1.7.30 source-release-tar false
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit c997ab7017c6d03bed7f02384f09b41e97ff2b06 Merge: 72e8bc4 c03d770 Author: Christopher Tubbs AuthorDate: Tue Sep 1 13:50:21 2020 -0400 Merge branch '1.10' into main pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 3a6a94618efb11765f954d689c1ed641ea785435 Merge: 677f460 cfb33e1 Author: Christopher Tubbs AuthorDate: Thu Aug 27 10:07:51 2020 -0400 Merge branch '1.10' into main pom.xml | 6 ++ 1 file changed, 6 insertions(+)
[accumulo] 01/01: Merge branch '1.10' into main
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 677f46040aad0a81862378c1099a6cf33cb59cf2 Merge: 0702e08 a6cbf09 Author: Mike Miller AuthorDate: Mon Aug 24 14:54:31 2020 -0400 Merge branch '1.10' into main pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --cc pom.xml index 224aeca,7a5d566..4df5105 --- a/pom.xml +++ b/pom.xml @@@ -116,9 -116,9 +116,9 @@@ ${project.version} - 1.64 + 1.66 -2.11.0 +4.3.0 ${project.parent.basedir}/contrib/Eclipse-Accumulo-Codestyle.xml @@@ -127,21 -127,21 +127,21 @@@ 1 - -14.0.1 -2.6.5 +3.2.1 +2.6.1 4.1.0-incubating -3.1.0-incubating +3.2.0-incubating false - -9.2.26.v20180806 -8 -1.8 -1.8 -3.5.0 +3.0.1-b06 +2.3.0.1 +2.30.1 +9.4.27.v20200227 +11 +11 +11 true - 2.0.5 + 2.0.7 2020-08-18T00:00:00Z
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 0702e08645d94a2ebae829ba2c8f2588177799a6 Merge: 47d7b70 f80843e Author: Christopher Tubbs AuthorDate: Fri Aug 21 11:27:39 2020 -0400 Merge branch '1.10' into main .../main/java/org/apache/accumulo/test/BalanceWithOfflineTableIT.java | 4 ++-- test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java | 2 +- test/src/main/java/org/apache/accumulo/test/LocatorIT.java| 2 +- test/src/main/java/org/apache/accumulo/test/ScanFlushWithTimeIT.java | 2 +- .../java/org/apache/accumulo/test/TableConfigurationUpdateIT.java | 2 +- .../src/main/java/org/apache/accumulo/test/TabletServerGivesUpIT.java | 2 +- .../org/apache/accumulo/test/TracerRecoversAfterOfflineTableIT.java | 2 +- test/src/main/java/org/apache/accumulo/test/VolumeChooserIT.java | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --cc test/src/main/java/org/apache/accumulo/test/BalanceWithOfflineTableIT.java index 9010deb,ba458f3..4dd8ebe --- a/test/src/main/java/org/apache/accumulo/test/BalanceWithOfflineTableIT.java +++ b/test/src/main/java/org/apache/accumulo/test/BalanceWithOfflineTableIT.java @@@ -49,41 -47,43 +49,41 @@@ public class BalanceWithOfflineTableIT final String tableName = tableNames[0]; // create a table with a bunch of splits -final Connector c = getConnector(); -log.info("Creating table " + tableName); -c.tableOperations().create(tableName); -final SortedSet splits = new TreeSet<>(); -for (String split : "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(",")) { - splits.add(new Text(split)); -} -log.info("Splitting table " + tableName); -c.tableOperations().addSplits(tableName, splits); -log.info("Balancing"); -c.instanceOperations().waitForBalance(); -log.info("Balanced"); +try (AccumuloClient c = Accumulo.newClient().from(getClientProperties()).build()) { + log.info("Creating table {}", tableName); + c.tableOperations().create(tableName); + final SortedSet splits = new TreeSet<>(); + for (String split : "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(",")) { +splits.add(new Text(split)); + } + log.info("Splitting table {}", tableName); + c.tableOperations().addSplits(tableName, splits); + log.info("Balancing"); + c.instanceOperations().waitForBalance(); + log.info("Balanced"); -// create a new table which will unbalance the cluster -final String table2 = tableNames[1]; -log.info("Creating table " + table2); -c.tableOperations().create(table2); -log.info("Creating splits " + table2); -c.tableOperations().addSplits(table2, splits); + // create a new table which will unbalance the cluster + final String table2 = tableNames[1]; + log.info("Creating table {}", table2); + c.tableOperations().create(table2); + log.info("Creating splits {}", table2); + c.tableOperations().addSplits(table2, splits); -// offline the table, hopefully while there are some migrations going on -log.info("Offlining " + table2); -c.tableOperations().offline(table2, true); -log.info("Offlined " + table2); + // offline the table, hopefully while there are some migrations going on + log.info("Offlining {}", table2); + c.tableOperations().offline(table2, true); + log.info("Offlined {}", table2); -log.info("Waiting for balance"); + log.info("Waiting for balance"); -SimpleThreadPool pool = new SimpleThreadPool(1, "waitForBalance"); -Future wait = pool.submit(new Callable() { - @Override - public Boolean call() throws Exception { + SimpleThreadPool pool = new SimpleThreadPool(1, "waitForBalance"); + Future wait = pool.submit(() -> { c.instanceOperations().waitForBalance(); return true; - } -}); -wait.get((2 * defaultTimeoutSeconds()) / 3, TimeUnit.SECONDS); -log.info("Balance succeeded with an offline table"); + }); - wait.get(20, TimeUnit.SECONDS); ++ wait.get((2 * defaultTimeoutSeconds()) / 3, TimeUnit.SECONDS); + log.info("Balance succeeded with an offline table"); +} } } diff --cc test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java index dbbdb5d,67a22a6..b409430 --- a/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java +++ b/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java @@@ -114,27 -114,16 +114,27 @@@ public class ConditionalWriterIT extend @Override protected int defaultTimeoutSeconds() { - return 60; + return 120; } - @Override - public void configureMiniCluster(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) { -super
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 47d7b708cf14b9d935a889c1082e211075338ed1 Merge: 0c5bc31 dab5b80 Author: Christopher Tubbs AuthorDate: Thu Aug 20 18:38:46 2020 -0400 Merge branch '1.10' into main pom.xml| 19 ++-- .../replication/CloseWriteAheadLogReferences.java | 27 .../RemoveCompleteReplicationRecords.java | 12 .../apache/accumulo/test/functional/ScannerIT.java | 36 -- 4 files changed, 34 insertions(+), 60 deletions(-) diff --cc pom.xml index aec76ba,5f1fae3..224aeca --- a/pom.xml +++ b/pom.xml @@@ -127,24 -127,26 +127,26 @@@ 1 - -14.0.1 -2.6.5 +3.2.1 +2.6.1 4.1.0-incubating -3.1.0-incubating +3.2.0-incubating false - -9.2.26.v20180806 -8 -1.8 -1.8 -3.5.0 +3.0.1-b06 +2.3.0.1 +2.30.1 +9.4.27.v20200227 +11 +11 +11 true -2.0.2 +2.0.5 + + 2020-08-18T00:00:00Z false -1.7.25 +1.7.30 source-release-tar false diff --cc server/gc/src/main/java/org/apache/accumulo/gc/replication/CloseWriteAheadLogReferences.java index 7f5a7c4,5dd25a1..479618f --- a/server/gc/src/main/java/org/apache/accumulo/gc/replication/CloseWriteAheadLogReferences.java +++ b/server/gc/src/main/java/org/apache/accumulo/gc/replication/CloseWriteAheadLogReferences.java @@@ -18,8 -16,10 +18,9 @@@ */ package org.apache.accumulo.gc.replication; + import java.time.Duration; import java.util.Collections; import java.util.HashSet; -import java.util.List; import java.util.Map.Entry; import java.util.Set; @@@ -76,36 -83,49 +76,35 @@@ public class CloseWriteAheadLogReferenc @Override public void run() { - // As long as we depend on a newer Guava than Hadoop uses, we have to make sure we're compatible - // with - // what the version they bundle uses. - Stopwatch sw = Stopwatch.createUnstarted(); -// Guava Stopwatch is useful here, for a friendlier toString, but the version of Guava in Hadoop -// 2 and 3 are different in incompatible ways, so we avoid it here and use Duration instead, so -// there won't be conflicts with the older Guava that ships by default with Hadoop 2. ++// Guava Stopwatch is useful here, for a friendlier toString, but the versions of Guava ++// are different in incompatible ways, so we avoid it here and use Duration instead, so ++// there won't be conflicts. + long startTime; + Duration duration; -Connector conn; -try { - conn = context.getConnector(); -} catch (Exception e) { - log.error("Could not create connector", e); - throw new RuntimeException(e); -} - -if (!ReplicationTable.isOnline(conn)) { +if (!ReplicationTable.isOnline(context)) { log.debug("Replication table isn't online, not attempting to clean up wals"); return; } -Span findWalsSpan = Trace.start("findReferencedWals"); HashSet closed = null; -try { +try (TraceScope findWalsSpan = Trace.startSpan("findReferencedWals")) { - sw.start(); + startTime = System.nanoTime(); - closed = getClosedLogs(conn); + closed = getClosedLogs(); - } finally { - sw.stop(); + duration = Duration.ofNanos(System.nanoTime() - startTime); -} finally { - findWalsSpan.stop(); } - log.info("Found {} WALs referenced in metadata in {}", closed.size(), sw); - sw.reset(); -log.info("Found " + closed.size() + " WALs referenced in metadata in " + duration); ++log.info("Found {} WALs referenced in metadata in {}", closed.size(), duration); -Span updateReplicationSpan = Trace.start("updateReplicationTable"); long recordsClosed = 0; -try { +try (TraceScope updateReplicationSpan = Trace.startSpan("updateReplicationTable")) { - sw.start(); + startTime = System.nanoTime(); - recordsClosed = updateReplicationEntries(conn, closed); + recordsClosed = updateReplicationEntries(context, closed); - } finally { - sw.stop(); + duration = Duration.ofNanos(System.nanoTime() - startTime); -} finally { - updateReplicationSpan.stop(); } - log.info("Closed {} WAL replication references in replication table in {}", recordsClosed, sw); -log.info("Closed " + recordsClosed + " WAL replication references in replication table in " -+ duration); ++log.info("Closed {} WAL replication references in replication table in {}", recordsClosed, ++duration); } /** diff --cc server/manager/src/main/java/org/apache/accumulo/master/replication/RemoveCompleteReplicationRecords.java index
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 4cbff2aa1ac4cd32ac69838487b8810096049785 Merge: 61eb916 7a2d12e Author: Christopher Tubbs AuthorDate: Mon Aug 17 14:05:45 2020 -0400 Merge branch '1.10' into main pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --cc pom.xml index 93f13d1,3b30cd8..aec76ba --- a/pom.xml +++ b/pom.xml @@@ -235,11 -193,26 +235,11 @@@ 1.14 -commons-collections -commons-collections -3.2.2 - - -commons-configuration -commons-configuration -1.6 - - commons-io commons-io - 2.6 + 2.7 -commons-lang -commons-lang -2.6 - - commons-logging commons-logging 1.2
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 61eb91632c04b592231a2af8dc45c0d3deafec64 Merge: 6844fde 92af87e Author: Christopher Tubbs AuthorDate: Sun Aug 16 15:12:11 2020 -0400 Merge branch '1.10' into main .github/workflows/maven-on-demand.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 6844fde30c3ee1b24bd4f2610da1ce89916fb391 Merge: 37fa85b 367a53e Author: Christopher Tubbs AuthorDate: Sun Aug 16 15:06:20 2020 -0400 Merge branch '1.10' into main .github/workflows/maven-on-demand.yaml | 92 ++ 1 file changed, 92 insertions(+)
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 37fa85baf5a63392bd64e2afe4d63f809199b19c Merge: d3afe5b 64dc5db Author: Christopher Tubbs AuthorDate: Sat Aug 15 16:57:44 2020 -0400 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
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 d3afe5b394b9907126d7e841559ed99a9ed11f9f Merge: e7cc0d3 7a01fb0 Author: Mike Miller AuthorDate: Fri Aug 14 15:38:20 2020 -0400 Merge branch '1.10' into main
[accumulo] 01/01: Merge branch '1.10' into main
This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git commit e7cc0d35717b099a38542a111bbd5be839302676 Merge: a165264 c581c43 Author: Christopher Tubbs AuthorDate: Thu Aug 13 21:05:30 2020 -0400 Merge branch '1.10' into main .../accumulo/iteratortest/IteratorTestInput.java | 41 -- .../iteratortest/testcases/DeepCopyTestCase.java | 5 ++- .../testcases/IsolatedDeepCopiesTestCase.java | 18 +- .../testcases/MultipleHasTopCalls.java | 3 +- .../iteratortest/testcases/ReSeekTestCase.java | 5 ++- .../iteratortest/testcases/YieldingTestCase.java | 3 +- .../test/iterator/SummingCombinerTest.java | 10 +- 7 files changed, 62 insertions(+), 23 deletions(-) diff --cc iterator-test-harness/src/main/java/org/apache/accumulo/iteratortest/IteratorTestInput.java index 05c42aa,32f0a87..5630f64 --- a/iterator-test-harness/src/main/java/org/apache/accumulo/iteratortest/IteratorTestInput.java +++ b/iterator-test-harness/src/main/java/org/apache/accumulo/iteratortest/IteratorTestInput.java @@@ -61,7 -62,31 +64,31 @@@ public class IteratorTestInput */ public IteratorTestInput(Class> iteratorClass, Map iteratorOptions, Range range, SortedMap input) { - this(iteratorClass, iteratorOptions, range, input, Collections.emptySet(), false); -this(iteratorClass, iteratorOptions, range, input, Collections.emptySet(), false, ++this(iteratorClass, iteratorOptions, range, input, Collections.emptySet(), false, + new SimpleIteratorEnvironment()); + } + + /** +* Construct an instance of the test input. +* +* @param iteratorClass +* The class for the iterator to test. +* @param iteratorOptions +* Options, if any, to provide to the iterator ({@link IteratorSetting}'s Map of +* properties). +* @param range +* The Range of data to query ({@link Scanner#setRange(Range)}). By default no column +* families filter is specified. +* @param input +* A sorted collection of Key-Value pairs acting as the table. +* @param iterEnv +* A provided {@link IteratorEnvironment}. +*/ + public IteratorTestInput(Class> iteratorClass, + Map iteratorOptions, Range range, SortedMap input, + IteratorEnvironment iterEnv) { -this(iteratorClass, iteratorOptions, range, input, Collections.emptySet(), false, ++this(iteratorClass, iteratorOptions, range, input, Collections.emptySet(), false, + requireNonNull(iterEnv)); } /** diff --cc iterator-test-harness/src/main/java/org/apache/accumulo/iteratortest/testcases/IsolatedDeepCopiesTestCase.java index 98fea67,1cf199f..ba86ff8 --- a/iterator-test-harness/src/main/java/org/apache/accumulo/iteratortest/testcases/IsolatedDeepCopiesTestCase.java +++ b/iterator-test-harness/src/main/java/org/apache/accumulo/iteratortest/testcases/IsolatedDeepCopiesTestCase.java @@@ -52,10 -49,11 +52,11 @@@ public class IsolatedDeepCopiesTestCas final SortedKeyValueIterator source = IteratorTestUtil.createSource(testInput); try { - skvi.init(source, testInput.getIteratorOptions(), new SimpleIteratorEnvironment()); - IteratorEnvironment iteratorEnvironment = testInput.getIteratorEnvironment(); ++ var iteratorEnvironment = testInput.getIteratorEnvironment(); + skvi.init(source, testInput.getIteratorOptions(), iteratorEnvironment); - SortedKeyValueIterator copy1 = skvi.deepCopy(new SimpleIteratorEnvironment()); - SortedKeyValueIterator copy2 = copy1.deepCopy(new SimpleIteratorEnvironment()); + SortedKeyValueIterator copy1 = skvi.deepCopy(iteratorEnvironment); + SortedKeyValueIterator copy2 = copy1.deepCopy(iteratorEnvironment); Range seekRange = testInput.getRange(); Collection seekColumnFamilies = testInput.getFamilies(); diff --cc iterator-test-harness/src/main/java/org/apache/accumulo/iteratortest/testcases/YieldingTestCase.java index d2f2ef7,392770d..ea20b32 --- a/iterator-test-harness/src/main/java/org/apache/accumulo/iteratortest/testcases/YieldingTestCase.java +++ b/iterator-test-harness/src/main/java/org/apache/accumulo/iteratortest/testcases/YieldingTestCase.java @@@ -46,10 -44,12 +45,10 @@@ public class YieldingTestCase extends O final SortedKeyValueIterator source = IteratorTestUtil.createSource(testInput); try { - skvi.init(source, testInput.getIteratorOptions(), new SimpleIteratorEnvironment()); + skvi.init(source, testInput.getIteratorOptions(), testInput.getIteratorEnvironment()); YieldCallback yield = new YieldCallback<>(); - if (skvi instanceof YieldingKeyValueIterator) { -((YieldingKeyValueIterator) skvi).enableYielding(yield); - } + skvi.enableYielding(yield)