[GitHub] EdColeman commented on issue #394: ACCUMULO-4836 make online table always wait

2018-03-01 Thread GitBox
EdColeman commented on issue #394: ACCUMULO-4836 make online table always wait
URL: https://github.com/apache/accumulo/pull/394#issuecomment-369808863
 
 
   Does this revert the behavior that ACCUMULO-4574 was trying to address - if 
the table is online, return and do not wait for additional actions? The 
original behavior would block if there was a fate operation on the table and 
online was called - the original fix was to not block and return because the 
table was online and no additional actions were required to be in online.
   
   If the table is online - why do we need to wait?


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Commented] (ACCUMULO-4836) Tables do not always wait for online or offline

2018-03-01 Thread Ed Coleman (JIRA)

[ 
https://issues.apache.org/jira/browse/ACCUMULO-4836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16383086#comment-16383086
 ] 

Ed Coleman commented on ACCUMULO-4836:
--

I am unclear on the proposed fix - actually I'm unclear on the problem - not 
saying this is incorrect, I just don't understand the logic being proposed.

If the table is online - what is there to wait for? Should it not be that if 
the expected state is not online, then check wait...

if(expectedState == TableStae.ONLINE){

  return;

}

if(wait){

  waitForTableStateTransisition(tableId, TableState.ONLINE);

  return;

}

> Tables do not always wait for online or offline
> ---
>
> Key: ACCUMULO-4836
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4836
> Project: Accumulo
>  Issue Type: Bug
>Affects Versions: 1.7.3
>Reporter: Keith Turner
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.7.4, 1.9.0, 2.0.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> While investigating why TabletStateChangeIteratorIT it was discovered that 
> online table with wait=true does not always wait.  The test relied on this 
> API to wait and that is why it was failing.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (ACCUMULO-4838) Create SPI package

2018-03-01 Thread Keith Turner (JIRA)
Keith Turner created ACCUMULO-4838:
--

 Summary: Create SPI package
 Key: ACCUMULO-4838
 URL: https://issues.apache.org/jira/browse/ACCUMULO-4838
 Project: Accumulo
  Issue Type: Improvement
Reporter: Keith Turner


Accumulo has multiple pluggable services.  It would be nice if the SPIs 
(service provider interface) for these were in one package.  For existing 
service SPIs, this can not be easily done.  However, for new service SPIs it 
would be nice to start putting them under a single package.  This package could 
be {{org.apache.accumulo.core.spi}}.  Currently there are at least two new 
unreleased SPIs for caching and summarization.  These could be moved to the new 
package.

For existing SPIs could possibly do the following :
 * Create a new SPI in the new package
 * Make existing SPI extend new SPI and deprecate it

The contents of this package could be analyzed by APILyzer to ensure only API 
and SPI types are used.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (ACCUMULO-4837) Allow short service names in addition to class names.

2018-03-01 Thread Keith Turner (JIRA)
Keith Turner created ACCUMULO-4837:
--

 Summary: Allow short service names in addition to class names.
 Key: ACCUMULO-4837
 URL: https://issues.apache.org/jira/browse/ACCUMULO-4837
 Project: Accumulo
  Issue Type: Improvement
Reporter: Keith Turner


In 2.0.0-SNAPSHOT the cache implementation was made configurable.  Currently to 
configure it, you set a property like the following.

{noformat}
 
tserver.cache.manager.class=org.apache.accumulo.core.file.blockfile.cache.tinylfu.TinyLfuBlockCacheManager
{noformat}

I would much rather be able to provide a short service name like the following 
when configuring the cache.  However I do not want the list to be predefined, I 
will want the user to be able to provide implementations.

{noformat}
  tserver.cache.implementation=tinylfu
{noformat}

What is a good way to do this? Is there a good reason not do this and just 
stick with class names only?  I was also thinking it may be nice to have a 
shell command for listing services, but this could be done independently.

