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

deadlock in jenkins.model.Jenkins.setNodes

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      My code calls setNodes, and locked up when it collided with a configSubmit on a slave and an api request for /api/python.

      Found one Java-level deadlock:
      =============================
      "Handling GET //api/python : RequestHandlerThread[#18106]":
        waiting to lock monitor 0x0000000000e4c080 (object 0x000000054239ebc0, a hudson.model.Hudson),
        which is held by "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]"
      "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]":
        waiting to lock monitor 0x00000000030bf190 (object 0x0000000542d6bc78, a java.lang.Object),
        which is held by "PeriodicResourceAllocationTask thread"
      "PeriodicResourceAllocationTask thread":
        waiting to lock monitor 0x0000000000e4c080 (object 0x000000054239ebc0, a hudson.model.Hudson),
        which is held by "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]"
      
      
              at jenkins.model.Jenkins.save(Jenkins.java:2513)
              - waiting to lock <0x000000054239ebc0> (a hudson.model.Hudson)
              at hudson.model.Node.setTemporaryOfflineCause(Node.java:210)
              at hudson.model.Computer.setNode(Computer.java:613)
              at hudson.slaves.SlaveComputer.setNode(SlaveComputer.java:514)
              at hudson.model.AbstractCIBase.updateComputer(AbstractCIBase.java:116)
              at hudson.model.AbstractCIBase.updateComputerList(AbstractCIBase.java:174)
              - locked <0x0000000542d6bc78> (a java.lang.Object)
              at jenkins.model.Jenkins.updateComputerList(Jenkins.java:1113)
              at jenkins.model.Jenkins.setNodes(Jenkins.java:1621)
      
      

      I'm basically just calling:

      Jenkins.getInstance().setNodes(newNodes);
      

      I'm running with 1.466

        Attachments

          Activity

          Hide
          marcmac_pure marc macintyre added a comment -

          Full stack trace:

          Found one Java-level deadlock:
          =============================
          "Handling GET //api/python : RequestHandlerThread[#18106]":
            waiting to lock monitor 0x0000000000e4c080 (object 0x000000054239ebc0, a hudson.model.Hudson),
            which is held by "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]"
          "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]":
            waiting to lock monitor 0x00000000030bf190 (object 0x0000000542d6bc78, a java.lang.Object),
            which is held by "PeriodicResourceAllocationTask thread"
          "PeriodicResourceAllocationTask thread":
            waiting to lock monitor 0x0000000000e4c080 (object 0x000000054239ebc0, a hudson.model.Hudson),
            which is held by "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]"
          
          
          Java stack information for the threads listed above:
          ===================================================
          "Handling GET //api/python : RequestHandlerThread[#18106]":
                  at jenkins.model.Jenkins.getViews(Jenkins.java:1371)
                  - waiting to lock <0x000000054239ebc0> (a hudson.model.Hudson)
                  at sun.reflect.GeneratedMethodAccessor578.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                  at java.lang.reflect.Method.invoke(Method.java:601)
                  at org.kohsuke.stapler.export.MethodProperty.getValue(MethodProperty.java:66)
                  at org.kohsuke.stapler.export.Property.writeTo(Property.java:113)
                  at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:179)
                  at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:176)
                  at org.kohsuke.stapler.export.Model.writeTo(Model.java:152)
                  at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:200)
                  at hudson.model.Api.doPython(Api.java:188)
                  at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                  at java.lang.reflect.Method.invoke(Method.java:601)
                  at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
                  at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
                  at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
                  at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
                  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
                  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
                  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
                  at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:203)
                  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
                  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
                  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
                  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)
                  at org.kohsuke.stapler.Stapler.service(Stapler.java:162)
                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
                  at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
                  at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
                  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
                  at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
                  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
                  at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
                  at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:54)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
                  at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
                  at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
                  at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215)
                  at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138)
                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
                  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
                  at java.util.concurrent.FutureTask.run(FutureTask.java:166)
                  at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
                  at java.lang.Thread.run(Thread.java:722)
          "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]":
                  at hudson.model.AbstractCIBase.updateComputerList(AbstractCIBase.java:160)
                  - waiting to lock <0x0000000542d6bc78> (a java.lang.Object)
                  at jenkins.model.Jenkins.updateComputerList(Jenkins.java:1113)
                  at jenkins.model.Jenkins.setNodes(Jenkins.java:1621)
                  at hudson.model.Computer.replaceBy(Computer.java:1122)
                  - locked <0x000000054239ebc0> (a hudson.model.Hudson)
                  at hudson.model.Computer.doConfigSubmit(Computer.java:1076)
                  at sun.reflect.GeneratedMethodAccessor1777.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                  at java.lang.reflect.Method.invoke(Method.java:601)
                  at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
                  at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:28)
                  at org.kohsuke.stapler.Function$InterceptedFunction.invoke(Function.java:389)
                  at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
                  at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
                  at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
                  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
                  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
                  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
                  at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:384)
                  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
                  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
                  at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:203)
                  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
                  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
                  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
                  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)
                  at org.kohsuke.stapler.Stapler.service(Stapler.java:162)
                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
                  at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
                  at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
                  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
                  at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
                  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
                  at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
                  at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
                  at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86)
                  at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84)
                  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
                  at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
                  at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
                  at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
                  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
                  at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
                  at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
                  at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
                  at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
                  at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
                  at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215)
                  at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138)
                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
                  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
                  at java.util.concurrent.FutureTask.run(FutureTask.java:166)
                  at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
                  at java.lang.Thread.run(Thread.java:722)
          "PeriodicResourceAllocationTask thread":
          
                  at jenkins.model.Jenkins.save(Jenkins.java:2513)
                  - waiting to lock <0x000000054239ebc0> (a hudson.model.Hudson)
                  at hudson.model.Node.setTemporaryOfflineCause(Node.java:210)
                  at hudson.model.Computer.setNode(Computer.java:613)
                  at hudson.slaves.SlaveComputer.setNode(SlaveComputer.java:514)
                  at hudson.model.AbstractCIBase.updateComputer(AbstractCIBase.java:116)
                  at hudson.model.AbstractCIBase.updateComputerList(AbstractCIBase.java:174)
                  - locked <0x0000000542d6bc78> (a java.lang.Object)
                  at jenkins.model.Jenkins.updateComputerList(Jenkins.java:1113)
                  at jenkins.model.Jenkins.setNodes(Jenkins.java:1621)
          
          
          Show
          marcmac_pure marc macintyre added a comment - Full stack trace: Found one Java-level deadlock: ============================= "Handling GET //api/python : RequestHandlerThread[#18106]": waiting to lock monitor 0x0000000000e4c080 (object 0x000000054239ebc0, a hudson.model.Hudson), which is held by "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]" "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]": waiting to lock monitor 0x00000000030bf190 (object 0x0000000542d6bc78, a java.lang.Object), which is held by "PeriodicResourceAllocationTask thread" "PeriodicResourceAllocationTask thread": waiting to lock monitor 0x0000000000e4c080 (object 0x000000054239ebc0, a hudson.model.Hudson), which is held by "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]" Java stack information for the threads listed above: =================================================== "Handling GET //api/python : RequestHandlerThread[#18106]": at jenkins.model.Jenkins.getViews(Jenkins.java:1371) - waiting to lock <0x000000054239ebc0> (a hudson.model.Hudson) at sun.reflect.GeneratedMethodAccessor578.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.kohsuke.stapler.export.MethodProperty.getValue(MethodProperty.java:66) at org.kohsuke.stapler.export.Property.writeTo(Property.java:113) at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:179) at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:176) at org.kohsuke.stapler.export.Model.writeTo(Model.java:152) at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:200) at hudson.model.Api.doPython(Api.java:188) at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:203) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488) at org.kohsuke.stapler.Stapler.service(Stapler.java:162) at javax.servlet.http.HttpServlet.service(HttpServlet.java:45) at winstone.ServletConfiguration.execute(ServletConfiguration.java:248) at winstone.RequestDispatcher.forward(RequestDispatcher.java:333) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:54) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at winstone.RequestDispatcher.forward(RequestDispatcher.java:331) at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215) at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) "Handling POST /computer/lp-pure-ha19/configSubmit : RequestHandlerThread[#17566]": at hudson.model.AbstractCIBase.updateComputerList(AbstractCIBase.java:160) - waiting to lock <0x0000000542d6bc78> (a java.lang.Object) at jenkins.model.Jenkins.updateComputerList(Jenkins.java:1113) at jenkins.model.Jenkins.setNodes(Jenkins.java:1621) at hudson.model.Computer.replaceBy(Computer.java:1122) - locked <0x000000054239ebc0> (a hudson.model.Hudson) at hudson.model.Computer.doConfigSubmit(Computer.java:1076) at sun.reflect.GeneratedMethodAccessor1777.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288) at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:28) at org.kohsuke.stapler.Function$InterceptedFunction.invoke(Function.java:389) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:384) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:203) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488) at org.kohsuke.stapler.Stapler.service(Stapler.java:162) at javax.servlet.http.HttpServlet.service(HttpServlet.java:45) at winstone.ServletConfiguration.execute(ServletConfiguration.java:248) at winstone.RequestDispatcher.forward(RequestDispatcher.java:333) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179) at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at winstone.RequestDispatcher.forward(RequestDispatcher.java:331) at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215) at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) "PeriodicResourceAllocationTask thread": at jenkins.model.Jenkins.save(Jenkins.java:2513) - waiting to lock <0x000000054239ebc0> (a hudson.model.Hudson) at hudson.model.Node.setTemporaryOfflineCause(Node.java:210) at hudson.model.Computer.setNode(Computer.java:613) at hudson.slaves.SlaveComputer.setNode(SlaveComputer.java:514) at hudson.model.AbstractCIBase.updateComputer(AbstractCIBase.java:116) at hudson.model.AbstractCIBase.updateComputerList(AbstractCIBase.java:174) - locked <0x0000000542d6bc78> (a java.lang.Object) at jenkins.model.Jenkins.updateComputerList(Jenkins.java:1113) at jenkins.model.Jenkins.setNodes(Jenkins.java:1621)
          Hide
          jglick Jesse Glick added a comment -

          My analysis: AbstractCIBase should not call code which might acquire other locks while itself holding updateComputerLock.

          Show
          jglick Jesse Glick added a comment - My analysis: AbstractCIBase should not call code which might acquire other locks while itself holding updateComputerLock .
          Hide
          jglick Jesse Glick added a comment -

          This code has been heavily refactored in the past few months so this issue is probably obsolete.

          Show
          jglick Jesse Glick added a comment - This code has been heavily refactored in the past few months so this issue is probably obsolete.
          Hide
          cfs Charles Stephens added a comment -

          Jesse Glick has this code refactoring landed on LTS yet?

          Show
          cfs Charles Stephens added a comment - Jesse Glick has this code refactoring landed on LTS yet?
          Hide
          jglick Jesse Glick added a comment -
          Show
          jglick Jesse Glick added a comment - Charles Stephens yes.

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            marcmac_pure marc macintyre
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: