accumulo.git
5 weeks agoDisable Merging MINC by default (#2708) 1.10
Mike Miller [Tue, 24 May 2022 17:38:39 +0000 (17:38 +0000)] 
Disable Merging MINC by default (#2708)

* Merging minor compactions can lead to bad situations where a Tablet
can't flush. They have been removed in version 2.1. This change makes
the default value of table.compaction.minor.merge.file.size.max 1 byte,
which should disable merging minc by default.
* Here is the situation where a Tablet couldn't flush: An overwhelmed tserver hosting a hot spot Tablet was hitting its max WAL limit (TABLE_MINC_LOGS_MAX) so it was forcing a flush on the Tablet. The TabletServerBatchWriter would try to flush its data by calling applyUpdates() to the current commit session. The flush would timeout on the tserver, presumably due to hitting max number of write threads and/or connection pools filling up. A HoldTimeoutException would be thrown on the client. The WALs would keep growing due to the Tablet not flushing and live ingest continuing.

6 weeks agoGeneral improvements to CI (#2715)
Mike Miller [Tue, 17 May 2022 19:26:00 +0000 (19:26 +0000)] 
General improvements to CI (#2715)

4 months ago[maven-release-plugin] prepare for next development iteration
Christopher Tubbs [Tue, 8 Feb 2022 14:59:17 +0000 (09:59 -0500)] 
[maven-release-plugin] prepare for next development iteration

4 months ago[maven-release-plugin] prepare release rel/1.10.2 rel/1.10.2
Christopher Tubbs [Tue, 8 Feb 2022 14:59:16 +0000 (09:59 -0500)] 
[maven-release-plugin] prepare release rel/1.10.2

4 months agoMinor pre-release cleanup
Christopher Tubbs [Tue, 8 Feb 2022 07:09:02 +0000 (02:09 -0500)] 
Minor pre-release cleanup

* Bump some plugins to improve build quality
* Fix redundant null check compiler warnings seen in Eclipse
* Suppress unimportant spotbugs fings for single use Random
* Bump bouncycastle, jetty, reload4j, gson, and jcommander
* Bump junit, powermock, easymock

4 months agoSwap in reload4j instead of log4j1.2 (#2458)
Christopher Tubbs [Fri, 4 Feb 2022 21:02:09 +0000 (16:02 -0500)] 
Swap in reload4j instead of log4j1.2 (#2458)

* Swap in reload4j 1.2.18.3 instead of log4j1.2

For the 1.10.x branch, use reload4j instead of the EOL log4j1.2, which
contains several CVEs and is no longer supported by its Apache project.
Reload4j is the continuation of log4j1.2, forked from the Apache
project by the original log4j1 creator. It is largely a drop-in
replacement for log4j1.2.

* Use reload4j 1.2.18.4 and disable ZK log4j1.2 jmx

Partially backport the disabling of jmx for log4j1.2 from #1531 in order
to allow MiniAccumuloCluster to function with the latest reload4j, which
removed jmx features. This is necessary for certain older versions of
ZooKeeper that fail to properly detect whether log4j has jmx support
(See https://issues.apache.org/jira/browse/ZOOKEEPER-3737)

4 months agoApply timeoutMillis to socket.connect() (#2459) (#2464)
FineAndDandy [Fri, 4 Feb 2022 12:03:06 +0000 (07:03 -0500)] 
Apply timeoutMillis to socket.connect() (#2459) (#2464)

5 months agoBump copyright date for 2022
Christopher Tubbs [Mon, 10 Jan 2022 20:24:27 +0000 (15:24 -0500)] 
Bump copyright date for 2022

6 months agoMake test scripts clean up duplicate classes
Mike Miller [Fri, 17 Dec 2021 18:23:59 +0000 (13:23 -0500)] 
Make test scripts clean up duplicate classes

* The test scripts in start create multiple classes with the same name
that can cause problems for IDEs. The classes are only used to create
jars for the VFS tests so just drop the intermediate class files when done
creating the jars.

7 months agoFix incorrect scan range output in getsplits command (#2370)
Mark Owens [Mon, 29 Nov 2021 18:16:54 +0000 (13:16 -0500)] 
Fix incorrect scan range output in getsplits command (#2370)

In the Accumulo shell, calling getsplits with the verbose option can result in incorret output. It occurs when the tableId of the table happens to be a single character and there are other tables where the tableId starts with the same character. This results in the output of getsplits displaying splits for the other tables as well.

Added a couple of grammatical fixes based upon @millerruntime suggestions.

Closes #2356

10 months agoreverts inadvertent .gitignore changes
Keith Turner [Thu, 5 Aug 2021 22:48:43 +0000 (18:48 -0400)] 
reverts inadvertent .gitignore changes

10 months agoremoves extraneous code from TabletIteratorTest
Keith Turner [Thu, 5 Aug 2021 22:37:12 +0000 (18:37 -0400)] 
removes extraneous code from TabletIteratorTest

13 months agoBump plugin versions (#2102)
Christopher Tubbs [Wed, 12 May 2021 23:03:58 +0000 (19:03 -0400)] 
Bump plugin versions (#2102)

* Bump plugin versions to latest
* Update spotbugs filters for updated spotbugs version
* Fix spotbugs issue with non-public main class ConfigurationDocGen
* Fix checkstyle issues for updated checkstyle version
* Remove unused import

14 months agore #2006: Removed the configuration Observable mechism
Ivan Bella [Fri, 9 Apr 2021 19:37:39 +0000 (19:37 +0000)] 
re #2006: Removed the configuration Observable mechism
* The properties are now reloaded on every balance and getAssignments call.  Hence the table configuration observable mechanism is no longer required.

14 months agore #2006: changed method from public to protected
Ivan Bella [Fri, 9 Apr 2021 17:34:38 +0000 (17:34 +0000)] 
re #2006: changed method from public to protected

14 months agoRevert "Revert "Ensure that HostRegexTableLoadBalancer propery changes are picked...
Ivan Bella [Wed, 7 Apr 2021 16:21:27 +0000 (16:21 +0000)] 
Revert "Revert "Ensure that HostRegexTableLoadBalancer propery changes are picked up""

This reverts commit 30fd56eb3e0ef5f6cd3d7c86c2c133b48eb53f21.

14 months agoFix IP address in GitHub Actions container (#2024)
Christopher Tubbs [Fri, 16 Apr 2021 08:10:48 +0000 (04:10 -0400)] 
Fix IP address in GitHub Actions container (#2024)

Fix #2016 by adding an entry to /etc/hosts to fix incorrect DNS entries,
which return an IP for the current machine's hostname that does not
match any IP address in the machine. Adding an entry to /etc/hosts
to force the hostname to match on eth0's IP address.

14 months agoUpdate GitHub Actions workflow timeouts
Christopher Tubbs [Wed, 14 Apr 2021 17:46:58 +0000 (13:46 -0400)] 
Update GitHub Actions workflow timeouts

For issue #2016, regarding unexplained hung test processes, update the
job timeouts so the Maven task terminates, but the upload-artifact step
can still be run, to see the logs to help troubleshoot the failures.

Make individual Maven build steps timeout, rather than the entire job.

14 months agoRevert "Ensure that HostRegexTableLoadBalancer propery changes are picked up"
Ivan Bella [Wed, 7 Apr 2021 16:16:18 +0000 (16:16 +0000)] 
Revert "Ensure that HostRegexTableLoadBalancer propery changes are picked up"

This reverts commit 2d126407ee960894611ee3044e4cf92036185048.

14 months agoEnsure that HostRegexTableLoadBalancer propery changes are picked up
Ivan Bella [Wed, 7 Apr 2021 16:11:56 +0000 (16:11 +0000)] 
Ensure that HostRegexTableLoadBalancer propery changes are picked up
* When properties are set at the system level for the HostRegexTableLoadBalancer,
  the changes are not picked up and requires the master to be restarted.  This
  change ensures that the property changes are always picked up whenever balance
  or getAssignments is called.

15 months agoUse stronger crypto settings for test certificates (#1960)
Christopher Tubbs [Sat, 6 Mar 2021 15:59:49 +0000 (10:59 -0500)] 
Use stronger crypto settings for test certificates (#1960)

Backport of 51e18e20ff7e4bdd8d164c99ec8551136d31dc37 for 1.10

* Use 4096 bit RSA keys and SHA512withRSA instead of SHA1withRSA for the
  certificate signing algorithm for certificates generated for testing
  Accumulo's TLS support
* This avoids problems with test breakages in environments, such as
  Fedora 33, with strong default crypto policies for Java that restrict
  weak crypto, or if the user has restricted their Java security
  policies themselves

16 months agoImprovements to TabletStateChangeIteratorIT (#1933)
Mike Miller [Tue, 16 Feb 2021 20:11:26 +0000 (15:11 -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

16 months agoImprove filename extension usage in RFile API (#1917)
Mike Miller [Thu, 11 Feb 2021 12:32:34 +0000 (07:32 -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 <ctubbsii@apache.org>
16 months agoAdd a Bulk import to randomwalk MultiTable (#1911)
Mike Miller [Mon, 8 Feb 2021 17:24:15 +0000 (12:24 -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

16 months agoRemove obsolete TODO (#1901) (#1908)
Jeffrey Manno [Thu, 4 Feb 2021 14:12:48 +0000 (09:12 -0500)] 
Remove obsolete TODO (#1901) (#1908)

16 months agoFix #1889 Clarify IteratorEnvironment is non-null
Christopher Tubbs [Mon, 1 Feb 2021 20:33:32 +0000 (15:33 -0500)] 
Fix #1889 Clarify IteratorEnvironment is non-null

Update javadoc for SortedKeyValueIterator methods that receive an
IteratorEnvironment to mention that the environment is provided by
Accumulo itself and is expected to be non-null.

17 months agoMake UnloadTabletHandler log before waiting (#1881)
Mike Miller [Wed, 27 Jan 2021 13:09:54 +0000 (08:09 -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

17 months agoAdd tserver to badservers instead of dropping. Fixes #1775
Mike Miller [Fri, 22 Jan 2021 16:33:50 +0000 (11:33 -0500)] 
Add tserver to badservers instead of dropping. Fixes #1775

* When the Master killed a tserver due to holdTime, it would just
disappear on the Monitor because it was being dropped from the active
tserver list. Instead of dropping it, this will add it to the list of
badservers, giving the Monitor a chance to see it dead.

17 months agoRe-throw exception from LoggingRunnable (re #1808)
Brian Loss [Tue, 12 Jan 2021 15:20:17 +0000 (10:20 -0500)] 
Re-throw exception from LoggingRunnable (re #1808)

* Re-throw the caught Throwable unless we received a more serious
  Error when attempting to log the original Throwable. In that case
  propagate the more serious error instead.

17 months agoAdd check for finished to LogSorter (#1863)
Mike Miller [Tue, 12 Jan 2021 19:45:40 +0000 (14:45 -0500)] 
Add check for finished to LogSorter (#1863)

* Check for finished file in LogSorter before performing sort
* LogSorter was always removing the destination sort directory even if
it had previously been successfully sorted, creating lots of duplicate
and unnecessary work during recovery

17 months agoMerge pull request #1860 from brianloss/1.10
Brian Loss [Thu, 7 Jan 2021 18:36:06 +0000 (13:36 -0500)] 
Merge pull request #1860 from brianloss/1.10

Use long instead of int for monitor scan rate (#1858)

17 months agoUse long instead of int for monitor scan rate (#1858) 1860/head
Brian Loss [Thu, 7 Jan 2021 16:27:04 +0000 (11:27 -0500)] 
Use long instead of int for monitor scan rate (#1858)

18 months agoReduce log level of replication offline retries (#1843)
Mike Miller [Wed, 30 Dec 2020 12:10:41 +0000 (07:10 -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

18 months agoUpdate copyright date to 2021
Christopher Tubbs [Tue, 29 Dec 2020 05:39:39 +0000 (00:39 -0500)] 
Update copyright date to 2021

Prepare for any 2021 releases by updating copyright notice dates from
2020 to 2021.

18 months ago[maven-release-plugin] prepare for next development iteration
Christopher Tubbs [Thu, 17 Dec 2020 22:06:50 +0000 (17:06 -0500)] 
[maven-release-plugin] prepare for next development iteration

18 months ago[maven-release-plugin] prepare release rel/1.10.1 rel/1.10.1
Christopher Tubbs [Thu, 17 Dec 2020 22:06:50 +0000 (17:06 -0500)] 
[maven-release-plugin] prepare release rel/1.10.1

18 months agoFix #1792 flaky/broken GcMetricsIT
Christopher Tubbs [Thu, 17 Dec 2020 03:29:17 +0000 (22:29 -0500)] 
Fix #1792 flaky/broken GcMetricsIT

Rewrite portions of GcMetricsIT to improve its reliability and to add
comments and rename methods to make it more clear how it is intended to
work, so it's easier to debug in future.

Also use daemon threads for the tailer, and ensure it is started
consistently (using a dedicated method) and closed properly when done.

Remove unnecessary catching of exceptions, and allow them to be thrown
from the tests instead, because they will be handled by the test
framework.

18 months agoAdd additional permission checks (#1832)
Jeffrey Manno [Wed, 16 Dec 2020 03:27:06 +0000 (22:27 -0500)] 
Add additional permission checks (#1832)

* Update AuditMessageIT to test auditing of flush commands
* Add new ManagerApiIT to test permissions checks of
  MasterClientServiceHandler RPC endpoints
* Fill in missing checks for SYSTEM permissions in PermissionsIT
  (and add flush tests for WRITE and ALTER_TABLE permissions)

Co-authored-by: Dave Marion <dlmarion@apache.org>
Co-authored-by: Christopher Tubbs <ctubbsii@apache.org>
18 months agoBackport JUnit upgrade from #1562 to 1.10.1
Christopher Tubbs [Tue, 15 Dec 2020 18:25:08 +0000 (13:25 -0500)] 
Backport JUnit upgrade from #1562 to 1.10.1

Update JUnit dependency, and use assertThrows instead of
ExpectedException Rule and hamcrest library, to avoid deprecation
warnings and an unnecessary test dependency.

18 months agoThrow sercurity exceptions when permissions checks fail. Backport to 1.10 (#1830)
Jeffrey Manno [Wed, 9 Dec 2020 15:26:20 +0000 (10:26 -0500)] 
Throw sercurity exceptions when permissions checks fail. Backport to 1.10 (#1830)

* backport sercurity exceptions to 1.10

* fix AuditMessageIT

18 months agoImprove log message in Delete CleanUp FATE. (#1829)
Mike Miller [Tue, 8 Dec 2020 19:39:17 +0000 (14:39 -0500)] 
Improve log message in Delete CleanUp FATE. (#1829)

Co-authored-by: Christopher Tubbs <ctubbsii@apache.org>
19 months agoBackport some GcMetricsIT test stability to 1.10
Christopher Tubbs [Thu, 26 Nov 2020 18:04:01 +0000 (13:04 -0500)] 
Backport some GcMetricsIT test stability to 1.10

Backport some test stability fixes to GcMetricsIT implemented in #1745
to Accumulo 1.10.1

19 months agoMinor fixup of build
Christopher Tubbs [Thu, 26 Nov 2020 17:58:28 +0000 (12:58 -0500)] 
Minor fixup of build

* Show rat output in console (partial backport to 1.x from #1767)
* Don't skip enforcer when skipQA profile is active, because it is
  necessary for enforcing build requirements (and isn't costly to run)
* Enforce the JDK version to less than 15 for Accumulo 1.x, because
  Concurrent Mark and Sweep garbage collector options were removed from
  JDK 15, which Accumulo 1.x uses in its scripts and in Mini. While
  Accumulo 1.x can still compile and build in JDK 15, it will not be
  able to run as-is, including running tests, resulting in hard-to-track
  and confusing errors for developers. It is easier to enforce the JDK
  version to being at least 11, and strictly less than 15, during
  development.

19 months agoMake skipQA profile more human-proof (#1807)
Christopher Tubbs [Wed, 25 Nov 2020 16:56:50 +0000 (11:56 -0500)] 
Make skipQA profile more human-proof (#1807)

Support activation of skipQA profile using either of two options:
1. `-PskipQA` (existing option) OR
2. `-DskipQA` (new option in this patch)

20 months agoBack port #1754 to 1.10
Mike Miller [Wed, 28 Oct 2020 18:26:12 +0000 (14:26 -0400)] 
Back port #1754 to 1.10

* Update jvm option for JDWP in Mini

20 months agoConfigure surefire/failsafe forkCount separately (#1756)
Christopher Tubbs [Wed, 28 Oct 2020 16:55:22 +0000 (12:55 -0400)] 
Configure surefire/failsafe forkCount separately (#1756)

* Create new configuration properties in the build configuration for
  surefire.forkCount and failsafe.forkCount to enable configuring them
  independently of one another
* Create a profile to set both surefire.forkCount and failsafe.forkCount
  together, if desired
* Remove forkCount settings from the build workflow, instead selecting
  sane defaults that are equivalent
* Force minicluter to use one surefire fork only (along with start
  module) to avoid potential conflicts

20 months agoAdd libraries in tool.sh script for 1.10 examples (#1737)
Mark Owens [Thu, 15 Oct 2020 16:01:04 +0000 (12:01 -0400)] 
Add libraries in tool.sh script for 1.10 examples (#1737)

When attempting to run the 1.10.x Accumulo examples with Hadoop version 3.x, there were several NoClassDefFoundError exceptions thrown when using the tool.sh script to run MR jobs. This PR updates the tool.sh script to add the necessary jar files to the lib path allowing the MR jobs to run successfully. The additions work with both Hadoop 2.x and Hadoop 3.x.

20 months agoUse mktemp arg that works on on alpine-based distros (#1734)
larsw [Wed, 14 Oct 2020 18:42:54 +0000 (20:42 +0200)] 
Use mktemp arg that works on on alpine-based distros (#1734)

* Fix build_native_library.sh so that it runs on alpine-based (e.g. Alpine)-based distros
* Fixes #1731

20 months agoUpdate README.combiner
Mark Owens [Wed, 14 Oct 2020 17:44:28 +0000 (13:44 -0400)] 
Update README.combiner

Update readme to display missing output line from call to setiter.

20 months agoUpdate regex expression in tool.sh (#1729)
Mark Owens [Fri, 9 Oct 2020 20:36:48 +0000 (16:36 -0400)] 
Update regex expression in tool.sh (#1729)

* Update tool.sh for 1.x to modify the regex to successfully determine the zookeeper version

20 months agoAdd missing script for creatin the IT matrix
Christopher Tubbs [Fri, 9 Oct 2020 20:19:31 +0000 (16:19 -0400)] 
Add missing script for creatin the IT matrix

20 months agoUpdate CI jobs to build PRs and see failure logs
Christopher Tubbs [Fri, 9 Oct 2020 20:10:51 +0000 (16:10 -0400)] 
Update CI jobs to build PRs and see failure logs

* Add `if: failure()` to upload-artifact tasks so we get the logs for
  failed tasks
* Allow input for the ref to build for manually triggered jobs (so we
  can build PRs)
* Show the first git log message to ensure we can verify upon inspection
  that the chosen ref was built

20 months agoUpdate release candidate script (#1724)
Christopher Tubbs [Wed, 7 Oct 2020 17:18:21 +0000 (13:18 -0400)] 
Update release candidate script (#1724)

Improving generated output:
* show link to staging repo website
* show full commits
* show reminders of which buttons to click on the staging site
* show reminder to replace `$origin` with actual remote name
* place `-s` in `git tag` command with the other options
* update draft release notes link to point to staged site

Optimizing performance:
* create the `-next` branch and switch to it in one command
* skip tests during release prep because the release can (and should) be
  tested outside of the actual release candidate creation process and
  this speeds things up significantly
* change release prep goal to only do `package`, because it's not
  necessary to run `verify` during `release:prepare`; all the QA checks
  done at `verify` can be done before/after release candidate staging

Being more interactive:
* prompt for gpg key to use
* prompt for the `remote` to push to (do not assume `origin`)

Removing junk:
* remove check for `gpg2` (modern Linux uses version 2 for the `gpg` binary)
* remove unnecessary `--test` option and related `runOrFail` function
* remove `extraReleaseArguments` to simplify things

21 months agoUpdate run-verify.sh to not fail when optional arguments passed are empty (#1717)
Karthick Narendran [Tue, 29 Sep 2020 20:09:54 +0000 (21:09 +0100)] 
Update run-verify.sh to not fail when optional arguments passed are empty (#1717)

* Use Array variable as suggested by Christopher

21 months agoUpdate tool.sh to set correct ZOOKEEPER_CMD. (#1716)
Mark Owens [Mon, 28 Sep 2020 19:44:13 +0000 (15:44 -0400)] 
Update tool.sh to set correct ZOOKEEPER_CMD. (#1716)

ZooKeeper changed directory structure between versions 3.4 and 3.5. This
update sets the correct ZooKeeper depending upon version used.

* Updated tool.sh to set correct ZOOKEEPER_CMD.

* Added  suggested change to guarantee ZOOKEEPER_VERSION is defined. Also update to use regex pattern checking for version.

Co-authored-by: Christopher Tubbs <ctubbsii@apache.org>
21 months agoMerge branch '1.10.0-rc2-next' into 1.10
Christopher Tubbs [Thu, 3 Sep 2020 02:26:56 +0000 (22:26 -0400)] 
Merge branch '1.10.0-rc2-next' into 1.10

22 months agoUpdate formatter plugin version
Christopher Tubbs [Tue, 1 Sep 2020 17:45:54 +0000 (13:45 -0400)] 
Update formatter plugin version

22 months ago[maven-release-plugin] prepare for next development iteration
Mike Miller [Thu, 27 Aug 2020 15:56:15 +0000 (11:56 -0400)] 
[maven-release-plugin] prepare for next development iteration

22 months ago[maven-release-plugin] prepare release rel/1.10.0 rel/1.10.0
Mike Miller [Thu, 27 Aug 2020 15:56:15 +0000 (11:56 -0400)] 
[maven-release-plugin] prepare release rel/1.10.0

22 months agoFix file permissions in source assembly tarball (#1692)
Christopher Tubbs [Thu, 27 Aug 2020 12:18:02 +0000 (08:18 -0400)] 
Fix file permissions in source assembly tarball (#1692)

Fix permissions mangling caused by the latest versions of the assembly
plugin.

Use maven-assembly-plugin-3.1.1 because of MASSEMBLY-941
https://issues.apache.org/jira/browse/MASSEMBLY-941

22 months agoUpdate powermock to 2.0.7 (#1691)
Mike Miller [Mon, 24 Aug 2020 18:48:39 +0000 (14:48 -0400)] 
Update powermock to 2.0.7 (#1691)

22 months agoUpdate bouncycastle version to 1.66 (#1690)
Mike Miller [Mon, 24 Aug 2020 18:48:15 +0000 (14:48 -0400)] 
Update bouncycastle version to 1.66 (#1690)

22 months agoTune timeouts for some flakey tests
Christopher Tubbs [Fri, 21 Aug 2020 15:20:44 +0000 (11:20 -0400)] 
Tune timeouts for some flakey tests

Increase default timeouts for some tests which routinely time out during
CI testing on Jenkins.

22 months agoFix issues in prep for 1.10 release (#1688)
Christopher Tubbs [Thu, 20 Aug 2020 19:47:19 +0000 (15:47 -0400)] 
Fix issues in prep for 1.10 release (#1688)

* Bump snapshot versions to 1.10.0-SNAPSHOT
* Converge the Hadoop 2 and Hadoop 3 assemblies, so only one is
  necessary (tested both on Hadoop 2.6.5, 3.0.3, and 3.3.0 using
  fluo-uno)
* Bumped plugin versions and added timestamp flag for increased build
  reproducibility; timestamp should automatically update during release
  process; verified the built jars differ only in the contents of the
  generated META-INF/DEPENDENCIES file when building with the Hadoop2
  vs. the Hadoop3 profiles, and since this file doesn't matter, they are
  now provably equivalent builds
* Fixed some Hadoop profile issues, and updated Hadoop versions to
  latest patch version in the minor release lines we had previously been
  building with as our minimum supported versions
* Update Guava-related code to work with both Hadoop 2 and 3;
  suppress warnings or migrate code to avoid code paths that won't work
  across Guava versions, for fewer class path surprises related to
  Guava
* Update asciidoc plugin, and fix various doc build issues warned about
  by the plugin
* Use last commons-io that doesn't break vfs2
* Make Guava version configurable at build time, so it's easier to build a
  package that contains a version of guava suitable for Hadoop 3.1 and later.

22 months agoFix warnings from #1687
Christopher Tubbs [Mon, 17 Aug 2020 16:40:40 +0000 (12:40 -0400)] 
Fix warnings from #1687

22 months agoUpdate commons-* libraries (#1687)
Mike Miller [Mon, 17 Aug 2020 14:40:15 +0000 (10:40 -0400)] 
Update commons-* libraries (#1687)

* Update commons-cli to 1.4
* Update commons-codec to 1.14
* Update commons-io to 2.7
* Update commons-lang to 2.6
* Update commons-logging to 1.2

22 months agoFix typo in workflow file
Christopher Tubbs [Sun, 16 Aug 2020 19:11:56 +0000 (15:11 -0400)] 
Fix typo in workflow file

22 months agoAdd workflow for triggering a custom build
Christopher Tubbs [Sun, 16 Aug 2020 19:05:09 +0000 (15:05 -0400)] 
Add workflow for triggering a custom build

Add a `workflow_dispatcher` action that can be triggered manually to run
the full ITs, a single test, or anything in-between, on demand.

22 months agoFix JCommander warnings from #1684
Christopher Tubbs [Sat, 15 Aug 2020 20:56:00 +0000 (16:56 -0400)] 
Fix JCommander warnings from #1684

22 months agoUpdate jcommander to 1.78 (#1684)
Mike Miller [Fri, 14 Aug 2020 19:24:07 +0000 (15:24 -0400)] 
Update jcommander to 1.78 (#1684)

22 months agoUpdate gson to 2.8.6 (#1686)
Mike Miller [Fri, 14 Aug 2020 18:39:55 +0000 (14:39 -0400)] 
Update gson to 2.8.6 (#1686)

22 months agoSupport IteratorEnvironment in test harness (#1681)
Christopher Tubbs [Fri, 14 Aug 2020 00:57:35 +0000 (20:57 -0400)] 
Support IteratorEnvironment in test harness (#1681)

* Adds the ability to provide a custom IteratorEnvironment to the
  iterator-test-harness
* This fixes a test failure in SummingCombinerTest caused by recent
  changes to Combiner in #1680

22 months agoModify Combiner init method to honor all options. Fixes #1678 (#1680)
Mike Miller [Thu, 13 Aug 2020 12:06:47 +0000 (08:06 -0400)] 
Modify Combiner init method to honor all options. Fixes #1678 (#1680)

22 months agoMove MinorCompaction method call into retry catch block. Fixes #1298 (#1675)
Mike Miller [Wed, 12 Aug 2020 12:30:40 +0000 (08:30 -0400)] 
Move MinorCompaction method call into retry catch block. Fixes #1298 (#1675)

* Fixes the situation when MinorCompactionTask creates a
new File and an IOException leaves the Tablet in a bad state
* Moves the new file code into the try/catch block that will
retry during an IOException

22 months agoIgnore some warnings in CI workflow (#1671)
Christopher Tubbs [Fri, 7 Aug 2020 08:40:20 +0000 (04:40 -0400)] 
Ignore some warnings in CI workflow (#1671)

Ignore warnings produced by upload-artifact step if no files are
available to upload. Not all jobs in the matrix build are expected to
produce artifacts, so this isn't a problem worth warning about.

22 months agoPublish test results in CI workflow (#1671)
Christopher Tubbs [Fri, 7 Aug 2020 08:30:12 +0000 (04:30 -0400)] 
Publish test results in CI workflow (#1671)

22 months agoFix javadoc html header elements on newer JDKs
Christopher Tubbs [Wed, 5 Aug 2020 23:06:33 +0000 (19:06 -0400)] 
Fix javadoc html header elements on newer JDKs

As of JDK 13, the javadoc tool's linter requires user headers in
javadocs to start at h2, and checks that h1 appears before h2 in
generated HTML. The side-effect of this check is that any raw (not
generated by javadoc) doc-files html needs to start at h1, before using
h2.

22 months agoImprove CI workflow (#1671)
Christopher Tubbs [Wed, 5 Aug 2020 18:53:22 +0000 (14:53 -0400)] 
Improve CI workflow (#1671)

* Add timeout
* Make matrix similar across branches
* Better naming of matrix jobs
* Better branch pattern matching
* Exclude accumulo artifacts from cache
* Suppress transfer progress when downloading artifacts

22 months agoUse GitHub Actions for CI testing (#1671)
Christopher Tubbs [Wed, 5 Aug 2020 16:22:01 +0000 (12:22 -0400)] 
Use GitHub Actions for CI testing (#1671)

Add GitHub Actions for CI and remove Travis CI configuration, for the
1.9/1.10 maintenance branch.

22 months agoFix #1663 Missing metrics files running CI tests (#1667)
EdColeman [Tue, 4 Aug 2020 20:41:58 +0000 (16:41 -0400)] 
Fix #1663 Missing metrics files running CI tests (#1667)

- excluded hadoop-metrics2-accumulo.properties from jar plugin
- added gc metrics config sample to template

Co-authored-by: Ed Coleman <edcoleman.apache.org>
Co-authored-by: Christopher Tubbs <ctubbsii@apache.org>
23 months agoRemove obsolete workaround for Eclipse bug
Christopher Tubbs [Thu, 16 Jul 2020 18:22:49 +0000 (14:22 -0400)] 
Remove obsolete workaround for Eclipse bug

Remove unneeded Maven profile for runtime dependency resolution in the
compile scope while using Eclipse/M2E. Newer versions of Eclipse have
fixed the bug.

Related to #1652 (but for the 1.9 branch).

23 months agoClose unclosed Scanners
Christopher Tubbs [Thu, 16 Jul 2020 06:11:52 +0000 (02:11 -0400)] 
Close unclosed Scanners

Close unclosed scanners detected by Eclipse IDE

23 months agoRename yield method (future restricted identifier)
Christopher Tubbs [Thu, 16 Jul 2020 04:58:16 +0000 (00:58 -0400)] 
Rename yield method (future restricted identifier)

(Backport of c5ecd474dbed016cc6653870fedcce863550a44f)

Rename a private yield method in SourceSwitchingIteratorTest to avoid
conflicting with future versions of Java. In future Java releases,
'yield' is a restricted keyword.

Verified failure (and fix) using the following on OpenJDK13:

```
mvn clean package -DskipTests -Dmaven.compiler.failOnWarning=true
```

23 months agoMerge pull request #1646 from ivakegg/ACCUMULO-1644
Ivan Bella [Tue, 7 Jul 2020 12:22:58 +0000 (08:22 -0400)] 
Merge pull request #1646 from ivakegg/ACCUMULO-1644

fixes #1644: minor compaction retry

2 years agofixes #1644: minor compaction retry 1646/head
Ivan Bella [Tue, 30 Jun 2020 18:33:22 +0000 (18:33 +0000)] 
fixes #1644: minor compaction retry
* Updated the minor compaction to gracefully handle temporary VFS class loader issues while minor compacting

2 years agoUpdate spotbugs-maven-plugin (for JDK14)
Christopher Tubbs [Tue, 21 Apr 2020 20:35:05 +0000 (16:35 -0400)] 
Update spotbugs-maven-plugin (for JDK14)

2 years agoUpdate maven-enforcer-plugin (for JDK14)
Christopher Tubbs [Tue, 21 Apr 2020 20:32:04 +0000 (16:32 -0400)] 
Update maven-enforcer-plugin (for JDK14)

2 years agoFix idempotency bug in importtable (#1555)
Arvind Shyamsundar [Thu, 12 Mar 2020 18:02:45 +0000 (11:02 -0700)] 
Fix idempotency bug in importtable (#1555)

* Fix idempotency bug in importtable
The previous implementation would fail when an interrupted importtable
operation was retried by FATE, as it would not find (already moved)
files in the exported directory. Additionally, this commit also removes
a chatty fs.exists() check.

* Use Set operations to streamline code
This code uses set operations to validate if there are missing files in
the exported (source) directory. In addition the usage of sets improves
perf compared to the lambda scanning the file status arrays.

* Fix formatting and use inbuilt Java joiner

2 years agoUpdate copyright dates for 2020 releases
Christopher Tubbs [Sun, 8 Mar 2020 14:11:05 +0000 (10:11 -0400)] 
Update copyright dates for 2020 releases

2 years agoFix unused variable warning from #1536
Christopher Tubbs [Fri, 6 Mar 2020 23:57:32 +0000 (18:57 -0500)] 
Fix unused variable warning from #1536

2 years agoImprove master metrics rported (#1536)
EdColeman [Fri, 6 Mar 2020 20:16:32 +0000 (15:16 -0500)] 
Improve master metrics rported (#1536)

Adds FATE transaction state and op types reported via hadoop metrics2
Improves metrics tests
Add IT to verify that enabling legacy metrics does not crash master
Added ZooReaderWriter getInstance() for testing.

2 years agoFixes #1525 - remove lines added in b67d3f9 in VolumeUtil (#1539)
Jeffrey Zeiberg [Tue, 3 Mar 2020 16:58:41 +0000 (11:58 -0500)] 
Fixes #1525 - remove lines added in b67d3f9 in VolumeUtil (#1539)

* Revert optimization that broke special tablet directory volume code
that is still needed in 1.X

2 years agoEnable logs for accumulo-maven-plugin's IT
Christopher Tubbs [Thu, 27 Feb 2020 19:42:22 +0000 (14:42 -0500)] 
Enable logs for accumulo-maven-plugin's IT

2 years agoFix #1532 Remove need for Ant on class path
Christopher Tubbs [Thu, 27 Feb 2020 19:32:32 +0000 (14:32 -0500)] 
Fix #1532 Remove need for Ant on class path

Make MetricsConfiguration use a MapConfiguration with System.getenv()
rather than EnvironmentConfiguration, to get the environment properties.
EnvironmentConfiguration uses Ant code, which is not available on the
class path (typically) to get the environment, so it should be avoided.

2 years agoRe #1492 Disable unreliable replication tests (#1524)
Christopher Tubbs [Mon, 24 Feb 2020 21:55:19 +0000 (16:55 -0500)] 
Re #1492 Disable unreliable replication tests (#1524)

Fixes #1226 Disables frequently failing CyclicReplicationIT

2 years agoDecrease recovery cache time from 45s to 15s (#1526)
Mike Miller [Thu, 20 Feb 2020 14:40:48 +0000 (09:40 -0500)] 
Decrease recovery cache time from 45s to 15s (#1526)

* This should help timing of ITs which deal with recovery but will
still prevent too many exist calls to NN in production

2 years agoFix #1520 Limit UnsynchronizedBuffer max size (#1523)
Christopher Tubbs [Wed, 19 Feb 2020 23:25:44 +0000 (18:25 -0500)] 
Fix #1520 Limit UnsynchronizedBuffer max size (#1523)

Limit UnsynchronizedBuffer maximum size to Integer.MAX_VALUE - 8, the
same limit as ArrayList, because of some JVM behavior being unable to
allocate arrays with Integer.MAX_VALUE.

2 years agoMake Accumulo 1.9 compatible with ZK 3.5 (#1506)
Karthick Narendran [Wed, 12 Feb 2020 17:43:39 +0000 (12:43 -0500)] 
Make Accumulo 1.9 compatible with ZK 3.5 (#1506)

2 years agoOptimize Tablet volume replacement (#1505)
Mike Miller [Wed, 12 Feb 2020 13:28:02 +0000 (08:28 -0500)] 
Optimize Tablet volume replacement (#1505)

* Stop volume replacements from checking every file when not used

2 years agoClean-up / remove comments in code from gc_metrics_backport when merged. (#1499)
EdColeman [Tue, 4 Feb 2020 19:40:17 +0000 (14:40 -0500)] 
Clean-up / remove comments in code from gc_metrics_backport when merged. (#1499)