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