[jira] [Commented] (ACCUMULO-4469) ConcurrentModificationException while running MultiTable.xml node in Random Walk

2016-09-22 Thread Dima Spivak (JIRA)

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

Dima Spivak commented on ACCUMULO-4469:
---

Hm... looked into the {{State}} class and realized it's just wrapping a 
{{HashMap}}, so not sure why it would be getting updated underneath me. :(

> ConcurrentModificationException while running MultiTable.xml node in Random 
> Walk 
> -
>
> Key: ACCUMULO-4469
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4469
> Project: Accumulo
>  Issue Type: Bug
>  Components: test
>Affects Versions: 1.7.2
>Reporter: Dima Spivak
>Assignee: Dima Spivak
>
> After the resolution of ACCUMULO-4467, I got back to playing with Random Walk 
> and had a failure caused by a {{ConcurrentModificationException}}:
> {code}
> 23 01:03:04,316 [randomwalk.Framework] ERROR: Error during random walk
> java.lang.Exception: Error running node MultiTable.xml
> at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
> at 
> org.apache.accumulo.test.randomwalk.Framework.run(Framework.java:59)
> at 
> org.apache.accumulo.test.randomwalk.Framework.main(Framework.java:119)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at org.apache.accumulo.start.Main$2.run(Main.java:157)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.util.ConcurrentModificationException
> at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
> at java.util.ArrayList$Itr.next(ArrayList.java:831)
> at 
> org.apache.accumulo.test.randomwalk.multitable.MultiTableFixture.tearDown(MultiTableFixture.java:64)
> at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:365)
> at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:283)
> at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:278)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at 
> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
> ... 1 more
> {code}
> [This section of 
> code|https://github.com/apache/accumulo/blob/master/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/MultiTableFixture.java#L61-L71]
>  seems to be at fault. In particular, it looks like we're getting the table 
> list, but then instead of doing a deep copy to a new {{ArrayList}} 
> from which we choose tables to delete, we're looping through and deleting 
> tables while referring to the changing list, which has the effect of 
> modifying it and making Java unhappy. Am I missing something more complex or 
> can I fix this one myself by just doing the aforementioned deep copy of the 
> table list? Or is a better way to use the {{TableOperations.list()}} method 
> and iterate through the {{SortedSet}} it provides?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (ACCUMULO-4469) ConcurrentModificationException while running MultiTable.xml node in Random Walk

2016-09-22 Thread Dima Spivak (JIRA)

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

Dima Spivak reassigned ACCUMULO-4469:
-

Assignee: Dima Spivak

> ConcurrentModificationException while running MultiTable.xml node in Random 
> Walk 
> -
>
> Key: ACCUMULO-4469
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4469
> Project: Accumulo
>  Issue Type: Bug
>  Components: test
>Affects Versions: 1.7.2
>Reporter: Dima Spivak
>Assignee: Dima Spivak
>
> After the resolution of ACCUMULO-4467, I got back to playing with Random Walk 
> and had a failure caused by a {{ConcurrentModificationException}}:
> {code}
> 23 01:03:04,316 [randomwalk.Framework] ERROR: Error during random walk
> java.lang.Exception: Error running node MultiTable.xml
> at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
> at 
> org.apache.accumulo.test.randomwalk.Framework.run(Framework.java:59)
> at 
> org.apache.accumulo.test.randomwalk.Framework.main(Framework.java:119)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at org.apache.accumulo.start.Main$2.run(Main.java:157)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.util.ConcurrentModificationException
> at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
> at java.util.ArrayList$Itr.next(ArrayList.java:831)
> at 
> org.apache.accumulo.test.randomwalk.multitable.MultiTableFixture.tearDown(MultiTableFixture.java:64)
> at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:365)
> at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:283)
> at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:278)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at 
> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
> ... 1 more
> {code}
> [This section of 
> code|https://github.com/apache/accumulo/blob/master/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/MultiTableFixture.java#L61-L71]
>  seems to be at fault. In particular, it looks like we're getting the table 
> list, but then instead of doing a deep copy to a new {{ArrayList}} 
> from which we choose tables to delete, we're looping through and deleting 
> tables while referring to the changing list, which has the effect of 
> modifying it and making Java unhappy. Am I missing something more complex or 
> can I fix this one myself by just doing the aforementioned deep copy of the 
> table list? Or is a better way to use the {{TableOperations.list()}} method 
> and iterate through the {{SortedSet}} it provides?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ACCUMULO-4469) ConcurrentModificationException while running MultiTable.xml node in Random Walk