One way I thought of doing this is having an interface like the the following 
that services (balancer, compaction strategy, cache, etc) could implement.

{code:java}
public interface AccumuloService {
  /**
   * A human readable, short, unique identification that can be specified in 
configuration to identify a service implementation.
   */
  public String getName();

  public static  C load(String configId, Class 
serviceType, ClassLoader classLoader) {
ServiceLoader services = ServiceLoader.load(serviceType, classLoader);

for (C service : services) {
  if(service.getName().equals(configId) || 
service.getClass().getName().equals(configId)) {
return service;
  }
}

return null;
  }
}
{code}

Then the cache implementation could provide a name

{code:java}
//assume BlockCacheManager implements AccumuloService
public class TinyLfuBlockCacheManager extends BlockCacheManager {

  private static final Logger LOG = 
LoggerFactory.getLogger(TinyLfuBlockCacheManager.class);

  @Override
  protected TinyLfuBlockCache createCache(Configuration conf, CacheType type) {
LOG.info("Creating {} cache with configuration {}", type, conf);
return new TinyLfuBlockCache(conf, type);
  }

  @Override
  public String getName() {
return "tinylfu";
  }
}
{code}

The code to load a block cache impl would look like the following :

{code:java}
String impl = conf.get(Property.TSERV_CACHE_MANAGER_IMPL);
BlockCacheManager bcm = AccumuloService.load(impl, BlockCacheManager.class, 
AccumuloVFSClassLoader.getClassLoader());
{code}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Accumulo-1.8 - Build # 278 - Fixed

