-
Bug
-
Resolution: Fixed
-
Major
-
None
With recent disk-usage plugin (0.26+), changing the crontab expressions in the global settings will block Jenkins configuration for (up to) 180 seconds (when the 3 crontab settings are modified at once).
Taking several thread-dumps when it happens shows, successively, the following three stacks:
"Handling POST /jenkins/configSubmit from 127.0.0.1 : RequestHandlerThread[#14]" daemon prio=10 tid=0x00007f2c4820d000 nid=0x3311 waiting on condition [0x00007f2c2e7dd000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at hudson.plugins.disk_usage.DiskUsageCalculation.reschedule(DiskUsageCalculation.java:101) at hudson.plugins.disk_usage.DiskUsageProjectActionFactory$DescriptorImpl.configureBuildsCalculation(DiskUsageProjectActionFactory.java:359) at hudson.plugins.disk_usage.DiskUsageProjectActionFactory$DescriptorImpl.configure(DiskUsageProjectActionFactory.java:293) at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:2899) at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:2862) ...
"Handling POST /jenkins/configSubmit from 127.0.0.1 : RequestHandlerThread[#14]" daemon prio=10 tid=0x00007f2c4820d000 nid=0x3311 waiting on condition [0x00007f2c2e7dd000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at hudson.plugins.disk_usage.DiskUsageCalculation.reschedule(DiskUsageCalculation.java:101) at hudson.plugins.disk_usage.DiskUsageProjectActionFactory$DescriptorImpl.configureJobsCalculation(DiskUsageProjectActionFactory.java:369) at hudson.plugins.disk_usage.DiskUsageProjectActionFactory$DescriptorImpl.configure(DiskUsageProjectActionFactory.java:294) at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:2899) at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:2862) ...
"Handling POST /jenkins/configSubmit from 127.0.0.1 : RequestHandlerThread[#14]" daemon prio=10 tid=0x00007f2c4820d000 nid=0x3311 waiting on condition [0x00007f2c2e7dd000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at hudson.plugins.disk_usage.DiskUsageCalculation.reschedule(DiskUsageCalculation.java:101) at hudson.plugins.disk_usage.DiskUsageProjectActionFactory$DescriptorImpl.configureWorkspacesCalculation(DiskUsageProjectActionFactory.java:379) at hudson.plugins.disk_usage.DiskUsageProjectActionFactory$DescriptorImpl.configure(DiskUsageProjectActionFactory.java:295) at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:2899) at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:2862) ...
The offending commit is this one, which introduces a Thread.sleep(60000) in DiskUsageCalculation.reschedule():
https://github.com/jenkinsci/disk-usage-plugin/commit/9ec92f4887032f3dadbe52f91a803b638fe7721e
I don't understand (at all) the purpose of this sleep calls (is it some testing/debugging code which should have been removed before commit?), thus I'm not able to submit a PR.
Thanks for having a look at this,
Thomas.