Keith Turner created ACCUMULO-2400:
--------------------------------------
Summary: race condition in ExamplesIT
Key: ACCUMULO-2400
URL: https://issues.apache.org/jira/browse/ACCUMULO-2400
Project: Accumulo
Issue Type: Bug
Environment: 6395840418046d8b3a923a4bfb3e4ba486c5dcd0
Reporter: Keith Turner
Fix For: 1.6.0
Saw ExamplesIT fail with the following exception. Looking at the code I think
there is a race condition. The test calls the MAC.exec() function to create a
process and then reads from stdout of the process. The MAC exec function
starts a background thread to read from stdout. If this background thread
reads stdout before the test I think it will fail in the following way.
Probably need to fix everywhere MAC exec is used in this way. Could either
read from the file MAC creates or pass an option to MAC.exec() to not start the
background thread.
{noformat}
java.io.IOException: Stream closed
at
java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:162)
at java.io.BufferedInputStream.read(BufferedInputStream.java:325)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at
org.apache.accumulo.test.functional.ExamplesIT.testClasspath(ExamplesIT.java:172)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
{noformat}
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)