madteapot
madteapot

Reputation: 2294

AssertionFailedError Forked Java VM exited abnormally for non existing test suite

This may look duplicate to something on SO however I have looked at this, this, this and this but have not found the solution that works.

The problem I have is I am getting this error on jenkins for non existing test suite. Below is the error printed in jenkins ant build log;

compile-tests-run:
    [junit] Testsuite: com.smartstream.control.engine.validation.Batch-With-Multiple-Tests
    [junit] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec
    [junit] 
    [junit] Testcase: null took 0 sec
    [junit]     Caused an ERROR
    [junit] Forked Java VM exited abnormally. Please note the time in the report does not reflect the time until the VM exit.
    [junit] junit.framework.AssertionFailedError: Forked Java VM exited abnormally. Please note the time in the report does not reflect the time until the VM exit.
    [junit] 
    [junit] Running com.smartstream.control.engine.validation.Batch-With-Multiple-Tests
    [junit] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec

BUILD FAILED
u:\jenkins\workspace\control.unittests.execution.time.test\build\build.xml:256: The following error occurred while executing this line:
u:\jenkins\workspace\control.unittests.execution.time.test\engine\build\build.xml:287: Process fork failed.

Total time: 7 minutes 42 seconds
Build step 'Invoke Ant' marked build as failure
Archiving artifacts
Recording test results
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s
Email was triggered for: Failure - Any
Sending email for trigger: Failure - Any
Sending email to: [email protected]
Finished: FAILURE

now as you can see it seems to be failing on com.smartstream.control.engine.validation.Batch-With-Multiple-Tests however I don't have any such test suite in my entire workspace. I couldn't even find it as a literal string anywhere in the project.

The below search in the workspace returned nothing; enter image description here

neither did the windows findstr;

I have tried increasing the ant build memory and permgen to no avail. The build is running with java 1.7.0_80-b15 and ant 1.9.6. Below is the junit ant task specification in engine/build.xml file;

    <junit dir="." haltonfailure="false" printsummary="yes" forkmode="once" fork="yes" showoutput="yes" failureproperty="tests.failed">
        <classpath location="${build.testclasses}" />
        <classpath location="${resources.dir}" />
        <classpath location="${common.properties}" />
        <classpath location="${common.libs}" />

        <formatter type="xml" />
        <formatter type="plain" usefile="false" />
        <jvmarg value="-Demma.coverage.out.file=${build.coveragereport}/coverage.emma" />
        <jvmarg value="-Demma.coverage.out.merge=true" />
        <jvmarg value="-Xms512m" />
        <jvmarg value="-Xmx1536m" />
        <jvmarg value="-XX:MaxPermSize=512m" />
        <jvmarg value="-XX:-UseSplitVerifier"/>

        <batchtest todir="${build.report}">
            <fileset dir="${test.dir}">
                <include name="**/*Test.java" />                    
                <exclude name="${excludeTestPattern1}" />
                <exclude name="${excludeTestPattern2}" />
                <exclude name="${excludeTestPattern3}" />
                <exclude name="${excludeTestPattern4}" />
                <exclude name="${excludeTestPattern5}" />
            </fileset>
        </batchtest>
    </junit>

What I have tried so far

Any help would be greatly appreciated.

Upvotes: 5

Views: 5637

Answers (1)

madteapot
madteapot

Reputation: 2294

I found a solution to this issue. I had to enable verbose logging for ant and through that the following stacktrace was observed;

Caused by: java.io.IOException: Cannot run program "u:\jenkins\tools\hudson.model.JDK\Java7\jre\bin\java.exe" (in directory "u:\jenkins\workspace\control.unittests.execution.time.test\engine"): CreateProcess error=206, The filename or extension is too long
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
    at java.lang.Runtime.exec(Runtime.java:617)
    at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
    at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428)
    at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeAsForked(JUnitTask.java:1257)
    ... 32 more
Caused by: java.io.IOException: CreateProcess error=206, The filename or extension is too long
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:385)
    at java.lang.ProcessImpl.start(ProcessImpl.java:136)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
    ... 37 more

Since jenkins creates workspace based on the build job name it was too long to create forked vm through it. I changed the jenkins job name and it resolved the issue.

Upvotes: 7

Related Questions