2016-09-22 Thread Dima Spivak (JIRA)

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

Dima Spivak updated ACCUMULO-4469:
--
Description: 
After the resolution of ACCUMULO-4467, I got back to playing with Random Walk 
and had a failure caused by a {{ConcurrentModificationException}}:
{code}
23 01:03:04,316 [randomwalk.Framework] ERROR: Error during random walk
java.lang.Exception: Error running node MultiTable.xml
at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
at org.apache.accumulo.test.randomwalk.Framework.run(Framework.java:59)
at 
org.apache.accumulo.test.randomwalk.Framework.main(Framework.java:119)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.accumulo.start.Main$2.run(Main.java:157)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
at java.util.ArrayList$Itr.next(ArrayList.java:831)
at 
org.apache.accumulo.test.randomwalk.multitable.MultiTableFixture.tearDown(MultiTableFixture.java:64)
at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:365)
at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:283)
at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:278)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at 
org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
... 1 more
{code}
[This section of 
code|https://github.com/apache/accumulo/blob/master/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/MultiTableFixture.java#L61-L71]
 seems to be at fault. In particular, it looks like we're getting the table 
list, but then instead of doing a deep copy to a new {{ArrayList}} from 
which we choose tables to delete, we're looping through and deleting tables 
while referring to the changing list, which has the effect of modifying it and 
making Java unhappy. Am I missing something more complex or can I fix this one 
myself by just doing the aforementioned deep copy of the table list? Or is a 
better way to use the {{TableOperations.list()}} method and iterate through the 
{{SortedSet}} it provides?

  was:
After the resolution of ACCUMULO-4467, I got back to playing with Random Walk 
and had a failure caused by a {{ConcurrentModificationException}}:
{code}
23 01:03:04,316 [randomwalk.Framework] ERROR: Error during random walk
java.lang.Exception: Error running node MultiTable.xml
at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
at org.apache.accumulo.test.randomwalk.Framework.run(Framework.java:59)
at 
org.apache.accumulo.test.randomwalk.Framework.main(Framework.java:119)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.accumulo.start.Main$2.run(Main.java:157)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
at java.util.ArrayList$Itr.next(ArrayList.java:831)
at 
org.apache.accumulo.test.randomwalk.multitable.MultiTableFixture.tearDown(MultiTableFixture.java:64)
at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:365)
at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:283)
at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:278)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at 
org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
... 1 more
{code}
[This section of 

[jira] [Created] (ACCUMULO-4469) ConcurrentModificationException while running MultiTable.xml node in Random Walk

2016-09-22 Thread Dima Spivak (JIRA)
Dima Spivak created ACCUMULO-4469:
-

 Summary: ConcurrentModificationException while running 
MultiTable.xml node in Random Walk 
 Key: ACCUMULO-4469
 URL: https://issues.apache.org/jira/browse/ACCUMULO-4469
 Project: Accumulo
  Issue Type: Bug
  Components: test
Affects Versions: 1.7.2
Reporter: Dima Spivak


After the resolution of ACCUMULO-4467, I got back to playing with Random Walk 
and had a failure caused by a {{ConcurrentModificationException}}:
{code}
23 01:03:04,316 [randomwalk.Framework] ERROR: Error during random walk
java.lang.Exception: Error running node MultiTable.xml
at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
at org.apache.accumulo.test.randomwalk.Framework.run(Framework.java:59)
at 
org.apache.accumulo.test.randomwalk.Framework.main(Framework.java:119)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.accumulo.start.Main$2.run(Main.java:157)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
at java.util.ArrayList$Itr.next(ArrayList.java:831)
at 
org.apache.accumulo.test.randomwalk.multitable.MultiTableFixture.tearDown(MultiTableFixture.java:64)
at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:365)
at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:283)
at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:278)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at 
org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
... 1 more
{code}
[This section of 
code|https://github.com/apache/accumulo/blob/master/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/MultiTableFixture.java#L61-L71]
 seems to be at fault. In particular, it looks like we're getting the table 
list, but then instead of doing a deep copy to a new {{ArrayList}} from 
which we choose tables to delete, we're looping through and deleting tables 
while referring to the changing list, which has the effect of modifying it and 
making Java unhappy. Am I missing something more complex or can I fix this one 
myself by just doing the aforementioned deep copy of the table list? Or is a 
better way to go to use the {{TableOperations.list()}} method and iterate 
through the {{SortedSet}} it provides? Looks like this pattern is used 
in a few other 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Accumulo-Pull-Requests - Build # 449 - Aborted

2016-09-22 Thread Apache Jenkins Server
The Apache Jenkins build system has built Accumulo-Pull-Requests (build #449)

Status: Aborted

Check console output at 
https://builds.apache.org/job/Accumulo-Pull-Requests/449/ to view the results.

Accumulo-1.8 - Build # 107 - Aborted

2016-09-22 Thread Apache Jenkins Server
The Apache Jenkins build system has built Accumulo-1.8 (build #107)

Status: Aborted

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

[jira] [Commented] (ACCUMULO-1280) Add close method to iterators

2016-09-22 Thread Christopher Tubbs (JIRA)

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

Christopher Tubbs commented on ACCUMULO-1280:
-

With the 2.0 branch, we can actually make them all AutoCloseable now, and 
provide a default close() method, because we're now on Java 8.

> Add close method to iterators
> -
>
> Key: ACCUMULO-1280
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1280
> Project: Accumulo
>  Issue Type: Improvement
>Reporter: Keith Turner
>Assignee: Michael Miller
> Fix For: 2.0.0
>
>
> It would be useful if Accumulo iterators had a close method.  Accumulo would 
> call this when its finished using the iterator stack.
> How would this work w/ isolation?
> Is it ok to break the iterator API?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ACCUMULO-4467) Random Walk broken because of unmet dependency on commons-math

2016-09-22 Thread Sean Busbey (JIRA)

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

Sean Busbey updated ACCUMULO-4467:
--
Resolution: Fixed
Status: Resolved  (was: Patch Available)

> Random Walk broken because of unmet dependency on commons-math
> --
>
> Key: ACCUMULO-4467
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4467
> Project: Accumulo
>  Issue Type: Bug
>  Components: test
>Affects Versions: 1.6.6, 1.7.2
>Reporter: Dima Spivak
>Assignee: Sean Busbey
> Fix For: 1.7.3, 1.8.1, 2.0.0
>
> Attachments: ACCUMULO-4467-1.6.v1.patch, ACCUMULO-4467-1.7.v1.patch, 
> ACCUMULO-4467-1.8.v1.patch
>
>  Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> When trying to run the Random Walk with {{LongEach.xml}} module, I hit a 
> failure once we reach the {{Shard.xml}} step:
> {code}
> 16 19:52:05,146 [randomwalk.Framework] ERROR: Error during random walk
> java.lang.Exception: Error running node Shard.xml
>   at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
>   at org.apache.accumulo.test.randomwalk.Framework.run(Framework.java:59)
>   at 
> org.apache.accumulo.test.randomwalk.Framework.main(Framework.java:119)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at org.apache.accumulo.start.Main$2.run(Main.java:157)
>   at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.Exception: Error running node shard.BulkInsert
>   at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
>   at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:283)
>   at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:278)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>   at 
> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
>   ... 1 more
> Caused by: java.lang.Exception: Failed to run map/red verify
>   at 
> org.apache.accumulo.test.randomwalk.shard.BulkInsert.sort(BulkInsert.java:186)
>   at 
> org.apache.accumulo.test.randomwalk.shard.BulkInsert.visit(BulkInsert.java:132)
>   ... 9 more
> {code}
> Digging into YARN to see why the MR job became unhappy, I see the following:
> {code}
> Error: java.lang.ClassNotFoundException: 
> org.apache.commons.math.stat.descriptive.SummaryStatistics at 
> java.net.URLClassLoader$1.run(URLClassLoader.java:366) at 
> java.net.URLClassLoader$1.run(URLClassLoader.java:355) at 
> java.security.AccessController.doPrivileged(Native Method) at 
> java.net.URLClassLoader.findClass(URLClassLoader.java:354) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:425) at 
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:358) at 
> org.apache.accumulo.core.file.rfile.RFile$Writer.(RFile.java:310) at 
> org.apache.accumulo.core.file.rfile.RFileOperations.openWriter(RFileOperations.java:127)
>  at 
> org.apache.accumulo.core.file.rfile.RFileOperations.openWriter(RFileOperations.java:106)
>  at 
> org.apache.accumulo.core.file.DispatchingFileFactory.openWriter(DispatchingFileFactory.java:78)
>  at 
> org.apache.accumulo.core.client.mapreduce.AccumuloFileOutputFormat$1.write(AccumuloFileOutputFormat.java:172)
>  at 
> org.apache.accumulo.core.client.mapreduce.AccumuloFileOutputFormat$1.write(AccumuloFileOutputFormat.java:152)
>  at 
> org.apache.hadoop.mapred.ReduceTask$NewTrackingRecordWriter.write(ReduceTask.java:558)
>  at 
> org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89)
>  at 
> org.apache.hadoop.mapreduce.lib.reduce.WrappedReducer$Context.write(WrappedReducer.java:105)
>  at org.apache.hadoop.mapreduce.Reducer.reduce(Reducer.java:150) at 
> org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:171) at 
> org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:627) at 
> org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:389) at 
> org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at 
> java.security.AccessController.doPrivileged(Native Method) at 
> javax.security.auth.Subject.doAs(Subject.java:415) at 
> 

