Your browser was unable to load all of the resources. They may have been blocked by your firewall, proxy or browser configuration.
Press Ctrl+F5 or Ctrl+Shift+R to have your browser try again.

Gitlab Merge Request Build Agent error #40

iostrows ·

Hi,

I am moving project to Gitlab and I am facing a problem with Merge Requests using QuickBuild 9.0.29.
Build is correctly triggered on a QB Server side, repo is checked out, but every QB Build Agent fails at the start with error:

[qtp1669369038-25] ERROR com.pmease.quickbuild.RemotingSerializerFactory - Error invoking hessian method.
    org.hibernate.type.SerializationException: could not deserialize
        at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:250)
        at org.hibernate.internal.util.SerializationHelper.deserialize(SerializationHelper.java:284)
        at com.pmease.quickbuild.grid.NodeServiceImpl.executeGridJob(NodeServiceImpl.java:130)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:302)
        at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:198)
        at com.caucho.hessian.server.HessianServlet.invoke(HessianServlet.java:399)
        at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:379)
        at com.pmease.quickbuild.grid.GridServlet.service(GridServlet.java:36)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:867)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
        at com.pmease.quickbuild.Quickbuild$DisableTraceFilter.doFilter(Quickbuild.java:1183)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
        at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:753)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.Server.handle(Server.java:502)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
        at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
        at java.base/java.lang.Thread.run(Thread.java:830)
    Caused by: java.lang.ClassNotFoundException: com.pmease.quickbuild.plugin.scm.gitlab.merges.DefaultMergeRequestsProvider$$EnhancerByCGLIB$$a26e71dd
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:436)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:416)
        at java.base/java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:693)
        at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.resolveClass(SerializationHelper.java:383)
        at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1886)
        at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1772)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2060)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594)
        at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2355)
        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2249)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2087)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at java.base/java.util.ArrayList.readObject(ArrayList.java:895)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1160)
        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2216)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2087)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594)
        at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2355)
        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2249)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2087)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594)
        at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2355)
        at java.base/java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:566)
        at com.pmease.quickbuild.model.Build.readObject(Build.java:1391)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1160)
        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2216)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2087)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594)
        at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2355)
        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2249)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2087)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:247)
        ... 40 more

Any idea what could be wrong?

Regards,
Igor

  • solved #4
  • replies 3
  • views 1122
  • stars 0
robinshen ADMIN ·

What is your detailed GitLab set up at QB side? Do you have any steps running on agent side relating to GitLab?

iostrows ·

For merge requests I inherit repository settings from the master build setup (which works fine) and then change:
Branch name: master -> <nothing>
Merge Requests: <nothing> -> Merge requests with filter
Merge Request Filter: <nothing> -> state=opened
I am using internally hosted Gitlab instance.
For the authorization user+pass and Access Token are used.

When Merge Request is submitted, repo is pulled correctly, 2 next steps that run on the server node using pulled files also works fine, the problem shows when it reaches to a steps that run on build agent nodes.
Agent nodes do not use Gitlab directly, just Step Type: Sequential with Fetch Input Files option:
Files To Transfer=**,defaultexcludes=no and Destination Path set.

Step log shows only:

INFO  - Checking step execute condition...
INFO  - Step execute condition satisfied, executing...

and examining Build Agent log there is an error that I showed in the first message.
The same Build Agent steps used for building master branch works fine.

For me it looks like there is a problem to fetch files from the server node, but only when repo was pulled using QB built-in merge request handler, strange.

robinshen ADMIN ·