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.

step failed on java.lang.reflect.UndeclaredThrowableException #4594

idoharel ·

Hi,

Lately, we've encountered some failures when trying to read values from completed builds.

We received the following exception:

23:54:47,320 INFO  - Executing post-execute action...
23:54:47,321 ERROR - Step 'master>Search for images in Poller and set version with Signed or Unsigned' is failed: java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy35.queryUniqueResult(Unknown Source)
	at com.pmease.quickbuild.persistence.AgentQueryCarrier.invoke(AgentQueryCarrier.java:60)
	at com.sun.proxy.$Proxy34.uniqueResult(Unknown Source)
	at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager.getPreviousSuccessful(DefaultBuildManager.java:178)
	at com.pmease.quickbuild.persistence.SessionInterceptor.invoke(SessionInterceptor.java:49)
	at com.pmease.quickbuild.model.Build.getPreviousSuccessful(Build.java:952)
	at com.pmease.quickbuild.model.Build$getPreviousSuccessful.call(Unknown Source)
	at script1726001674037891301701.run(script1726001674037891301701.groovy:12)
	at com.pmease.quickbuild.plugin.basis.BasisPlugin$33.evaluate(BasisPlugin.java:391)
	at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:316)
	at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:75)
	at com.pmease.quickbuild.plugin.basis.ScriptStep.run(ScriptStep.java:86)
	at com.pmease.quickbuild.plugin.basis.ScriptStep$$EnhancerByCGLIB$$489c487d.CGLIB$run$3(<generated>)
	at com.pmease.quickbuild.plugin.basis.ScriptStep$$EnhancerByCGLIB$$489c487d$$FastClassByCGLIB$$13e8a2fa.invoke(<generated>)
	at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
	at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:267)
	at com.pmease.quickbuild.plugin.basis.ScriptStep$$EnhancerByCGLIB$$489c487d.run(<generated>)
	at com.pmease.quickbuild.stepsupport.Step.doExecute(Step.java:677)
	at com.pmease.quickbuild.stepsupport.Step.execute(Step.java:577)
	at com.pmease.quickbuild.stepsupport.StepExecutionJob.executeStepAwareJob(StepExecutionJob.java:31)
	at com.pmease.quickbuild.stepsupport.StepAwareJob.executeBuildAwareJob(StepAwareJob.java:56)
	at com.pmease.quickbuild.BuildAwareJob.execute(BuildAwareJob.java:77)
	at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:131)
	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:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)
Caused by: javax.net.ssl.SSLException: Connection reset
	at sun.security.ssl.Alert.createSSLException(Alert.java:127)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:324)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:262)
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:138)
	at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1400)
	at sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1368)
	at sun.security.ssl.SSLSocketImpl.access$300(SSLSocketImpl.java:73)
	at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:962)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
	at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:552)
	at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:609)
	at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:696)
	at java.io.FilterInputStream.read(FilterInputStream.java:133)
	at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3456)
	at com.caucho.hessian.io.Hessian2Input.readBuffer(Hessian2Input.java:2844)
	at com.caucho.hessian.io.Hessian2Input.read(Hessian2Input.java:2816)
	at com.caucho.hessian.io.Hessian2Input.parseByte(Hessian2Input.java:2663)
	at com.caucho.hessian.io.Hessian2Input.readBytes(Hessian2Input.java:1426)
	at com.caucho.hessian.io.BasicDeserializer.readObject(BasicDeserializer.java:211)
	at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1835)
	at com.caucho.hessian.io.Hessian2Input.readReply(Hessian2Input.java:382)
	at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:195)
	... 28 more
	Suppressed: java.net.SocketException: Broken pipe (Write failed)
		at java.net.SocketOutputStream.socketWrite0(Native Method)
		at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
		at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
		at sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
		at sun.security.ssl.TransportContext.fatal(TransportContext.java:355)
		at sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
		at sun.security.ssl.TransportContext.fatal(TransportContext.java:262)
		at sun.security.ssl.SSLTransport.decode(SSLTransport.java:138)
		at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1400)
		at sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1368)
		at sun.security.ssl.SSLSocketImpl.access$300(SSLSocketImpl.java:73)
		at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:962)
		at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
		at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
		at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
		at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:552)
		at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:609)
		at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:696)
		at java.io.FilterInputStream.read(FilterInputStream.java:133)
		at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3456)
		at com.caucho.hessian.io.Hessian2Input.readBuffer(Hessian2Input.java:2844)
		at com.caucho.hessian.io.Hessian2Input.read(Hessian2Input.java:2816)
		at com.caucho.hessian.io.Hessian2Input.parseByte(Hessian2Input.java:2663)
		at com.caucho.hessian.io.Hessian2Input.readBytes(Hessian2Input.java:1426)
		at com.caucho.hessian.io.BasicDeserializer.readObject(BasicDeserializer.java:211)
		at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1835)
		at com.caucho.hessian.io.Hessian2Input.readReply(Hessian2Input.java:382)
		at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:195)
		at com.sun.proxy.$Proxy35.queryUniqueResult(Unknown Source)
		at com.pmease.quickbuild.persistence.AgentQueryCarrier.invoke(AgentQueryCarrier.java:60)
		at com.sun.proxy.$Proxy34.uniqueResult(Unknown Source)
		at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager.getPreviousSuccessful(DefaultBuildManager.java:178)
		at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager$$EnhancerByGuice$$d00e8bae.CGLIB$getPreviousSuccessful$17(<generated>)
		at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager$$EnhancerByGuice$$d00e8bae$$FastClassByGuice$$ba35e764.invoke(<generated>)
		at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
		at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
		at com.pmease.quickbuild.persistence.SessionInterceptor.invoke(SessionInterceptor.java:49)
		at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
		at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
		at com.pmease.quickbuild.entitymanager.impl.DefaultBuildManager$$EnhancerByGuice$$d00e8bae.getPreviousSuccessful(<generated>)
		... 23 more
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:210)
	at java.net.SocketInputStream.read(SocketInputStream.java:141)
	at sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:464)
	at sun.security.ssl.SSLSocketInputRecord.decodeInputRecord(SSLSocketInputRecord.java:237)
	at sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:190)
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)
	... 48 more

