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

deadlock in jenkins.model.Jenkins.setNodes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • core

      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

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

              Created:
              Updated:
              Resolved: