Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-38817

Processing is stuck during several operation

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Critical Critical
    • node-sharing-plugin
    • None

      There are several operations (like create a new job, save/update computer configuration etc.) when the Jenkins master is stuck. The culprit is definitely foreman-node-sharing-plugin because if I un-install it, everything works like a charm. It looks the processing is somehow locked and stuck during the communication between Jenkins master and Foreman server.

      Typical stacktrace for saving computer configuration:

      Result: "Handling POST /hudson/computer/mswindows-win2k12_x86_64/configSubmit from 10.40.3.96 : ajp-127.0.0.1-8009-11" #2702 daemon prio=5
         java.lang.Thread.State: RUNNABLE
      	at java.net.SocketInputStream.socketRead0(Native Method)
      	at java.net.SocketInputStream.read(SocketInputStream.java:129)
      	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
      	at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
      	at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
      	- locked <0x54a0ef05> (a java.io.BufferedInputStream)
      	at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:709)
      	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:652)
      	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1220)
      	- locked <0x4af7e79d> (a sun.net.www.protocol.http.HttpURLConnection)
      	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
      	at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:394)
      	at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285)
      	at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255)
      	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684)
      	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:681)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
      	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
      	at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681)
      	at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:411)
      	at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:311)
      	at com.redhat.foreman.ForemanAPI.getForemanResponse(ForemanAPI.java:154)
      	at com.redhat.foreman.ForemanAPI.getHostParameterValue(ForemanAPI.java:196)
      	at com.redhat.foreman.ForemanAPI.getHostForQuery(ForemanAPI.java:313)
      	at com.redhat.foreman.ForemanAPI.getCompatibleHosts(ForemanAPI.java:331)
      	at com.redhat.foreman.ForemanSharedNodeCloud.canProvision(ForemanSharedNodeCloud.java:158)
      	at hudson.model.Label.getClouds(Label.java:227)
      	at hudson.model.Label.isEmpty(Label.java:435)
      	at jenkins.model.Jenkins.trimLabels(Jenkins.java:1725)
      	at jenkins.model.Nodes$3.run(Nodes.java:170)
      	at hudson.model.Queue._withLock(Queue.java:1289)
      	at hudson.model.Queue.withLock(Queue.java:1172)
      	at jenkins.model.Nodes.removeNode(Nodes.java:160)
      	at jenkins.model.Jenkins.removeNode(Jenkins.java:1700)
      	at hudson.slaves.AbstractCloudSlave.terminate(AbstractCloudSlave.java:70)
      	at com.redhat.foreman.ForemanSharedNode.terminate(ForemanSharedNode.java:32)
      	at hudson.slaves.CloudRetentionStrategy.check(CloudRetentionStrategy.java:62)
      	at hudson.slaves.CloudRetentionStrategy.check(CloudRetentionStrategy.java:46)
      	at hudson.slaves.SlaveComputer$4.run(SlaveComputer.java:700)
      	at hudson.model.Queue._withLock(Queue.java:1289)
      	at hudson.model.Queue.withLock(Queue.java:1172)
      	at hudson.slaves.SlaveComputer.setNode(SlaveComputer.java:697)
      	at hudson.model.AbstractCIBase.updateComputer(AbstractCIBase.java:117)
      	at hudson.model.AbstractCIBase.access$000(AbstractCIBase.java:44)
      	at hudson.model.AbstractCIBase$2.run(AbstractCIBase.java:185)
      	at hudson.model.Queue._withLock(Queue.java:1289)
      	at hudson.model.Queue.withLock(Queue.java:1172)
      	at hudson.model.AbstractCIBase.updateComputerList(AbstractCIBase.java:168)
      	at jenkins.model.Jenkins.updateComputerList(Jenkins.java:1219)
      	at jenkins.model.Nodes$1.run(Nodes.java:115)
      	at hudson.model.Queue._withLock(Queue.java:1289)
      	at hudson.model.Queue.withLock(Queue.java:1172)
      	at jenkins.model.Nodes.setNodes(Nodes.java:105)
      	at jenkins.model.Jenkins.setNodes(Jenkins.java:1704)
      	at hudson.model.Computer.replaceBy(Computer.java:1405)
      	- locked <0x71ffc733> (a hudson.model.Hudson)
      	at hudson.model.Computer.doConfigSubmit(Computer.java:1355)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
      	at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:46)
      	at org.kohsuke.stapler.Function$InterceptedFunction.invoke(Function.java:399)
      	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
      	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
      	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:121)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$13.dispatch(MetaClass.java:411)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:211)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:123)
      	at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:120)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.jenkinsci.plugins.reverse_proxy_auth.ReverseProxySecurityRealm$1.doFilter(ReverseProxySecurityRealm.java:143)
      	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:534)
      	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
      	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
      	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.internalProcess(ActiveRequestResponseCacheValve.java:74)
      	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:47)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
      	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
      	at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:385)
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
      	at java.lang.Thread.run(Thread.java:682)
      
         Locked ownable synchronizers:
      	- <0x78401481> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
      

      Typical stracktrace for creating a new job:

      "Handling GET /hudson/job/test-flow/configure from 10.40.3.131 : ajp-127.0.0.1-8009-11 Job/configure.jelly BuildFlow/configure-entries.jelly AbstractProject/configure-common.jelly" #2702 daemon prio=5
         java.lang.Thread.State: RUNNABLE
      	at java.net.SocketInputStream.socketRead0(Native Method)
      	at java.net.SocketInputStream.read(SocketInputStream.java:129)
      	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
      	at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
      	at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
      	- locked <0x1703bd47> (a java.io.BufferedInputStream)
      	at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:709)
      	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:652)
      	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1220)
      	- locked <0x2fc84259> (a sun.net.www.protocol.http.HttpURLConnection)
      	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
      	at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:394)
      	at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285)
      	at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255)
      	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684)
      	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:681)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
      	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
      	at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681)
      	at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:411)
      	at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:311)
      	at com.redhat.foreman.ForemanAPI.getForemanResponse(ForemanAPI.java:154)
      	at com.redhat.foreman.ForemanAPI.getHostParameterValue(ForemanAPI.java:196)
      	at com.redhat.foreman.ForemanAPI.getHostForQuery(ForemanAPI.java:313)
      	at com.redhat.foreman.ForemanAPI.getCompatibleHosts(ForemanAPI.java:331)
      	at com.redhat.foreman.ForemanSharedNodeCloud.canProvision(ForemanSharedNodeCloud.java:158)
      	at hudson.model.Label.getClouds(Label.java:227)
      	at hudson.model.Label.isEmpty(Label.java:435)
      	at jenkins.model.Jenkins.getLabels(Jenkins.java:1614)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
      	at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
      	at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
      	at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
      	at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
      	at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
      	at org.apache.commons.jexl.parser.ASTGTNode.value(ASTGTNode.java:62)
      	at org.apache.commons.jexl.parser.ASTOrNode.value(ASTOrNode.java:55)
      	at org.apache.commons.jexl.parser.ASTOrNode.value(ASTOrNode.java:55)
      	at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:54)
      	at org.apache.commons.jexl.parser.ASTExpressionExpression.value(ASTExpressionExpression.java:56)
      	at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
      	at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
      	at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61)
      	at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:71)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:97)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
      	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
      	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
      	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
      	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
      	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
      	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
      	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
      	at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:95)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:123)
      	at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:120)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.jenkinsci.plugins.reverse_proxy_auth.ReverseProxySecurityRealm$1.doFilter(ReverseProxySecurityRealm.java:143)
      	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:534)
      	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
      	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
      	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.internalProcess(ActiveRequestResponseCacheValve.java:74)
      	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:47)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
      	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
      	at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:385)
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
      	at java.lang.Thread.run(Thread.java:682)
      

      In the same time there is usually at least one (I haven't see more that 4 yet) timer threads which utilize Foreman as well with stacktrace like:

      "jenkins.util.Timer [#10]" #368 daemon prio=5
         java.lang.Thread.State: RUNNABLE
      	at java.net.SocketInputStream.socketRead0(Native Method)
      	at java.net.SocketInputStream.read(SocketInputStream.java:129)
      	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
      	at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
      	at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
      	- locked <0x61eaba62> (a java.io.BufferedInputStream)
      	at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:709)
      	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:652)
      	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1220)
      	- locked <0x5700e314> (a sun.net.www.protocol.http.HttpURLConnection)
      	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
      	at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:394)
      	at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285)
      	at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255)
      	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684)
      	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:681)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
      	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
      	at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681)
      	at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:411)
      	at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:311)
      	at com.redhat.foreman.ForemanAPI.getForemanResponse(ForemanAPI.java:154)
      	at com.redhat.foreman.ForemanAPI.getHostParameterValue(ForemanAPI.java:196)
      	at com.redhat.foreman.ForemanAPI.getHostForQuery(ForemanAPI.java:313)
      	at com.redhat.foreman.ForemanAPI.getCompatibleHosts(ForemanAPI.java:331)
      	at com.redhat.foreman.ForemanSharedNodeCloud.canProvision(ForemanSharedNodeCloud.java:158)
      	at hudson.slaves.NodeProvisioner$StandardStrategyImpl.apply(NodeProvisioner.java:661)
      	at hudson.slaves.NodeProvisioner.update(NodeProvisioner.java:286)
      	at hudson.slaves.NodeProvisioner.access$000(NodeProvisioner.java:57)
      	at hudson.slaves.NodeProvisioner$NodeProvisionerInvoker.doRun(NodeProvisioner.java:775)
      	at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:51)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
      	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
      	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
      	at java.lang.Thread.run(Thread.java:682)
      
         Locked ownable synchronizers:
      	- <0x6f6519f6> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
      	- <0x568b9e9c> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
      

      If I save only one computer cfg. it takes let say several minutes, but usually finally proceed, but if I save 2 or more computers in parallel and/or create a new job in the same time, I'm pretty sure I'll get an error message (HTTP 500) and such a (above) thread(s) is is alive for couple of hours.

      I have no idea why the processing is stuck in a receiving data from Foreman instance there is no reason why a request to Foreman can take several minutes for reponse , but on my Jenkins deployment it can be demonstrated quite easily.

      In addition, I've tried in the same time Test connection on cfg. page several times and the response was up to 5s!

      The issue can be improved a bit when JENKINS-38815 is resolved, but that only hides the root (unknown yet) cause.

            scoheb Scott Hebert
            pajasoft Pavel JanouĊĦek
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: