<< Back to previous view

[QB-2679] HessianProtocolException on checkout of latest build when source folder does not exist
Created: 31/Mar/16  Updated: 07/Jul/16

Status: Resolved
Project: QuickBuild
Component/s: None
Affects Version/s: 6.1.9
Fix Version/s: 6.1.19

Type: Bug Priority: Major
Reporter: AlSt Assigned To: Robin Shen
Resolution: Fixed Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown


 Description   
It is pretty hard to find the reason why the following exception occurs:
03:49:43,336 ERROR - Step 'master>checkout>checkout-qb-com.dynatrace.diagnostics.automation' is failed.
    com.caucho.hessian.client.HessianRuntimeException: com.caucho.hessian.io.HessianProtocolException: ' ' is an unknown code
        at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:226)
        at com.sun.proxy.$Proxy23.queryUniqueResult(Unknown Source)
        at com.pmease.quickbuild.persistence.AgentQueryCarrier.invoke(AgentQueryCarrier.java:59)
        at com.sun.proxy.$Proxy22.uniqueResult(Unknown Source)
        at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager.getPrevious(DefaultBuildManager.java:130)
        at com.pmease.quickbuild.persistence.SessionInterceptor.invoke(SessionInterceptor.java:49)
        at com.pmease.quickbuild.model.Build.getPrevious(Build.java:869)
        at com.pmease.quickbuild.model.Build.getChangeBase(Build.java:1286)
        at com.pmease.quickbuild.repositorysupport.Repository.getChanges(Repository.java:401)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$4847fde8.CGLIB$getChanges$45(<generated>)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$4847fde8$$FastClassByCGLIB$$5f095607.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
        at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:261)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$4847fde8.getChanges(<generated>)
        at com.pmease.quickbuild.repositorysupport.Repository.getChanges(Repository.java:375)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$4847fde8.CGLIB$getChanges$46(<generated>)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$4847fde8$$FastClassByCGLIB$$5f095607.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
        at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:261)
        at com.pmease.quickbuild.dependency.QuickbuildRepository$$EnhancerByCGLIB$$4847fde8.getChanges(<generated>)
        at com.pmease.quickbuild.repositorysupport.CheckoutStep.run(CheckoutStep.java:74)
        at com.pmease.quickbuild.repositorysupport.CheckoutStep$$EnhancerByCGLIB$$a3907b11.CGLIB$run$0(<generated>)
        at com.pmease.quickbuild.repositorysupport.CheckoutStep$$EnhancerByCGLIB$$a3907b11$$FastClassByCGLIB$$e6930ea8.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
        at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:261)
        at com.pmease.quickbuild.repositorysupport.CheckoutStep$$EnhancerByCGLIB$$a3907b11.run(<generated>)
        at com.pmease.quickbuild.stepsupport.Step.execute(Step.java:548)
        at com.pmease.quickbuild.stepsupport.StepExecutionJob.executeStepAwareJob(StepExecutionJob.java:31)
        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: com.caucho.hessian.io.HessianProtocolException: ' ' is an unknown code
        at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:224)
        ... 35 more

It seems this is the case when the latest build (not the latest successful) is used and the source folder did not get published in the build which should be checked out.
Please at least throw an exception will a explanatory message.

 Comments   
Comment by Robin Shen [ 01/Apr/16 12:42 AM ]
The stack trace shows that this should not be caused by missing source folder when downloading QuickBuild artifacts. Are you able to reproduce this issue every time when the latest dependency build misses the source folder?
Comment by AlSt [ 01/Apr/16 06:36 AM ]
I will try to reproduce that and provide more information. But I suspected that's the cause because I already saw that a couple of times and that was always when the dependency build failed and had no artifacts published.
Comment by Robin Shen [ 02/Apr/16 12:38 AM ]
I tried but QB simply reports that the directory to fetch does not exist in case there are no artifacts being published.
Comment by AlSt [ 23/Jun/16 10:29 AM ]
Ok I was able to reproduce the HessianProtocolException:

Following steps:

1. Create 2 configurations ("dependency", "build")
2. In "dependency" add one script step with:
groovy:
throw new Exception("fail")
3. Set build condition in "dependency" to "always build" (just for testing, production builds have the "changes in ref repos")
4. In "build" create a qb repository which checks out everything from "dependency" and use "latest build (or new if necessary)
5. Create a checkout step for this repository in "build"
6. IMPORTANT: Let the "build" config run on another node than the server (I used a ubuntu here)
7. Run the configuration "build" -> it will fail with a hessianprotocolexception
Comment by Robin Shen [ 24/Jun/16 02:33 AM ]
Thanks. I did reproduced this following your instructions. This issue has now been fixed and the fix will be shipped in next patch release.
Generated at Thu May 16 08:36:11 UTC 2024 using JIRA 189.