<< Back to previous view

[QB-2580] java.lang.ClassNotFoundException: java.lang.UNIXProcess on killing process tree on windows
Created: 12/Nov/15  Updated: 14/Nov/15

Status: Resolved
Project: QuickBuild
Component/s: None
Affects Version/s: 6.0.28
Fix Version/s: 6.0.34

Type: Bug Priority: Critical
Reporter: AlSt Assigned To: Unassigned
Resolution: Fixed Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown


 Description   
I think after an agent lost connectivity to the server it tried to clean up running builds on that machine and then this happenend:

04:57:22,207 ERROR - Step 'master>build>execute.tests>build-integrationtests-selective' is failed.
    java.lang.RuntimeException: java.lang.LinkageError
        at com.pmease.quickbuild.bootstrap.BootstrapUtils.wrapAsUnchecked(BootstrapUtils.java:56)
        at com.pmease.quickbuild.util.ExceptionUtils.wrapAsUnchecked(ExceptionUtils.java:82)
        at com.pmease.quickbuild.stepsupport.Step.execute(Step.java:549)
        at com.pmease.quickbuild.stepsupport.StepExecutionJob.executeStepAwareJob(StepExecutionJob.java:30)
        at com.pmease.quickbuild.stepsupport.StepAwareJob.executeBuildAwareJob(StepAwareJob.java:45)
        at com.pmease.quickbuild.BuildAwareJob.execute(BuildAwareJob.java:60)
        at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:106)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.LinkageError
        at com.pmease.quickbuild.execution.killtree.ProcessTree$UnixReflection.<clinit>(ProcessTree.java:544)
        at com.pmease.quickbuild.execution.killtree.ProcessTree$1$1.killRecursively(ProcessTree.java:295)
        at com.pmease.quickbuild.execution.killtree.ProcessTree.killAll(ProcessTree.java:144)
        at com.pmease.quickbuild.execution.Commandline.terminateProcessTree(Commandline.java:404)
        at com.pmease.quickbuild.execution.Commandline.execute(Commandline.java:354)
        at com.pmease.quickbuild.execution.Commandline.execute(Commandline.java:222)
        at com.pmease.quickbuild.plugin.builder.ant.AntBuildStep.run(AntBuildStep.java:288)
        at com.pmease.quickbuild.plugin.builder.ant.AntBuildStep$$EnhancerByCGLIB$$4603eaa4.CGLIB$run$0(<generated>)
        at com.pmease.quickbuild.plugin.builder.ant.AntBuildStep$$EnhancerByCGLIB$$4603eaa4$$FastClassByCGLIB$$e0744b09.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
        at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:273)
        at com.pmease.quickbuild.plugin.builder.ant.AntBuildStep$$EnhancerByCGLIB$$4603eaa4.run(<generated>)
        at com.pmease.quickbuild.stepsupport.Step.execute(Step.java:539)
        ... 9 more
    Caused by: java.lang.ClassNotFoundException: java.lang.UNIXProcess
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:195)
        at com.pmease.quickbuild.execution.killtree.ProcessTree$UnixReflection.<clinit>(ProcessTree.java:531)
        ... 21 more

The weird thing is that the machine where this occurred is a Windows machine (Windows Server 2012 R2 (6.3)). And it also gets recognized as this os type by qb.

 Comments   
Comment by Robin Shen [ 12/Nov/15 11:39 PM ]
Looks like QB mistakenly take the OS as a Unix one. Can you please run below script on the agent via QB scripting step to see what path separator it is using?

groovy:
logger.info("path separator: " + File.pathSeparatorChar);

Also please let me know the JDK version used on this agent.
Comment by AlSt [ 13/Nov/15 09:02 AM ]
10:00:16,300 INFO - path separator: ;
10:00:16,389 INFO - java.version: 1.7.0_80
Generated at Wed Apr 24 22:04:15 UTC 2024 using JIRA 189.