[jira] [Commented] (ACCUMULO-4467) Random Walk broken because of unmet dependency on commons-math

2016-09-22 Thread Christopher Tubbs (JIRA)

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

Christopher Tubbs commented on ACCUMULO-4467:
-

Yeah, the last commit on that branch was included in the 1.6.6 tag, and merged 
forward. If we *had* to, we could branch again from the tag, to apply fixes... 
but I don't think we should do that unless there's a *really* serious issue to 
address. So happy to have immediately dropped Java 6 and LaTeX from my 
build/test environments... :)

> Random Walk broken because of unmet dependency on commons-math
> --
>
> Key: ACCUMULO-4467
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4467
> Project: Accumulo
>  Issue Type: Bug
>  Components: test
>Affects Versions: 1.6.6, 1.7.2
>Reporter: Dima Spivak
>Assignee: Sean Busbey
> Fix For: 1.7.3, 1.8.1, 2.0.0
>
> Attachments: ACCUMULO-4467-1.6.v1.patch, ACCUMULO-4467-1.7.v1.patch, 
> ACCUMULO-4467-1.8.v1.patch
>
>
> When trying to run the Random Walk with {{LongEach.xml}} module, I hit a 
> failure once we reach the {{Shard.xml}} step:
> {code}
> 16 19:52:05,146 [randomwalk.Framework] ERROR: Error during random walk
> java.lang.Exception: Error running node Shard.xml
>   at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
>   at org.apache.accumulo.test.randomwalk.Framework.run(Framework.java:59)
>   at 
> org.apache.accumulo.test.randomwalk.Framework.main(Framework.java:119)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at org.apache.accumulo.start.Main$2.run(Main.java:157)
>   at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.Exception: Error running node shard.BulkInsert
>   at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
>   at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:283)
>   at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:278)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>   at 
> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
>   ... 1 more
> Caused by: java.lang.Exception: Failed to run map/red verify
>   at 
> org.apache.accumulo.test.randomwalk.shard.BulkInsert.sort(BulkInsert.java:186)
>   at 
> org.apache.accumulo.test.randomwalk.shard.BulkInsert.visit(BulkInsert.java:132)
>   ... 9 more
> {code}
> Digging into YARN to see why the MR job became unhappy, I see the following:
> {code}
> Error: java.lang.ClassNotFoundException: 
> org.apache.commons.math.stat.descriptive.SummaryStatistics at 
> java.net.URLClassLoader$1.run(URLClassLoader.java:366) at 
> java.net.URLClassLoader$1.run(URLClassLoader.java:355) at 
> java.security.AccessController.doPrivileged(Native Method) at 
> java.net.URLClassLoader.findClass(URLClassLoader.java:354) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:425) at 
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:358) at 
> org.apache.accumulo.core.file.rfile.RFile$Writer.(RFile.java:310) at 
> org.apache.accumulo.core.file.rfile.RFileOperations.openWriter(RFileOperations.java:127)
>  at 
> org.apache.accumulo.core.file.rfile.RFileOperations.openWriter(RFileOperations.java:106)
>  at 
> org.apache.accumulo.core.file.DispatchingFileFactory.openWriter(DispatchingFileFactory.java:78)
>  at 
> org.apache.accumulo.core.client.mapreduce.AccumuloFileOutputFormat$1.write(AccumuloFileOutputFormat.java:172)
>  at 
> org.apache.accumulo.core.client.mapreduce.AccumuloFileOutputFormat$1.write(AccumuloFileOutputFormat.java:152)
>  at 
> org.apache.hadoop.mapred.ReduceTask$NewTrackingRecordWriter.write(ReduceTask.java:558)
>  at 
> org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89)
>  at 
> org.apache.hadoop.mapreduce.lib.reduce.WrappedReducer$Context.write(WrappedReducer.java:105)
>  at org.apache.hadoop.mapreduce.Reducer.reduce(Reducer.java:150) at 
> org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:171) at 
> org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:627) at 
> 