2018-03-01 Thread Apache Jenkins Server
The Apache Jenkins build system has built Accumulo-1.8 (build #278)

Status: Fixed

Check console output at https://builds.apache.org/job/Accumulo-1.8/278/ to view 
the results.

[GitHub] mikewalch closed pull request #58: Created 1.7.4 release notes

2018-03-01 Thread GitBox
mikewalch closed pull request #58: Created 1.7.4 release notes
URL: https://github.com/apache/accumulo-website/pull/58
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/_posts/release/2018-02-21-accumulo-1.7.4.md 
b/_posts/release/2018-02-21-accumulo-1.7.4.md
new file mode 100644
index ..5729cd50
--- /dev/null
+++ b/_posts/release/2018-02-21-accumulo-1.7.4.md
@@ -0,0 +1,163 @@
+---
+title: Apache Accumulo 1.7.4
+draft: true
+---
+
+Apache Accumulo 1.7.4 is a maintenance release on the 1.7 version branch. This 
release contains changes from 46 issues, comprised of bug-fixes, 
+performance improvements, build quality improvements, and more. See 
[Jira][JIRA_174] or the bottom of this page for a complete list.
+
+Below are resources for this release:
+
+* [User Manual][user_manual] - In-depth developer and administrator 
documentation.
+* [Javadocs][javadoc] - Accumulo 1.7.4 API
+* [Examples][examples] - Code with corresponding readme files that give step 
by step instructions for running example code.
+
+Accumulo follows [Semantic Versioning][semver] [guidelines][guidelines].  This 
release is a  ?[patch version][patch_version]?, which means that
+only backwards compatible bug fixes are introduced in this version. A bug fix 
is defined as an internal change that fixes incorrect behavior. Users
+of any previous 1.7.x release are strongly encouraged to update as soon as 
possible to benefit from the  bug fixes with very little concern in change
+of underlying functionality.  As always, the Accumulo developers take API 
compatibility very seriously and have invested much time to ensure that we
+meet the promises set forth to our users. Users of 1.6 or earlier that are 
seeking to upgrade to 1.7 should consider 1.7.4 as a starting point.
+
+## Major Changes
+
+### Fixed upgrade process to set version on all volumes
+
+During upgrades, only one volume in a multiple HDFS volume was updated with 
the correct version. This would cause all tablet servers
+to complain and ultimately fail. [ACCUMULO-4686] fixes this by setting the 
version on all volumes.
+
+### Updated Accumulo to work with new releases of Guava
+
+In [ACCUMULO-4702], dependencies on Beta-annotated Guava classes and methods 
were removed. While Accumulo still
+includes Guava 14 in its tarball, it will work with newer versions of Guava in 
client code. It has been tested to work
+with Guava 23.
+
+### Updated RFile to prevent very large blocks
+
+RFiles now use windowed statistics ([ACCUMULO-4669]) to prevent very large 
blocks when key statistics are not uniform
+
+## Notable Changes
+
+* [ACCUMULO-4506] - Add a timeout to a replication RPC call
+* [ACCUMULO-4619] - Add splits hung forever
+* [ACCUMULO-4633] - Added check to prevent division by zero
+* [ACCUMULO-4640] - Accumulo shell is expecting instance.volumens in 
client.conf instead of accumulo-site.xml
+* [ACCUMULO-4657] - BulkImport Performance Bottleneck
+* [ACCUMULO-4665] - Must use the "real" user for RPCs when Kerberos is enabled
+* [ACCUMULO-4676] - Use HTTPOnly flags in monitor to prevent XSS attacks
+* [ACCUMULO-4776] - Fix advertised host in monitor
+* [ACCUMULO-4777] - Root tablet got spammed with 1.8 million log entries
+* [ACCUMULO-4787] - Close input stream in AccumuloReplicaSystem
+* [ACCUMULO-4809] - Avoid blocking during session clean up
+* [ACCUMULO-4817] - Update build plugins and parent POM
+
+## Upgrading
+
+View the [Upgrading Accumulo documentation][upgrade] for guidance.
+
+## Testing
+
+## All Changes
+
+* [ACCUMULO-1972] - Fixed Range constructor
+* [ACCUMULO-3208] - Integration test for the OrIterator and cleanup
+* [ACCUMULO-3283] - Create ColumnFQ only once
+* [ACCUMULO-3827] - Set default store types for monitor ssl to jks
+* [ACCUMULO-4170] - Clarify ClientConfiguration javadocs
+* [ACCUMULO-4365] - Fixes to prevent intermittent failures in ShellServerIT 
and ConditionalWriterIT
+* [ACCUMULO-4482] - Mention snappy compression in docs
+* [ACCUMULO-4506] - Add a timeout to a replication RPC call
+* [ACCUMULO-4546] - Create default log message for table error
+* [ACCUMULO-4555] - Removes parsing of version string in Version class
+* [ACCUMULO-4576] - Suppress warnings from deprecations
+* [ACCUMULO-4587] - Upgrade Monitor jquery to 3.2.1
+* [ACCUMULO-4591] - Add replication latency metrics
+* [ACCUMULO-4602] - Deleted AssignmentThreadsIT
+* [ACCUMULO-4619] - Add splits hung forever
+* [ACCUMULO-4627] - Add corrupt WAL recovery instructions to user manual
+* [ACCUMULO-4633] - Added check to prevent division by zero
+* [ACCUMULO-4636] - System iterator improvements
+* [ACCUMULO-4640] - Accumulo shell is expecting instance.volumens in 
client.conf instead of accumulo-site.xml
+* [ACCUMULO-4648] - Update voting text in build.sh 

[GitHub] milleruntime closed pull request #393: Add TableOfflineException to TableOps.addSplits

2018-03-01 Thread GitBox
milleruntime closed pull request #393: Add TableOfflineException to 
TableOps.addSplits
URL: https://github.com/apache/accumulo/pull/393
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java
 
b/core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java
index 0c3e0e6c60..3015b1dd73 100644
--- 
a/core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java
+++ 
b/core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java
@@ -394,6 +394,9 @@ public void addSplits(String tableName, SortedSet 
partitionKeys) throws Ta
   if (excep instanceof TableNotFoundException) {
 TableNotFoundException tnfe = (TableNotFoundException) excep;
 throw new TableNotFoundException(tableId, tableName, "Table not 
found by background thread", tnfe);
+  } else if (excep instanceof TableOfflineException) {
+log.debug("TableOfflineException occurred in background thread. 
Throwing new exception", excep);
+throw new TableOfflineException(context.getInstance(), tableId);
   } else if (excep instanceof AccumuloSecurityException) {
 // base == background accumulo security exception
 AccumuloSecurityException base = (AccumuloSecurityException) excep;
diff --git 
a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/AddSplits.java
 
b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/AddSplits.java
index e02629918f..dc040a6eb9 100644
--- 
a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/AddSplits.java
+++ 
b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/AddSplits.java
@@ -22,7 +22,6 @@
 import java.util.Random;
 import java.util.TreeSet;
 
-import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.Connector;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.client.TableOfflineException;
@@ -58,12 +57,6 @@ public void visit(State state, Environment env, Properties 
props) throws Excepti
   log.debug("AddSplits " + tableName + " failed, doesnt exist");
 } catch (TableOfflineException e) {
   log.debug("AddSplits " + tableName + " failed, offline");
-} catch (AccumuloException ae) {
-  Throwable cause = ae.getCause();
-  if (cause != null && cause instanceof TableOfflineException)
-log.debug("AddSplits " + tableName + " failed, offline");
-  else
-throw ae;
 }
   }
 }


 


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] keith-turner commented on issue #58: Created 1.7.4 release notes

