History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-2686
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Michael Plank
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
QuickBuild

Sporadic LazyInitializationException when running builds

Created: 05/Apr/16 12:29 PM   Updated: 10/Apr/16 04:03 AM
Component/s: None
Affects Version/s: 6.1.9
Fix Version/s: 6.1.12

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown


 Description  « Hide
We started to see this org.hibernate.LazyInitializationException in different build configurations sporadically:

13:51:40,649 INFO - Executing pre-execute action...
13:51:40,649 INFO - build requested at: 2016-04-05 13:51:16
13:51:40,649 INFO - build started at: 2016-04-05 13:51:40
13:51:40,649 INFO - delay: 24 seconds
13:51:40,649 INFO - Running step...
13:51:40,660 INFO - Checking step execute condition...
13:51:40,665 INFO - Step execute condition satisfied, executing...
13:51:40,678 INFO - Executing pre-execute action...
13:51:40,712 INFO - change: U ruxit/opc/branches/sprint_92/opconui/src/main/java/com/dynatrace/ruxit/opcon/server/internal/DevOpsTokensRESTResourceImpl.java
13:51:40,797 INFO - Running step...
13:51:40,811 INFO - Checking step execute condition...
13:51:40,811 INFO - Step execute condition satisfied, executing...
13:51:40,825 INFO - Executing pre-execute action...
13:51:40,825 INFO - Running step...
13:51:40,971 INFO - Executing post-execute action...
13:51:40,971 ERROR - Step 'master>script>dispatch-trigger?configName=root/ruxit/opc/sprint_92/pipeline/0-trigger-stage/0-svn-trigger-stage' is failed.
    org.hibernate.LazyInitializationException: could not initialize proxy - no Session
        at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:165)
        at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:286)
        at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185)
        at com.pmease.quickbuild.model.User_$$_jvstc04_6.getId(User_$$_jvstc04_6.java)
        at com.pmease.quickbuild.plugin.basis.TriggerBuildStep.run(TriggerBuildStep.java:255)
        at com.pmease.quickbuild.plugin.basis.TriggerBuildStep$$EnhancerByCGLIB$$25dc578c.CGLIB$run$12(<generated>)
        at com.pmease.quickbuild.plugin.basis.TriggerBuildStep$$EnhancerByCGLIB$$25dc578c$$FastClassByCGLIB$$f6510dbf.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.plugin.basis.TriggerBuildStep$$EnhancerByCGLIB$$25dc578c.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:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
13:51:41,168 INFO - Executing post-execute action...
13:51:41,168 ERROR - Step 'master>script' is failed: Composite step 'script' failed due to unsatisfied success condition.
13:51:41,271 INFO - Executing post-execute action...
13:51:41,271 ERROR - Step 'master' is failed: Composite step 'master' failed due to unsatisfied success condition.

 All   Comments   Work Log   Change History      Sort Order:
Robin Shen [05/Apr/16 10:55 PM]
This is caused by your custom script in a trigger build step definition. Can you please share me that script for my check?

Ronald Brindl [06/Apr/16 07:20 AM]
We also had another instance of this exception. Looks quite similar, but the top three stack frames are missing:

ERROR - Step 'master>execute>execute-sequential-dispatch-groups>execute-parallel-dispatch-targets?dispatchTargetsVarName=dispatchTargets>execute-trigger-build?configName=product/deployment/prod/jsagent' is failed.
    org.hibernate.LazyInitializationException: could not initialize proxy - no Session
        at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:165)
        at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:286)
        at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185)
        at com.pmease.quickbuild.model.User_$$_jvste4a_0.getId(User_$$_jvste4a_0.java)
        at com.pmease.quickbuild.plugin.basis.TriggerBuildStep.run(TriggerBuildStep.java:255)
        at com.pmease.quickbuild.plugin.basis.TriggerBuildStep$$EnhancerByCGLIB$$ae7d9985.CGLIB$run$0(<generated>)
        at com.pmease.quickbuild.plugin.basis.TriggerBuildStep$$EnhancerByCGLIB$$ae7d9985$$FastClassByCGLIB$$a719433e.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.plugin.basis.TriggerBuildStep$$EnhancerByCGLIB$$ae7d9985.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:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

After short analysis of source code, I cannot see any other source of this exception as AbstractLazyInitializer.initialize(), just as with the previously mentioned exception.

In any case, it looks like the problem always happens when the requester should be fetched (build.getRequester().getId())

the trigger step is with repeat parameters, the script for the repeat parameters is {{${configuration.getVar(params.get("dispatchTargetsVarName")).getValue()}}}
around that is another parallel step with repeat parameters {{${configuration.getVar("dispatchGroups") == null ? "dispatchTargets" : configuration.getVar("dispatchGroups").getValue()}}}

I will try to setup a stripped down config that repeats the problem.

Ronald Brindl [06/Apr/16 07:59 AM]
And yet another instance, again a little bit different.
This time it happens when evaluating a plain buildCondition script.

the script is:

groovy:
configuration.getChildren().isEmpty()

Stacktrace:

2016-04-06 08:55:51,964 [pool-1-thread-112] ERROR com.pmease.quickbuild.DefaultBuildEngine - Error processing build request.
 java.lang.RuntimeException: Error executing check condition job.
        at com.pmease.quickbuild.CheckConditionTask.reduce(CheckConditionTask.java:39)
        at com.pmease.quickbuild.CheckConditionTask.reduce(CheckConditionTask.java:16)
        at com.pmease.quickbuild.grid.GridTaskFuture.get(GridTaskFuture.java:102)
        at com.pmease.quickbuild.grid.GridTaskFuture.get(GridTaskFuture.java:106)
        at com.pmease.quickbuild.DefaultBuildEngine.process(DefaultBuildEngine.java:332)
        at com.pmease.quickbuild.DefaultBuildEngine.access$000(DefaultBuildEngine.java:139)
        at com.pmease.quickbuild.DefaultBuildEngine$2.run(DefaultBuildEngine.java:1137)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
 Caused by: java.lang.RuntimeException: Failed to evaluate below expression in configuration 'root/testautomation/GradlePlugins/irestask-plugin/master':
 groovy:
 configuration.getChildren().isEmpty()
        at com.pmease.quickbuild.util.ExceptionUtils.wrapException(ExceptionUtils.java:87)
        at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:321)
        at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:74)
        at com.pmease.quickbuild.setting.configuration.buildcondition.ScriptBuildCondition.satisfied(ScriptBuildCondition.java:39)
        at com.pmease.quickbuild.setting.configuration.buildcondition.AndBuildCondition.satisfied(AndBuildCondition.java:30)
        at com.pmease.quickbuild.model.Configuration.isBuildNecessary(Configuration.java:1505)
        at com.pmease.quickbuild.CheckConditionJob.execute(CheckConditionJob.java:39)
        at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:106)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        ... 3 more
 Caused by: com.pmease.quickbuild.QuickbuildException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.pmease.quickbuild.model.Configuration.children, could not initialize proxy - no Session
        at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:576)
        at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:215)
        at org.hibernate.collection.internal.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:156)
        at org.hibernate.collection.internal.PersistentBag.isEmpty(PersistentBag.java:283)
        at java_util_List$isEmpty$3.call(Unknown Source)
        at script14592476198091088386964.run(script14592476198091088386964.groovy:3)
        at com.pmease.quickbuild.plugin.basis.BasisPlugin$29.evaluate(BasisPlugin.java:357)
        at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:305)
        at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:74)
        at com.pmease.quickbuild.setting.configuration.buildcondition.ScriptBuildCondition.satisfied(ScriptBuildCondition.java:39)
        at com.pmease.quickbuild.setting.configuration.buildcondition.AndBuildCondition.satisfied(AndBuildCondition.java:30)
        at com.pmease.quickbuild.model.Configuration.isBuildNecessary(Configuration.java:1505)
        at com.pmease.quickbuild.CheckConditionJob.execute(CheckConditionJob.java:39)
        at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:106)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
        at com.pmease.quickbuild.plugin.basis.BasisPlugin$29.evaluate(BasisPlugin.java:381)
        at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:305)
        ... 11 more

Robin Shen [06/Apr/16 08:10 AM]
Please use system.configurationManager.getChildren(configuration) instead of configuration.getChildren(). The repeat param references other variable and I guess those variables have value defined to reference other scripts causing the issue.

Ronald Brindl [06/Apr/16 08:16 AM]
Ok, I will try configurationManager.getChildren(configuration) in the case of buildCondition. But I do not understand why, because this is just a plain buildCondition script without any references to anything else.

In the case of the repeatParameters
The dispatchGroups variable is a static variable (if used at all, in the case of the builds at hand it is not set at all and the fallback variable dispatchTargets is used)
dispatchTargets is also a statically defined variable in that build

Ronald Brindl [06/Apr/16 09:20 AM]
Seems to work for the buildCondition case.

sorry, i just realized that i pasted the wrong stacktrace for my comment at 07:20 GMT:
the correct stacktrace is:

ERROR - Step 'master>execute>execute-sequential-dispatch-groups>execute-parallel-dispatch-targets?dispatchTargetsVarName=dispatchTargets>execute-trigger-build?configName=product/deployment/prod/jsagent' is failed.
    org.hibernate.LazyInitializationException: could not initialize proxy - no Session
        at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:165)
        at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:286)
        at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185)
        at com.pmease.quickbuild.model.User_$$_jvste4a_0.getId(User_$$_jvste4a_0.java)
        at com.pmease.quickbuild.plugin.basis.TriggerBuildStep.run(TriggerBuildStep.java:255)
        at com.pmease.quickbuild.plugin.basis.TriggerBuildStep$$EnhancerByCGLIB$$ae7d9985.CGLIB$run$0(<generated>)
        at com.pmease.quickbuild.plugin.basis.TriggerBuildStep$$EnhancerByCGLIB$$ae7d9985$$FastClassByCGLIB$$a719433e.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.plugin.basis.TriggerBuildStep$$EnhancerByCGLIB$$ae7d9985.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:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Ronald Brindl [06/Apr/16 09:22 AM]
Oh, sorry again, stupid me. The stacktrace is in fact the same, but my intellij chose to hide parts of it to me.

Robin Shen [06/Apr/16 11:07 PM]
For the trigger build step issue, are you able to send me (robin at pmease dot com) sample database demonstrating the issue