[jira] [Commented] (ACCUMULO-4467) Random Walk broken because of unmet dependency on commons-math

2016-09-22 Thread Sean Busbey (JIRA)

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

Sean Busbey commented on ACCUMULO-4467:
---

{quote}
-0 for 1.6 (let it die)
{quote}

[~ctubbsii] has now cleaned up the 1.6 branch, so I'll skip 1.6. :)

> Random Walk broken because of unmet dependency on commons-math
> --
>
> Key: ACCUMULO-4467
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4467
> Project: Accumulo
>  Issue Type: Bug
>  Components: test
>Affects Versions: 1.6.6, 1.7.2
>Reporter: Dima Spivak
>Assignee: Sean Busbey
> Fix For: 1.7.3, 1.8.1, 2.0.0
>
> Attachments: ACCUMULO-4467-1.6.v1.patch, ACCUMULO-4467-1.7.v1.patch, 
> ACCUMULO-4467-1.8.v1.patch
>
>
> When trying to run the Random Walk with {{LongEach.xml}} module, I hit a 
> failure once we reach the {{Shard.xml}} step:
> {code}
> 16 19:52:05,146 [randomwalk.Framework] ERROR: Error during random walk
> java.lang.Exception: Error running node Shard.xml
>   at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
>   at org.apache.accumulo.test.randomwalk.Framework.run(Framework.java:59)
>   at 
> org.apache.accumulo.test.randomwalk.Framework.main(Framework.java:119)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at org.apache.accumulo.start.Main$2.run(Main.java:157)
>   at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.Exception: Error running node shard.BulkInsert
>   at org.apache.accumulo.test.randomwalk.Module.visit(Module.java:346)
>   at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:283)
>   at org.apache.accumulo.test.randomwalk.Module$1.call(Module.java:278)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>   at 
> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
>   ... 1 more
> Caused by: java.lang.Exception: Failed to run map/red verify
>   at 
> org.apache.accumulo.test.randomwalk.shard.BulkInsert.sort(BulkInsert.java:186)
>   at 
> org.apache.accumulo.test.randomwalk.shard.BulkInsert.visit(BulkInsert.java:132)
>   ... 9 more
> {code}
> Digging into YARN to see why the MR job became unhappy, I see the following:
> {code}
> Error: java.lang.ClassNotFoundException: 
> org.apache.commons.math.stat.descriptive.SummaryStatistics at 
> java.net.URLClassLoader$1.run(URLClassLoader.java:366) at 
> java.net.URLClassLoader$1.run(URLClassLoader.java:355) at 
> java.security.AccessController.doPrivileged(Native Method) at 
> java.net.URLClassLoader.findClass(URLClassLoader.java:354) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:425) at 
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:358) at 
> org.apache.accumulo.core.file.rfile.RFile$Writer.(RFile.java:310) at 
> org.apache.accumulo.core.file.rfile.RFileOperations.openWriter(RFileOperations.java:127)
>  at 
> org.apache.accumulo.core.file.rfile.RFileOperations.openWriter(RFileOperations.java:106)
>  at 
> org.apache.accumulo.core.file.DispatchingFileFactory.openWriter(DispatchingFileFactory.java:78)
>  at 
> org.apache.accumulo.core.client.mapreduce.AccumuloFileOutputFormat$1.write(AccumuloFileOutputFormat.java:172)
>  at 
> org.apache.accumulo.core.client.mapreduce.AccumuloFileOutputFormat$1.write(AccumuloFileOutputFormat.java:152)
>  at 
> org.apache.hadoop.mapred.ReduceTask$NewTrackingRecordWriter.write(ReduceTask.java:558)
>  at 
> org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89)
>  at 
> org.apache.hadoop.mapreduce.lib.reduce.WrappedReducer$Context.write(WrappedReducer.java:105)
>  at org.apache.hadoop.mapreduce.Reducer.reduce(Reducer.java:150) at 
> org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:171) at 
> org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:627) at 
> org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:389) at 
> org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at 
> java.security.AccessController.doPrivileged(Native Method) at 
> javax.security.auth.Subject.doAs(Subject.java:415) at 