2018-03-01 Thread GitBox
keith-turner commented on issue #58: Created 1.7.4 release notes
URL: https://github.com/apache/accumulo-website/pull/58#issuecomment-369628990
 
 
   > Can I merge this? It's marked as draft so it won't show up on the site.
   
   Since its marked draft, I think its good to merge it because it makes it 
easier for others to edit.
   
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Updated] (ACCUMULO-4836) Tables do not always wait for online or offline

2018-03-01 Thread ASF GitHub Bot (JIRA)

 [ 
https://issues.apache.org/jira/browse/ACCUMULO-4836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated ACCUMULO-4836:
-
Labels: pull-request-available  (was: )

> Tables do not always wait for online or offline
> ---
>
> Key: ACCUMULO-4836
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4836
> Project: Accumulo
>  Issue Type: Bug
>Affects Versions: 1.7.3
>Reporter: Keith Turner
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.7.4, 1.9.0, 2.0.0
>
>
> While investigating why TabletStateChangeIteratorIT it was discovered that 
> online table with wait=true does not always wait.  The test relied on this 
> API to wait and that is why it was failing.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] keith-turner opened a new pull request #394: ACCUMULO-4836 make online table always wait

2018-03-01 Thread GitBox
keith-turner opened a new pull request #394: ACCUMULO-4836 make online table 
always wait
URL: https://github.com/apache/accumulo/pull/394
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Created] (ACCUMULO-4836) Tables do not always wait for online or offline

2018-03-01 Thread Keith Turner (JIRA)
Keith Turner created ACCUMULO-4836:
--

 Summary: Tables do not always wait for online or offline
 Key: ACCUMULO-4836
 URL: https://issues.apache.org/jira/browse/ACCUMULO-4836
 Project: Accumulo
  Issue Type: Bug
Affects Versions: 1.7.3
Reporter: Keith Turner
 Fix For: 1.7.4, 1.9.0, 2.0.0


While investigating why TabletStateChangeIteratorIT it was discovered that 
online table with wait=true does not always wait.  The test relied on this API 
to wait and that is why it was failing.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] mikewalch commented on issue #58: Created 1.7.4 release notes

2018-03-01 Thread GitBox
mikewalch commented on issue #58: Created 1.7.4 release notes
URL: https://github.com/apache/accumulo-website/pull/58#issuecomment-369614178
 
 
   Can I merge this? It's marked as draft so it won't show up on the site.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services