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

Tibor Digana commented on SUREFIRE-1622:
----------------------------------------

[~chammer2]
The thing is that JAR booter in Surefire has classpath in the manifest. If you 
use these parameters, the booter jar is substituted by environment variable. 
It's not very popular. The users have it in their POM because of the troubles 
with JDK 1.8.0u181 Debian distribution of JDK which crashed the Surefire 
because Manifest contained absolute paths. These hacks with the configuration 
parameters should not be used and people should switch to the version 
{{3.0.0-M2}} or {{3.0.0-M3}}.

> failure to run tests if classpath gets too long (?)
> ---------------------------------------------------
>
>                 Key: SUREFIRE-1622
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1622
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 2.22.1
>         Environment: debian linux
> Linux jenkins 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) 
> x86_64 GNU/Linux
> Jenkins 2.157
>            Reporter: Carsten Hammer
>            Priority: Major
>
> We have an aggregating plugin where the classpath of a lot of different 
> projects are combined for integration tests. We now have problems since one 
> point in time with failing tests:
> {noformat}
> Please refer to /var/lib/jenkins/jobs/myproject_trunk 
> svn/workspace/buildhelper/target/surefire-reports for the individual test 
> results.
> Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump 
> and [date].dumpstream.
> The forked VM terminated without properly saying goodbye. VM crash or 
> System.exit called?
> Command was /bin/sh -c cd "/var/lib/jenkins/jobs/myproject_trunk 
> svn/workspace/buildhelper" && 
> /var/lib/jenkins/tools/hudson.model.JDK/java8/jre/bin/java 
> -Dfile.encoding=UTF-8 org.apache.maven.surefire.booter.ForkedBooter 
> '/var/lib/jenkins/jobs/myproject_trunk 
> svn/workspace/buildhelper/target/surefire' 2019-01-08T17-09-39_970-jvmRun1 
> surefire76194600426378498tmp surefire_18239836832627501299tmp
> Error while executing forked tests.Error while executing process.Cannot run 
> program "/bin/sh" (in directory "/var/lib/jenkins/jobs/myproject_trunk 
> svn/workspace/buildhelper"): error=7, Die Argumentliste ist zu 
> langorg.apache.maven.surefire.shade.org.apache.maven.shared.utils.cli.CommandLineException:
>  Error while executing process.
>     at 
> org.apache.maven.surefire.shade.org.apache.maven.shared.utils.cli.Commandline.execute(Commandline.java:412)
>     at 
> org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline.execute(OutputStreamFlushableCommandline.java:65)
>     at 
> org.apache.maven.surefire.shade.org.apache.maven.shared.utils.cli.CommandLineUtils.executeCommandLineAsCallable(CommandLineUtils.java:229)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:609)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:282)
>     at 
> org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:245)
>     at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1183)
>     at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1011)
>     at 
> org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:857)
>     at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
>     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
>     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
>     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
>     at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
>     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
>     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
>     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
>     at 
> org.jvnet.hudson.maven3.launcher.Maven35Launcher.main(Maven35Launcher.java:130)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:498)
>     at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
>     at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
>     at jenkins.maven3.agent.Maven35Main.launch(Maven35Main.java:176)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:498)
>     at hudson.maven.Maven3Builder.call(Maven3Builder.java:139)
>     at hudson.maven.Maven3Builder.call(Maven3Builder.java:70)
>     at hudson.remoting.UserRequest.perform(UserRequest.java:212)
>     at hudson.remoting.UserRequest.perform(UserRequest.java:54)
>     at hudson.remoting.Request$2.run(Request.java:369)
>     at 
> hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.IOException: Cannot run program "/bin/sh" (in directory 
> "/var/lib/jenkins/jobs/myproject_trunk svn/workspace/buildhelper"): error=7, 
> Die Argumentliste ist zu lang
>     at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
>     at java.lang.Runtime.exec(Runtime.java:620)
>     at 
> org.apache.maven.surefire.shade.org.apache.maven.shared.utils.cli.Commandline.execute(Commandline.java:407)
>     ... 41 more
> Caused by: java.io.IOException: error=7, Die Argumentliste ist zu lang
>     at java.lang.UNIXProcess.forkAndExec(Native Method)
>     at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
>     at java.lang.ProcessImpl.start(ProcessImpl.java:134)
>     at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
>     ... 43 more{noformat}
> I suspect that the internal implementation of maven surefire does not allow 
> to work with a really long classpath.
> I tried the suggestion with the ulimit command as described here:
> [https://unix.stackexchange.com/questions/45583/argument-list-too-long-how-do-i-deal-with-it-without-changing-my-command]
> However it does not work.
> Is there a way to switch on a more verbose log to learn what is internally 
> the cause of the problem?
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to