[ 
https://jira.codehaus.org/browse/SUREFIRE-913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kristian Rosenvold closed SUREFIRE-913.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.13
         Assignee: Kristian Rosenvold

Fixed in 
https://git-wip-us.apache.org/repos/asf?p=maven-surefire.git;a=commit;h=b7adb745df68730e43a6e3e4711f18619513bfb0

Thanks for the suggested fix!
                
> forkMode always - RejectedExecutionException when > 500 tests
> -------------------------------------------------------------
>
>                 Key: SUREFIRE-913
>                 URL: https://jira.codehaus.org/browse/SUREFIRE-913
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 2.12.4
>            Reporter: Gary Tully
>            Assignee: Kristian Rosenvold
>             Fix For: 2.13
>
>
> executing more than 500 tests using forkMode=always gives a 
> RejectedExecutionException because the executor has a bounded work queue with 
> a hardcoded limit of 500.
> From the activemq jenkins ci build, the error is reported when 500 tests have 
> run, but it occurs when they are initially scheduled by 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter#runSuitesForkPerTestSet
>  
> {code}
> Waiting for Jenkins to finish collecting data
> mavenExecutionResult exceptions not empty
> message : Failed to execute goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.12.3:test (default-test) on 
> project activemq-core: Execution default-test of goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.12.3:test failed.
> cause : Execution default-test of goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.12.3:test failed.
> Stack trace : 
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
> goal org.apache.maven.plugins:maven-surefire-plugin:2.12.3:test 
> (default-test) on project activemq-core: Execution default-test of goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.12.3:test failed.
>       at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
>       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.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
>       at 
> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
>       at 
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
>       at 
> org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
>       at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
>       at hudson.maven.Maven3Builder.call(Maven3Builder.java:98)
>       at hudson.maven.Maven3Builder.call(Maven3Builder.java:64)
>       at hudson.remoting.UserRequest.perform(UserRequest.java:118)
>       at hudson.remoting.UserRequest.perform(UserRequest.java:48)
>       at hudson.remoting.Request$2.run(Request.java:326)
>       at 
> hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
>       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:886)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>       at java.lang.Thread.run(Thread.java:662)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution 
> default-test of goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.12.3:test failed.
>       at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
>       at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
>       ... 27 more
> Caused by: java.util.concurrent.RejectedExecutionException
>       at 
> java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)
>       at 
> java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
>       at 
> java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
>       at 
> java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:92)
>       at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.runSuitesForkPerTestSet(ForkStarter.java:168)
>       at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:121)
>       at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:740)
>       at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAllProviders(AbstractSurefireMojo.java:682)
>       at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:648)
>       at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:586)
>       at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
>       ... 28 more{code}
> Full output: https://builds.apache.org/job/ActiveMQ/1096/consoleText
> A fix is to make the executor unbounded, which works with the activemq test 
> suite, letting all tests queue up for execution for the single core thread to 
> work through:
> {code}
> @@ -142,8 +144,8 @@ public class ForkStarter
>      {
>  
>          ArrayList<Future<RunResult>> results = new 
> ArrayList<Future<RunResult>>( 500 );
> -        ExecutorService executorService = new ThreadPoolExecutor( forkCount, 
> forkCount, 60, TimeUnit.SECONDS,
> -                                                                  new 
> ArrayBlockingQueue<Runnable>( 500 ) );
> +        ExecutorService executorService = new ThreadPoolExecutor( forkCount, 
> forkCount, 5, TimeUnit.SECONDS,
> +                                                                  new 
> LinkedBlockingQueue<Runnable>( ) );{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to