[jira] [Assigned] (ACCUMULO-4774) Conditional Writer creates a non daemon thread that is keeping processes alive
[ https://issues.apache.org/jira/browse/ACCUMULO-4774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christopher Tubbs reassigned ACCUMULO-4774: --- Assignee: Keith Turner > Conditional Writer creates a non daemon thread that is keeping processes alive > -- > > Key: ACCUMULO-4774 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4774 > Project: Accumulo > Issue Type: Bug >Affects Versions: 1.7.3, 1.8.1 >Reporter: Keith Turner >Assignee: Keith Turner > Labels: pull-request-available > Fix For: 1.7.4, 1.8.2, 2.0.0 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > The Conditional writer has a static thread pool that creates a non-daemon > thread that keeping processes alive. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] asfgit closed pull request #348: ACCUMULO-4774 Made conditional writer thread into daemon
asfgit closed pull request #348: ACCUMULO-4774 Made conditional writer thread into daemon URL: https://github.com/apache/accumulo/pull/348 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/ConditionalWriterImpl.java b/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java index 4812378ea7..2199ad241e 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java @@ -36,6 +36,7 @@ import java.util.concurrent.Delayed; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -96,7 +97,18 @@ class ConditionalWriterImpl implements ConditionalWriter { - private static ThreadPoolExecutor cleanupThreadPool = new ThreadPoolExecutor(1, 1, 10, TimeUnit.SECONDS, new LinkedBlockingQueue()); + private static class CleanupThreadFactory implements ThreadFactory { + +@Override +public Thread newThread(Runnable r) { + Thread t = new Thread(r, "Conditional Writer Cleanup Thread "); + t.setDaemon(true); + return t; +} + } + + private static ThreadPoolExecutor cleanupThreadPool = new ThreadPoolExecutor(1, 1, 3, TimeUnit.SECONDS, new LinkedBlockingQueue(), + new CleanupThreadFactory()); static { cleanupThreadPool.allowCoreThreadTimeOut(true); 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] ctubbsii commented on issue #348: ACCUMULO-4774 Made conditional writer thread into daemon
ctubbsii commented on issue #348: ACCUMULO-4774 Made conditional writer thread into daemon URL: https://github.com/apache/accumulo/pull/348#issuecomment-353525118 I merged into 1.7, and then 1.8 and master branches, then converted the new ThreadFactory to a lambda (less code) for the master branch. 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-4770) Accumulo monitor overview page is not listing all Zookeeper nodes
[ https://issues.apache.org/jira/browse/ACCUMULO-4770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christopher Tubbs updated ACCUMULO-4770: Priority: Blocker (was: Major) > Accumulo monitor overview page is not listing all Zookeeper nodes > - > > Key: ACCUMULO-4770 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4770 > Project: Accumulo > Issue Type: Bug > Components: monitor >Affects Versions: 2.0.0 > Environment: Ran Accumulo 2.0.0-SNAPSHOT on a cluster with 3 > Zookeeper nodes. Only one is being listed in the Accumulo monitor overview > page. >Reporter: Mike Walch >Priority: Blocker > Fix For: 2.0.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (ACCUMULO-4770) Accumulo monitor overview page is not listing all Zookeeper nodes
[ https://issues.apache.org/jira/browse/ACCUMULO-4770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christopher Tubbs updated ACCUMULO-4770: Component/s: monitor > Accumulo monitor overview page is not listing all Zookeeper nodes > - > > Key: ACCUMULO-4770 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4770 > Project: Accumulo > Issue Type: Bug > Components: monitor >Affects Versions: 2.0.0 > Environment: Ran Accumulo 2.0.0-SNAPSHOT on a cluster with 3 > Zookeeper nodes. Only one is being listed in the Accumulo monitor overview > page. >Reporter: Mike Walch >Priority: Blocker > Fix For: 2.0.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (ACCUMULO-4770) Accumulo monitor overview page is not listing all Zookeeper nodes
[ https://issues.apache.org/jira/browse/ACCUMULO-4770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christopher Tubbs updated ACCUMULO-4770: Fix Version/s: 2.0.0 > Accumulo monitor overview page is not listing all Zookeeper nodes > - > > Key: ACCUMULO-4770 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4770 > Project: Accumulo > Issue Type: Bug >Affects Versions: 2.0.0 > Environment: Ran Accumulo 2.0.0-SNAPSHOT on a cluster with 3 > Zookeeper nodes. Only one is being listed in the Accumulo monitor overview > page. >Reporter: Mike Walch > Fix For: 2.0.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (ACCUMULO-4769) Sanity check for valid CryptoModule and KeyEncryptionStrategy in config
[ https://issues.apache.org/jira/browse/ACCUMULO-4769?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christopher Tubbs updated ACCUMULO-4769: Fix Version/s: 2.0.0 > Sanity check for valid CryptoModule and KeyEncryptionStrategy in config > --- > > Key: ACCUMULO-4769 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4769 > Project: Accumulo > Issue Type: Improvement >Reporter: Nick Felts >Assignee: Nick Felts > Labels: pull-request-available > Fix For: 2.0.0 > > Time Spent: 40m > Remaining Estimate: 0h > > The current code will log a warning and default to an unencrypted mode if an > unknown class is provided for the cryptomodule or for the > keyencryptionstrategy. These should be checked when they are read from the > config to confirm they exist and implement the appropriate interface. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] ctubbsii commented on a change in pull request #345: ACCUMULO-4769 Sanity check for valid CryptoModule and KeyEncryptionStrategy in config
ctubbsii commented on a change in pull request #345: ACCUMULO-4769 Sanity check for valid CryptoModule and KeyEncryptionStrategy in config URL: https://github.com/apache/accumulo/pull/345#discussion_r158139376 ## File path: core/src/main/java/org/apache/accumulo/core/conf/ConfigSanityCheck.java ## @@ -88,6 +90,33 @@ else if (!prop.getType().isValidFormat(value)) if (key.equals(Property.CRYPTO_CIPHER_KEY_ALGORITHM_NAME.getKey())) { keyAlgorithm = Objects.requireNonNull(value); } + if (key.equals(Property.CRYPTO_SECRET_KEY_ENCRYPTION_STRATEGY_CLASS.getKey()) && !(value == null || value.equals("NullSecretKeyEncryptionStrategy"))) { +@SuppressWarnings("rawtypes") Review comment: Should not suppress warnings which can be addressed with proper generics use. Can use `` here. 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] ctubbsii commented on a change in pull request #345: ACCUMULO-4769 Sanity check for valid CryptoModule and KeyEncryptionStrategy in config
ctubbsii commented on a change in pull request #345: ACCUMULO-4769 Sanity check for valid CryptoModule and KeyEncryptionStrategy in config URL: https://github.com/apache/accumulo/pull/345#discussion_r158141223 ## File path: core/src/main/java/org/apache/accumulo/core/security/crypto/CryptoModuleFactory.java ## @@ -172,23 +164,17 @@ private static SecretKeyEncryptionStrategy instantiateSecreteKeyEncryptionStrate } if (!implementsSecretKeyStrategy) { - log.warn("Configured Accumulo secret key encryption strategy \"%s\" does not implement the SecretKeyEncryptionStrategy interface. No encryption will be used."); - return new NullSecretKeyEncryptionStrategy(); + throw new RuntimeException("Configured Accumulo secret key encryption strategy \"%s\" does not implement the SecretKeyEncryptionStrategy interface."); } else { try { strategy = (SecretKeyEncryptionStrategy) keyEncryptionStrategyClazz.newInstance(); log.debug("Successfully instantiated secret key encryption strategy {}", className); } catch (InstantiationException e) { -log.warn("Got instantiation exception {} when instantiating secret key encryption strategy \"{}\". No encryption will be used.", e.getCause() -.getClass().getName(), className); -log.warn("InstantiationException {}", e.getCause()); -return new NullSecretKeyEncryptionStrategy(); +throw new RuntimeException("Got instantiation exception {} when instantiating secret key encryption strategy " + className); Review comment: Since a lot of these catch blocks have essentially the same error, it'd probably be better to use the multi-catch syntax, just to clean things up a bit. The original exception should be passed as a parameter, so we don't lose portions of the stack trace. 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-4768) Monitor Look and Feel
[ https://issues.apache.org/jira/browse/ACCUMULO-4768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16300832#comment-16300832 ] Christopher Tubbs commented on ACCUMULO-4768: - Are there any subtasks? Or is this just an umbrella ticket because our convention is to include a JIRA number in our commits? If it's just the latter, I think that sort of highlights a failure in our conventions. Perhaps we should relax them a bit... omitting a JIRA issue number from a commit log... especially for a change that will probably be reviewed in a PR is probably fine, IMO. > Monitor Look and Feel > - > > Key: ACCUMULO-4768 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4768 > Project: Accumulo > Issue Type: Improvement > Components: monitor >Affects Versions: 2.0.0 >Reporter: Michael Miller >Assignee: Michael Miller >Priority: Minor > Fix For: 2.0.0 > > > Catch all ticket for minor look and feel improvements for the new Monitor. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (ACCUMULO-3902) Ensure [Batch]Scanners are closed in ITs
[ https://issues.apache.org/jira/browse/ACCUMULO-3902?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christopher Tubbs updated ACCUMULO-3902: Fix Version/s: (was: 1.7.4) (was: 1.8.2) Given that the current pull request is focusing on the master branch, and the fact that we want to limit changes to previous branches unless they are targeted at fixing a known bug, I'm dropping the 1.7 and 1.8 versions from this issue. > Ensure [Batch]Scanners are closed in ITs > > > Key: ACCUMULO-3902 > URL: https://issues.apache.org/jira/browse/ACCUMULO-3902 > Project: Accumulo > Issue Type: Bug > Components: test >Reporter: Josh Elser >Assignee: Jared R >Priority: Trivial > Labels: newbie, pull-request-available > Fix For: 2.0.0 > > Time Spent: 5h > Remaining Estimate: 0h > > Do an audit of the integration tests to verify that we actually close > Scanners and BatchScanners. This is a best practice that we should be > encouraging (by doing it in our tests). It can also lead to bugs in other > test cases (ACCUMULO-3888). -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (ACCUMULO-4765) Improve sortTable js function
[ https://issues.apache.org/jira/browse/ACCUMULO-4765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christopher Tubbs resolved ACCUMULO-4765. - Resolution: Won't Fix Fix Version/s: (was: 2.0.0) I'm closing this as "Won't Fix". The suggestion to use DataTables is so much better, that I don't think this is even worth pursuing. > Improve sortTable js function > - > > Key: ACCUMULO-4765 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4765 > Project: Accumulo > Issue Type: Improvement > Components: monitor >Affects Versions: 2.0.0 >Reporter: Michael Miller >Priority: Minor > Labels: javascript, newbie > > The sortTable() javascript function is used quite a lot (and has many > implementations) in the Monitor but takes the column number as a parameter. > While this is a simple solution that works well, it could break if the order > of the columns change. It would be nice to have a sortTable function that is > smarter and could automatically detect which column to sort. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Resolved] (ACCUMULO-4732) No APIs to configure iterators and locality groups for new table
[ https://issues.apache.org/jira/browse/ACCUMULO-4732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christopher Tubbs resolved ACCUMULO-4732. - Resolution: Fixed > No APIs to configure iterators and locality groups for new table > > > Key: ACCUMULO-4732 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4732 > Project: Accumulo > Issue Type: Improvement >Reporter: Keith Turner >Assignee: Mark Owens > Labels: newbie, pull-request-available > Fix For: 2.0.0 > > Time Spent: 10h 10m > Remaining Estimate: 0h > > In Accumulo 1.7 the ability to set table properties at table creation time > was added. For existing tables there are APIs in table operations that allow > setting locality groups and iterators for existing tables. When setting > table properties at table creation time there is not good API for iterators > and locality groups. There should be some way in the API to do this. There > may be other things besides iterators and locality groups that should also be > supported at table creation time. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] ctubbsii closed pull request #337: ACCUMULO-4732 No APIs to configure iterators or locality groups for new tables
ctubbsii closed pull request #337: ACCUMULO-4732 No APIs to configure iterators or locality groups for new tables URL: https://github.com/apache/accumulo/pull/337 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/admin/NewTableConfiguration.java b/core/src/main/java/org/apache/accumulo/core/client/admin/NewTableConfiguration.java index 9d5d31a159..b0dbf4ec27 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/admin/NewTableConfiguration.java +++ b/core/src/main/java/org/apache/accumulo/core/client/admin/NewTableConfiguration.java @@ -21,16 +21,28 @@ import java.util.Arrays; import java.util.Collections; +import java.util.EnumSet; import java.util.HashMap; import java.util.Map; - +import java.util.Map.Entry; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +import org.apache.accumulo.core.client.AccumuloException; +import org.apache.accumulo.core.client.IteratorSetting; +import org.apache.accumulo.core.client.impl.TableOperationsHelper; import org.apache.accumulo.core.client.sample.SamplerConfiguration; import org.apache.accumulo.core.client.summary.Summarizer; import org.apache.accumulo.core.client.summary.SummarizerConfiguration; +import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.core.iterators.IteratorUtil; +import org.apache.accumulo.core.iterators.IteratorUtil.IteratorScope; import org.apache.accumulo.core.iterators.user.VersioningIterator; import org.apache.accumulo.core.sample.impl.SamplerConfigurationImpl; import org.apache.accumulo.core.summary.SummarizerConfigurationUtil; +import org.apache.accumulo.core.util.LocalityGroupUtil; +import org.apache.hadoop.io.Text; /** * This object stores table creation parameters. Currently includes: {@link TimeType}, whether to include default iterators, and user-specified initial @@ -48,6 +60,8 @@ private Mapproperties = Collections.emptyMap(); private Map samplerProps = Collections.emptyMap(); private Map summarizerProps = Collections.emptyMap(); + private Map localityProps = Collections.emptyMap(); + private Map iteratorProps = new HashMap<>(); private void checkDisjoint(Map props, Map derivedProps, String kind) { checkArgument(Collections.disjoint(props.keySet(), derivedProps.keySet()), "Properties and derived %s properties are not disjoint", kind); @@ -62,7 +76,6 @@ private void checkDisjoint(Map props, Map derivedP */ public NewTableConfiguration setTimeType(TimeType tt) { checkArgument(tt != null, "TimeType is null"); - this.timeType = tt; return this; } @@ -88,7 +101,7 @@ public NewTableConfiguration withoutDefaultIterators() { } /** - * Sets additional properties to be applied to tables created with this configuration. Additional calls to this method replaces properties set by previous + * Sets additional properties to be applied to tables created with this configuration. Additional calls to this method replace properties set by previous * calls. * * @param props @@ -99,6 +112,9 @@ public NewTableConfiguration setProperties(Map props) { checkArgument(props != null, "properties is null"); checkDisjoint(props, samplerProps, "sampler"); checkDisjoint(props, summarizerProps, "summarizer"); +checkDisjoint(props, localityProps, "locality group"); +checkDisjoint(props, iteratorProps, "iterator"); +checkTableProperties(props); this.properties = new HashMap<>(props); return this; } @@ -111,13 +127,14 @@ public NewTableConfiguration setProperties(Map props) { public Map getProperties() { Map propertyMap = new HashMap<>(); -if (limitVersion) { +if (limitVersion) propertyMap.putAll(IteratorUtil.generateInitialTableProperties(limitVersion)); -} propertyMap.putAll(summarizerProps); propertyMap.putAll(samplerProps); propertyMap.putAll(properties); +propertyMap.putAll(iteratorProps); +propertyMap.putAll(localityProps); return Collections.unmodifiableMap(propertyMap); } @@ -146,4 +163,91 @@ public NewTableConfiguration enableSummarization(SummarizerConfiguration... conf summarizerProps = tmp; return this; } + + /** + * Configures a table's locality groups prior to initial table creation. + * + * Allows locality groups to be set prior to table creation. Additional calls to this method prior to table creation will overwrite previous locality group + * mappings. + * + * @param groups +
Accumulo-Pull-Requests - Build # 934 - Unstable
The Apache Jenkins build system has built Accumulo-Pull-Requests (build #934) Status: Unstable Check console output at https://builds.apache.org/job/Accumulo-Pull-Requests/934/ to view the results.
[GitHub] asfgit commented on issue #348: ACCUMULO-4774 Made conditional writer thread into daemon
asfgit commented on issue #348: ACCUMULO-4774 Made conditional writer thread into daemon URL: https://github.com/apache/accumulo/pull/348#issuecomment-353487600 Can one of the admins verify this patch? 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-4774) Conditional Writer creates a non daemon thread that is keeping processes alive
[ https://issues.apache.org/jira/browse/ACCUMULO-4774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ASF GitHub Bot updated ACCUMULO-4774: - Labels: pull-request-available (was: ) > Conditional Writer creates a non daemon thread that is keeping processes alive > -- > > Key: ACCUMULO-4774 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4774 > Project: Accumulo > Issue Type: Bug >Affects Versions: 1.7.3, 1.8.1 >Reporter: Keith Turner > Labels: pull-request-available > Fix For: 1.7.4, 1.8.2, 2.0.0 > > > The Conditional writer has a static thread pool that creates a non-daemon > thread that keeping processes alive. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] keith-turner opened a new pull request #348: ACCUMULO-4774 Made conditional writer thread into daemon
keith-turner opened a new pull request #348: ACCUMULO-4774 Made conditional writer thread into daemon URL: https://github.com/apache/accumulo/pull/348 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-4774) Conditional Writer creates a non daemon thread that is keeping processes alive
Keith Turner created ACCUMULO-4774: -- Summary: Conditional Writer creates a non daemon thread that is keeping processes alive Key: ACCUMULO-4774 URL: https://issues.apache.org/jira/browse/ACCUMULO-4774 Project: Accumulo Issue Type: Bug Affects Versions: 1.8.1, 1.7.3 Reporter: Keith Turner Fix For: 1.7.4, 1.8.2, 2.0.0 The Conditional writer has a static thread pool that creates a non-daemon thread that keeping processes alive. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] ctubbsii commented on a change in pull request #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs
ctubbsii commented on a change in pull request #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs URL: https://github.com/apache/accumulo/pull/341#discussion_r158381566 ## File path: test/src/main/java/org/apache/accumulo/test/MetaGetsReadersIT.java ## @@ -112,6 +113,7 @@ public void test() throws Exception { t2.interrupt(); t1.join(); t2.join(); +m.close(); Review comment: Oh, interesting. I must have misread the code. 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] ctubbsii commented on issue #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs
ctubbsii commented on issue #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs URL: https://github.com/apache/accumulo/pull/341#issuecomment-353460637 @jkrdev In the case of the variable being reassigned, I think it makes sense to use a new variable (can keep the same name, but redeclared in each block). It results in cleaner code, and it's not like variable names are a limited commodity. For the stale ITs you mention... if you see anything significant, you can just create a new issue in JIRA at: https://issues.apache.org/jira/secure/CreateIssue!default.jspa for the "ACCUMULO" project (or just click on the "Create" button to create a new issue after logging in to that JIRA). If you have questions about whether you made the issue correctly, you can always ask on the dev@ mailing list, but chances are, somebody will triage the new issue whether you ask or not. 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
Accumulo-Pull-Requests - Build # 933 - Fixed
The Apache Jenkins build system has built Accumulo-Pull-Requests (build #933) Status: Fixed Check console output at https://builds.apache.org/job/Accumulo-Pull-Requests/933/ to view the results.
[GitHub] bfach10 commented on a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation
bfach10 commented on a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation URL: https://github.com/apache/accumulo/pull/347#discussion_r158338652 ## File path: core/src/main/java/org/apache/accumulo/core/data/Mutation.java ## @@ -772,6 +772,236 @@ public void putDelete(byte[] columnFamily, byte[] columnQualifier, ColumnVisibil put(columnFamily, columnQualifier, columnVisibility.getExpression(), true, timestamp, true, EMPTY_BYTES); } + /** + * Fluent API for Mutation + * + * + * Each step of the Mutation is represented by an interface. Inheritance order ensures that chained methods follow prescribed order of: + * + * + * row, family, qualifier, visibility, timestamp + * + * + * set and delete methods end the chain and finalize the mutation + */ + public interface RowStep extends FamilyStep { Review comment: I wasn't sure about this one so I didn't include any implementation for it. Thanks for the clarification! I've removed the row methods and interface in my most recent commit. 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
Accumulo-Pull-Requests - Build # 932 - Failure
The Apache Jenkins build system has built Accumulo-Pull-Requests (build #932) Status: Failure Check console output at https://builds.apache.org/job/Accumulo-Pull-Requests/932/ to view the results.
Accumulo-Pull-Requests - Build # 931 - Fixed
The Apache Jenkins build system has built Accumulo-Pull-Requests (build #931) Status: Fixed Check console output at https://builds.apache.org/job/Accumulo-Pull-Requests/931/ to view the results.
[jira] [Created] (ACCUMULO-4773) Add sanity check to table properties prior to creation of fate operation
Mark Owens created ACCUMULO-4773: Summary: Add sanity check to table properties prior to creation of fate operation Key: ACCUMULO-4773 URL: https://issues.apache.org/jira/browse/ACCUMULO-4773 Project: Accumulo Issue Type: Improvement Components: fate Reporter: Mark Owens Priority: Minor Fix For: 2.0.0 On the server side, table properties could be sanity checked before the fate operation is created. Could be added prior to https://github.com/apache/accumulo/blob/rel/1.8.1/server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java#L151 This would prevent situations where user assumes they have set table properties when in fact the table properties are mis-configured and ignored by the fate operation. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (ACCUMULO-4772) Update Accumulo shell to utilize new NewTableConfiguration methods
Mark Owens created ACCUMULO-4772: Summary: Update Accumulo shell to utilize new NewTableConfiguration methods Key: ACCUMULO-4772 URL: https://issues.apache.org/jira/browse/ACCUMULO-4772 Project: Accumulo Issue Type: Improvement Components: shell Reporter: Mark Owens Assignee: Mark Owens Priority: Minor Fix For: 2.0.0 ACCUMULO-4732 adds the capability for NewTableConfiguration to preconfigure iterators and locality groups prior to table creation. Update the Accumulo shell to allow the same capability. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] jkrdev commented on a change in pull request #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs
jkrdev commented on a change in pull request #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs URL: https://github.com/apache/accumulo/pull/341#discussion_r158302664 ## File path: test/src/main/java/org/apache/accumulo/test/MetaGetsReadersIT.java ## @@ -112,6 +113,7 @@ public void test() throws Exception { t2.interrupt(); t1.join(); t2.join(); +m.close(); Review comment: Actually the scanner is called m here let me change that ha. 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] jkrdev commented on issue #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs
jkrdev commented on issue #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs URL: https://github.com/apache/accumulo/pull/341#issuecomment-353366635 I have noticed that throughout many of the ITs there is outdated code and in some instances whole folders (proxy) of ITs that have code that is deprecated. I don't know how I got about making a ticket but I think one should be opened about it. Theres code that can be replaced and some ITs that need to be fully refactored. I don't know if there is already a ticket about this but would be a nice fix. 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] jkrdev commented on a change in pull request #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs
jkrdev commented on a change in pull request #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs URL: https://github.com/apache/accumulo/pull/341#discussion_r158286817 ## File path: test/src/main/java/org/apache/accumulo/test/BatchWriterInTabletServerIT.java ## @@ -104,24 +104,34 @@ private void test(String t1, String t2, Connector c, IteratorSetting itset, int c.tableOperations().attachIterator(t2, summer); Map.Entryactual; -// Scan t1 with an iterator that writes to table t2 -Scanner scanner = c.createScanner(t1, Authorizations.EMPTY); -scanner.addScanIterator(itset); -actual = Iterators.getOnlyElement(scanner.iterator()); -Assert.assertTrue(actual.getKey().equals(k, PartialKey.ROW_COLFAM_COLQUAL)); -Assert.assertEquals(BatchWriterIterator.SUCCESS_VALUE, actual.getValue()); -scanner.close(); +Scanner scanner = null; +try { + // Scan t1 with an iterator that writes to table t2 + scanner = c.createScanner(t1, Authorizations.EMPTY); + scanner.addScanIterator(itset); + actual = Iterators.getOnlyElement(scanner.iterator()); + Assert.assertTrue(actual.getKey().equals(k, PartialKey.ROW_COLFAM_COLQUAL)); + Assert.assertEquals(BatchWriterIterator.SUCCESS_VALUE, actual.getValue()); +} finally { + if (scanner != null) { +scanner.close(); + } +} -// ensure entries correctly wrote to table t2 -scanner = c.createScanner(t2, Authorizations.EMPTY); -actual = Iterators.getOnlyElement(scanner.iterator()); -log.debug("t2 entry is " + actual.getKey().toStringNoTime() + " -> " + actual.getValue()); -Assert.assertTrue(actual.getKey().equals(k, PartialKey.ROW_COLFAM_COLQUAL)); -Assert.assertEquals(numEntriesToWritePerEntry, Integer.parseInt(actual.getValue().toString())); -scanner.close(); +try { + // ensure entries correctly wrote to table t2 + scanner = c.createScanner(t2, Authorizations.EMPTY); + actual = Iterators.getOnlyElement(scanner.iterator()); + log.debug("t2 entry is " + actual.getKey().toStringNoTime() + " -> " + actual.getValue()); + Assert.assertTrue(actual.getKey().equals(k, PartialKey.ROW_COLFAM_COLQUAL)); + Assert.assertEquals(numEntriesToWritePerEntry, Integer.parseInt(actual.getValue().toString())); +} finally { + if (scanner != null) { +scanner.close(); + } +} Review comment: I missed this comment, so my general comment, is sort of answered by this. I will do this or at least try. 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 a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation
keith-turner commented on a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation URL: https://github.com/apache/accumulo/pull/347#discussion_r158283704 ## File path: core/src/main/java/org/apache/accumulo/core/data/Mutation.java ## @@ -772,6 +772,236 @@ public void putDelete(byte[] columnFamily, byte[] columnQualifier, ColumnVisibil put(columnFamily, columnQualifier, columnVisibility.getExpression(), true, timestamp, true, EMPTY_BYTES); } + /** + * Fluent API for Mutation + * + * + * Each step of the Mutation is represented by an interface. Inheritance order ensures that chained methods follow prescribed order of: + * + * + * row, family, qualifier, visibility, timestamp + * + * + * set and delete methods end the chain and finalize the mutation + */ + public interface RowStep extends FamilyStep { +FamilyStep row(byte[] r); + +FamilyStep row(CharSequence r); + +FamilyStep row(ByteBuffer r); + +FamilyStep row(Text t); + } + + public interface FamilyStep extends QualifierStep { +QualifierStep family(byte[] f); + +QualifierStep family(CharSequence f); + +QualifierStep family(ByteBuffer f); + +QualifierStep family(Text t); + } + + public interface QualifierStep extends VisibilityStep { +VisibilityStep qualifier(byte[] q); + +VisibilityStep qualifier(CharSequence q); + +VisibilityStep qualifier(ByteBuffer q); + +VisibilityStep qualifier(Text t); + } + + public interface VisibilityStep extends TimestampStep { +TimestampStep visibility(byte[] cv); + +TimestampStep visibility(ColumnVisibility cv); + } + + public interface TimestampStep extends MutationStep { +MutationStep timestamp(long t); + } + + public interface MutationStep { +void set(byte[] v, boolean delete); + +void set(ByteBuffer v); + +void set(Value v); + +void delete(); + } + + public RowStep at() { Review comment: This method will need a `@since 2.0` javadoc tag. 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 a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation
keith-turner commented on a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation URL: https://github.com/apache/accumulo/pull/347#discussion_r158282911 ## File path: core/src/main/java/org/apache/accumulo/core/data/Mutation.java ## @@ -772,6 +772,236 @@ public void putDelete(byte[] columnFamily, byte[] columnQualifier, ColumnVisibil put(columnFamily, columnQualifier, columnVisibility.getExpression(), true, timestamp, true, EMPTY_BYTES); } + /** + * Fluent API for Mutation + * + * + * Each step of the Mutation is represented by an interface. Inheritance order ensures that chained methods follow prescribed order of: + * + * + * row, family, qualifier, visibility, timestamp + * + * + * set and delete methods end the chain and finalize the mutation + */ + public interface RowStep extends FamilyStep { Review comment: There should not be a row step. All changes to a mutation are for a single row. 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 a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation
keith-turner commented on a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation URL: https://github.com/apache/accumulo/pull/347#discussion_r158282561 ## File path: core/src/main/java/org/apache/accumulo/core/data/Mutation.java ## @@ -772,6 +772,236 @@ public void putDelete(byte[] columnFamily, byte[] columnQualifier, ColumnVisibil put(columnFamily, columnQualifier, columnVisibility.getExpression(), true, timestamp, true, EMPTY_BYTES); } + /** + * Fluent API for Mutation + * + * + * Each step of the Mutation is represented by an interface. Inheritance order ensures that chained methods follow prescribed order of: + * + * + * row, family, qualifier, visibility, timestamp + * + * + * set and delete methods end the chain and finalize the mutation + */ + public interface RowStep extends FamilyStep { +FamilyStep row(byte[] r); + +FamilyStep row(CharSequence r); + +FamilyStep row(ByteBuffer r); + +FamilyStep row(Text t); Review comment: Personally I think consistency is important. As long as Text methods elsewhere are not deprecated I think it should be supported here. For better or worse Text is widely used in the Accumulo API. Some Accumulo methods only accept Text, which means in some cases users may already have Text objects that could also be used here. 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 a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation
keith-turner commented on a change in pull request #347: ACCUMULO-4746 Fluent API for Mutation URL: https://github.com/apache/accumulo/pull/347#discussion_r158283504 ## File path: core/src/main/java/org/apache/accumulo/core/data/Mutation.java ## @@ -772,6 +772,236 @@ public void putDelete(byte[] columnFamily, byte[] columnQualifier, ColumnVisibil put(columnFamily, columnQualifier, columnVisibility.getExpression(), true, timestamp, true, EMPTY_BYTES); } + /** + * Fluent API for Mutation + * + * + * Each step of the Mutation is represented by an interface. Inheritance order ensures that chained methods follow prescribed order of: + * + * + * row, family, qualifier, visibility, timestamp + * + * + * set and delete methods end the chain and finalize the mutation + */ + public interface RowStep extends FamilyStep { +FamilyStep row(byte[] r); + +FamilyStep row(CharSequence r); + +FamilyStep row(ByteBuffer r); + +FamilyStep row(Text t); + } + + public interface FamilyStep extends QualifierStep { Review comment: All of these interfaces will need a javadoc `@since 2.0` tag. Do not need it on the method as they will inherit it from the class level javadoc. 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] jkrdev commented on issue #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs
jkrdev commented on issue #341: ACCUMULO-3902 Ensure [Batch]Scanners are closed in ITs URL: https://github.com/apache/accumulo/pull/341#issuecomment-353340658 So I will go through again and check them but most of the time when I use a `scanner = null;` outside of a try block followed by a `finally `block it is because the scanner gets re-assigned later on. When in a try-with-resources block the scanner becomes final therefore it can't be re-assigned later on. 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] jmark99 commented on a change in pull request #337: ACCUMULO-4732 No APIs to configure iterators or locality groups for new tables
jmark99 commented on a change in pull request #337: ACCUMULO-4732 No APIs to configure iterators or locality groups for new tables URL: https://github.com/apache/accumulo/pull/337#discussion_r158261473 ## File path: core/src/main/java/org/apache/accumulo/core/client/admin/NewTableConfiguration.java ## @@ -217,17 +215,19 @@ public NewTableConfiguration attachIterator(IteratorSetting setting) throws Accu * object specifying the properties of the iterator * @param scopes * enumerated set of iterator scopes - * @throws AccumuloException - * if a general error occurs * * @since 2.0.0 * * @see TableOperations#attachIterator(String, IteratorSetting, EnumSet) */ - public NewTableConfiguration attachIterator(IteratorSetting setting, EnumSet scopes) throws AccumuloException { + public NewTableConfiguration attachIterator(IteratorSetting setting, EnumSet scopes) { Objects.requireNonNull(setting, "setting cannot be null!"); Objects.requireNonNull(scopes, "scopes cannot be null!"); -TableOperationsHelper.checkIteratorConflicts(iteratorProps, setting, scopes); +try { + TableOperationsHelper.checkIteratorConflicts(iteratorProps, setting, scopes); +} catch (AccumuloException e) { + throw new IllegalArgumentException(e.getMessage()); Review comment: Thanks for the suggestion @ctubbsii. Updated and committed the change. 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