[jira] [Commented] (ACCUMULO-4468) accumulo.core.data.Key.equals(Key, PartialKey) improvement

2016-09-22 Thread Keith Turner (JIRA)

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

Keith Turner commented on ACCUMULO-4468:


The network code uses the 
[Key.compress()|https://github.com/apache/accumulo/blob/1a663143c4d81367f7703bceb8b24374d59c154e/core/src/main/java/org/apache/accumulo/core/data/Key.java#L1085]
 and 
[Key.decompress()|https://github.com/apache/accumulo/blob/1a663143c4d81367f7703bceb8b24374d59c154e/core/src/main/java/org/apache/accumulo/core/data/Key.java#L1137]
 functions, maybe the test could use that to simulate what rfile does.  Its 
based on thrift stuff though, so it would clunky to use.


> accumulo.core.data.Key.equals(Key, PartialKey) improvement
> --
>
> Key: ACCUMULO-4468
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4468
> Project: Accumulo
>  Issue Type: Improvement
>  Components: core
>Affects Versions: 1.8.0
>Reporter: Will Murnane
>Priority: Trivial
>  Labels: newbie, performance
> Attachments: benchmark.tar.gz, key_comparison.patch
>
>
> In the Key.equals(Key, PartialKey) overload, the current method compares 
> starting at the beginning of the key, and works its way toward the end. This 
> functions correctly, of course, but one of the typical uses of this method is 
> to compare adjacent rows to break them into larger chunks. For example, 
> accumulo.core.iterators.Combiner repeatedly calls this method with subsequent 
> pairs of keys.
> I have a patch which reverses the comparison order. That is, if the method is 
> called with ROW_COLFAM_COLQUAL_COLVIS, it will compare visibility, cq, cf, 
> and finally row. This (marginally) improves the speed of comparisons in the 
> relatively common case where only the last part is changing, with less 
> complex code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ACCUMULO-4468) accumulo.core.data.Key.equals(Key, PartialKey) improvement

2016-09-22 Thread Keith Turner (JIRA)

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

Keith Turner commented on ACCUMULO-4468:


bq. That said, maybe there would be benefits to storing all the pieces of the 
Key in a single byte array, and maintaining indices into it to track the 
individual parts, rather than several smaller arrays...

Key used to be like that (one large byte array with pointers).  I changed it 
when adding support for relative compression in rfile.  The reasoning behind 
the change was so that when rfile deserializes a key and a field is the same as 
the last key, it can just point to the previous byte array.  This makes 
equality comparisons on rows or columns that are the same really fast (because 
the byte array is the same and equality checks that).  The code that serializes 
keys and transfers them across the network also does this.  So it may be 
interesting to have the test stream keys from an RFile.

bq. I think it would be worth revisiting the comparison mechanism in isEqual, 
too, doing something like the Unsafe method used in Hadoop's 
FastByteComparisons class but going in reverse.

Thats sounds like an interesting line of investigation.  The compare methods 
could also leverage this technique.  We may have an issue open for this already.

> accumulo.core.data.Key.equals(Key, PartialKey) improvement
> --
>
> Key: ACCUMULO-4468
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4468
> Project: Accumulo
>  Issue Type: Improvement
>  Components: core
>Affects Versions: 1.8.0
>Reporter: Will Murnane
>Priority: Trivial
>  Labels: newbie, performance
> Attachments: benchmark.tar.gz, key_comparison.patch
>
>
> In the Key.equals(Key, PartialKey) overload, the current method compares 
> starting at the beginning of the key, and works its way toward the end. This 
> functions correctly, of course, but one of the typical uses of this method is 
> to compare adjacent rows to break them into larger chunks. For example, 
> accumulo.core.iterators.Combiner repeatedly calls this method with subsequent 
> pairs of keys.
> I have a patch which reverses the comparison order. That is, if the method is 
> called with ROW_COLFAM_COLQUAL_COLVIS, it will compare visibility, cq, cf, 
> and finally row. This (marginally) improves the speed of comparisons in the 
> relatively common case where only the last part is changing, with less 
> complex code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ACCUMULO-4468) accumulo.core.data.Key.equals(Key, PartialKey) improvement