The script used in this step is:

groovy:

def PollerConf=vars.getValue("PollerConf")
def ImagesBuild = system.getConfiguration(PollerConf).getLatestSuccessfulBuild()
def version = vars.getValue("fw_version")

def FwBuildId=(version =~ /.*\((\d*)\)/)[0][1]

logger.info("FwBuildId: " + FwBuildId)

while(ImagesBuild != null && ImagesBuild.getVarValue("fwBuildId") != null && ImagesBuild.getVarValue("fwBuildId") != FwBuildId){
                ImagesBuild = ImagesBuild.getPreviousSuccessful()
    }
if(ImagesBuild == null){
	logger.info("No signed images for this fw version")
	}
else{
	def ImagesBuildVersion = ImagesBuild.getVersion()
	def ImagesBuildId = ImagesBuild.getId().toString()
	vars.get("signed_images_build_id").setValue(ImagesBuildId, false)
	logger.info("Images Build Version: " + ImagesBuildVersion)  
	vars.get("signed_image_version").setValue(ImagesBuildVersion + " (" + ImagesBuildId +")", false) 
	//vars.get("signed_or_not_signed").setValue(".Signed", false) 
	vars.get("kit_signed").setValue("true", false) 
	}
	
	logger.info("signed_or_not_signed: " + vars.getValue("signed_or_not_signed"))


//define Signed or Unsigned kit version
build.setVersion(vars.getValue('kit_version'))

This step runs on a cloud profile agent over Kubernetes (K8s).
We are trying to determine whether it's a connection issue between QB and K8s or if it might be related to the database.

  • replies 8
  • views 273
  • stars 0
robinshen ADMIN ·

From the stack trace, it is QB agent not being able to read data from QB server.

tguterma ·

Hi,
We've upgraded QB to latest version (14) and still see those failures.
Any advice how to solve them?

robinshen ADMIN ·

Seems that connection from agent to QB server is broken for some reason. Is this happening all the time, or occasionally?

tguterma ·

It is happening occasionally, but once it happens it blocks out release process.

robinshen ADMIN ·

but once it happens it blocks out release process.

Build will always fail once this happens? If so, please check cpu/mem/network of server node to see if it is overloaded. You may also run "telnet 8810" from the k8s node running the step to see if it works.

robinshen ADMIN ·

Should be:

telnet <QB server> 8810
tguterma ·

The problem is that the POD lost its connection and then we cannot check it.
Is there a solution to preserve running - so that running doesn't die?

robinshen ADMIN ·

You many consider adding two steps after the groovy script step:

  1. A step to send email with execute condition "any previous step failed" to notify that groovy script is failed, so that someone can check this in time
  2. A step to sleep for 1 hour with same execute condition as above so that the agent pod is not being terminated too early