[ 
https://jira.codehaus.org/browse/SUREFIRE-1091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=354597#comment-354597
 ] 

Tibor Digana commented on SUREFIRE-1091:
----------------------------------------

@Nicolas
The PR 42 has integration test. It does not seem to have a fix yet, maybe some 
other PR.
We have quite a lot of work with 2.18. We have internal problems with builds. 
On my side I have to test and fix already available features namely runOrder 
and filters/gropus on junit47-provider, SUREFIRE-580.

> IOException when test with much output prints in @After / @AfterClass - 
> possible haning processes
> -------------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-1091
>                 URL: https://jira.codehaus.org/browse/SUREFIRE-1091
>             Project: Maven Surefire
>          Issue Type: Bug
>    Affects Versions: 2.17
>            Reporter: Andreas Gudian
>            Assignee: Andreas Gudian
>            Priority: Critical
>             Fix For: 2.18
>
>
> If a test creates enough output for the DeferredOutputStream to switch to a 
> buffer file, then printing to the output stream in @AfterClass results in an 
> IOException, such as {{java.io.IOException: Stream Closed}} or:
> {code}
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
> goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) 
> on project salog.loadtest.online: ExecutionException
>     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
>     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
>     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:167)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:163)
>     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>     at java.lang.Thread.run(Thread.java:662)
> Caused by: org.apache.maven.plugin.MojoFailureException: ExecutionException
>     at 
> org.apache.maven.plugin.surefire.SurefirePlugin.assertNoException(SurefirePlugin.java:203)
>     at 
> org.apache.maven.plugin.surefire.SurefirePlugin.handleSummary(SurefirePlugin.java:193)
>     at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:861)
>     at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:729)
>     at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
>     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
>     ... 13 more
> Caused by: org.apache.maven.surefire.booter.SurefireBooterForkException: 
> ExecutionException
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.runSuitesForkOnceMultiple(ForkStarter.java:252)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:165)
>     at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:967)
>     at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:831)
>     ... 16 more
> Caused by: java.util.concurrent.ExecutionException: 
> java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: 
> Bad file descriptor
>     at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
>     at java.util.concurrent.FutureTask.get(FutureTask.java:83)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.runSuitesForkOnceMultiple(ForkStarter.java:236)
>     ... 19 more
> Caused by: java.lang.RuntimeException: java.lang.RuntimeException: 
> java.io.IOException: Bad file descriptor
>     at 
> org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer.close(ThreadedStreamConsumer.java:123)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:463)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:352)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.access$300(ForkStarter.java:85)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter$1.call(ForkStarter.java:224)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter$1.call(ForkStarter.java:214)
>     ... 5 more
> Caused by: java.lang.RuntimeException: java.io.IOException: Bad file 
> descriptor
>     at 
> org.apache.maven.plugin.surefire.report.TestSetRunListener.writeTestOutput(TestSetRunListener.java:107)
>     at 
> org.apache.maven.plugin.surefire.booterclient.output.ForkClient.consumeLine(ForkClient.java:139)
>     at 
> org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.run(ThreadedStreamConsumer.java:67)
>     ... 1 more
> Caused by: java.io.IOException: Bad file descriptor
>     at java.io.FileOutputStream.writeBytes(Native Method)
>     at java.io.FileOutputStream.write(FileOutputStream.java:282)
>     at 
> org.apache.maven.surefire.shade.org.apache.commons.io.output.ThresholdingOutputStream.write(ThresholdingOutputStream.java:129)
>     at 
> org.apache.maven.plugin.surefire.report.Utf8RecodingDeferredFileOutputStream.write(Utf8RecodingDeferredFileOutputStream.java:71)
>     at 
> org.apache.maven.plugin.surefire.report.TestSetRunListener.writeTestOutput(TestSetRunListener.java:98)
> {code}
> In case of reuseForks=true and forkCount>1, this would even result in a 
> hanging maven process.
> The issue was pinpointed by a testcase provided in a pull-request by 
> silencerby on GitHub: https://github.com/apache/maven-surefire/pull/42



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Reply via email to