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

Vikram Srivastava commented on ACCUMULO-2400:
---------------------------------------------

[~kturner] exec already does the logging using {{LogWriter}} :
{noformat}
Process process = builder.start();

    LogWriter lw;
    lw = new LogWriter(process.getErrorStream(), new File(config.getLogDir(), 
clazz.getSimpleName() + "_" + process.hashCode() + ".err"));
    logWriters.add(lw);
    lw.start();
    lw = new LogWriter(process.getInputStream(), new File(config.getLogDir(), 
clazz.getSimpleName() + "_" + process.hashCode() + ".out"));
    logWriters.add(lw);
    lw.start();
{noformat}

Are you looking for something more? (BTW, the log file names can be improved)

> 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)

Reply via email to