<< Back to previous view

[QB-3312] Quickbuild is stuck. It does not perform any request
Created: 17/Dec/18  Updated: 18/Dec/18

Status: Closed
Project: QuickBuild
Component/s: None
Affects Version/s: 8.0.20
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: Alexey Shumkin Assigned To: Robin Shen
Resolution: Fixed Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown
Environment: Operating System Linux 4.4.0-139-generic, amd64
JVM OpenJDK 64-Bit Server VM 1.8.0_111, Oracle Corporation
QuickBuild Version 8.0.20 - Tue Sep 18 07:53:55 UTC 2018


 Description   
Every configuration is stuck on build request with process status WAITING_PROCESS

Server log contains many errors
2018-12-17 22:38:43,394 [Thread-74] ERROR com.pmease.quickbuild.DefaultBuildEngine - Error processing build requests.
    java.lang.IllegalAccessError: java/util/Arrays$ArrayList
     at ASMAccessorImpl_4284742961545068505910.getValue(Unknown Source)
     at org.mvel2.optimizers.dynamic.DynamicGetAccessor.getValue(DynamicGetAccessor.java:66)
     at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:98)
     at org.mvel2.ast.And.getReducedValueAccelerated(And.java:32)
     at org.mvel2.compiler.ExecutableAccessor.getValue(ExecutableAccessor.java:38)
     at org.mvel2.ast.AssignmentNode.getReducedValueAccelerated(AssignmentNode.java:93)
     at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
     at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:125)
     at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:111)
     at org.mvel2.ast.ForEachNode.getReducedValueAccelerated(ForEachNode.java:79)
     at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
     at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:125)
     at org.mvel2.MVEL.executeExpression(MVEL.java:1057)
     at com.pmease.quickbuild.plugin.basis.BasisPlugin$30.evaluate(BasisPlugin.java:314)
     at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:314)
     at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:74)
     at com.pmease.quickbuild.setting.step.nodematcher.ScriptNodeMatcher.matches(ScriptNodeMatcher.java:43)
     at com.pmease.quickbuild.setting.step.nodematcher.ScriptNodeMatcher$$EnhancerByCGLIB$$96f115b.CGLIB$matches$1(<generated>)
     at com.pmease.quickbuild.setting.step.nodematcher.ScriptNodeMatcher$$EnhancerByCGLIB$$96f115b$$FastClassByCGLIB$$2e784aea.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.setting.step.nodematcher.ScriptNodeMatcher$$EnhancerByCGLIB$$96f115b.matches(<generated>)
     at com.pmease.quickbuild.DefaultBuildEngine.checkCandidate(DefaultBuildEngine.java:1517)
     at com.pmease.quickbuild.DefaultBuildEngine.run(DefaultBuildEngine.java:1173)
     at java.lang.Thread.run(Thread.java:745)

Master step has the following rule for node selection
Node Selection
On node with specified script evaluating to true
Script
import java.util.Arrays;

nodeLabels = node.?getAttribute("NODE_LABELS");
if (nodeLabels == null) { return false };

build_labels = vars.?getValue("MASTER_NODE_LABELS");
// empty condition matches any node
if (build_labels == null) {return true};

String[] nodeLabelsArr = nodeLabels.split(",");
String[] build_labelsArr = build_labels.split(",");

matched = true;
for (String label: build_labelsArr) {
  matched = matched && Arrays.asList(nodeLabelsArr).contains(label);
}
matched;

It's kind a memory leak because a time from a service restart to a stuck state increased accrodingly to maximum increased memory heap when I changed
wrapper.java.maxmemory=2048 first to 4096 then to 8192 in conf/wrapper.conf

But QB shows
Total Heap Memory 7.11 GB
Used Heap Memory 329.77 MB


 Comments   
Comment by Robin Shen [ 17/Dec/18 11:36 PM ]
Please use groovy script instead of MVEL script. MVEL is not actively maintained and the complex script may have issues with Java 1.8 or higher.
Comment by Alexey Shumkin [ 18/Dec/18 06:22 PM ]
It seems it was the reason. I've changed to groovy and no errors. Thanks
Generated at Fri Apr 19 15:11:19 UTC 2024 using JIRA 189.