2016-09-22 Thread Will Murnane (JIRA)

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

Will Murnane commented on ACCUMULO-4468:


[~elserj] I'm not sure why customVanilla and standardEquals behave differently. 
The difference is small, and perhaps it's due to variance in the JDK used to 
compile the standard Accumulo JAR versus the one used to compile the benchmark 
code? Maybe there are effects from having the code loaded from a small JAR 
versus a large one? Maybe the custom WillKey class gets laid out in memory 
differently, and it hits instruction cache differently? This is the problem of 
benchmarking...

RE: generation of data, yeah, the current test data... leaves something to be 
desired. This was basically the least-worst mechanism I could come up with in 5 
minutes to generate some test data that kinda-sorta resembles our production 
data. If anyone has a better strategy I'm willing to do a little legwork 
testing other data sets.

[~kturner] The parts of the key are stored on the heap somewhere, so the 
problem of row equality is somewhat different than the problem of comparing two 
contiguous byte arrays. That said, maybe there would be benefits to storing all 
the pieces of the Key in a single byte array, and maintaining indices into it 
to track the individual parts, rather than several smaller arrays... That's a 
big refactor, though, for an unknown change in performance.

I think it would be worth revisiting the comparison mechanism in isEqual, too, 
doing something like the Unsafe method used in Hadoop's FastByteComparisons 
class but going in reverse. The CPU's speculative prefetch should work in 
either direction, but doing the comparison byte-at-a-time is going to be more 
expensive than the 64-bit comparisons that FastByteComparisons does. But that's 
a topic for another ticket ;)

> accumulo.core.data.Key.equals(Key, PartialKey) improvement
> --
>
> Key: ACCUMULO-4468
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4468
> Project: Accumulo
>  Issue Type: Improvement
>  Components: core
>Affects Versions: 1.8.0
>Reporter: Will Murnane
>Priority: Trivial
>  Labels: newbie, performance
> Attachments: benchmark.tar.gz, key_comparison.patch
>
>
> In the Key.equals(Key, PartialKey) overload, the current method compares 
> starting at the beginning of the key, and works its way toward the end. This 
> functions correctly, of course, but one of the typical uses of this method is 
> to compare adjacent rows to break them into larger chunks. For example, 
> accumulo.core.iterators.Combiner repeatedly calls this method with subsequent 
> pairs of keys.
> I have a patch which reverses the comparison order. That is, if the method is 
> called with ROW_COLFAM_COLQUAL_COLVIS, it will compare visibility, cq, cf, 
> and finally row. This (marginally) improves the speed of comparisons in the 
> relatively common case where only the last part is changing, with less 
> complex code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)