-
Bug
-
Resolution: Fixed
-
Major
If you have a large folder and delete it, all jobs inside are first deleted. This could take a while (minutes?) if you have the Job Config History plugin installed, or generally if I/O is slow:
"Handling POST /jenkins/job/.../doDelete ..." ...
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
at java.io.File.exists(File.java:819)
at hudson.plugins.jobConfigHistory.HistoryFileFilter.accept(HistoryFileFilter.java:18)
at java.io.File.listFiles(File.java:1291)
at hudson.plugins.jobConfigHistory.FileHistoryDao.getRevisions(FileHistoryDao.java:330)
at hudson.plugins.jobConfigHistory.FileHistoryDao.getRevisions(FileHistoryDao.java:320)
at hudson.plugins.jobConfigHistory.FileHistoryDao.getRevisions(FileHistoryDao.java:314)
at hudson.plugins.jobConfigHistory.FileHistoryDao.hasDuplicateHistory(FileHistoryDao.java:556)
at hudson.plugins.jobConfigHistory.FileHistoryDao.checkDuplicate(FileHistoryDao.java:578)
at hudson.plugins.jobConfigHistory.FileHistoryDao.saveItem(FileHistoryDao.java:263)
at hudson.plugins.jobConfigHistory.JobConfigHistorySaveableListener.onChange(JobConfigHistorySaveableListener.java:29)
at hudson.model.listeners.SaveableListener.fireOnChange(SaveableListener.java:81)
at hudson.model.Descriptor.save(Descriptor.java:763)
- locked <0x0000000541f80148> (a javaposse.jobdsl.plugin.DescriptorImpl)
at javaposse.jobdsl.plugin.DescriptorImpl.removeSeedReference(DescriptorImpl.java:106)
at javaposse.jobdsl.plugin.DescriptorImpl.access$000(DescriptorImpl.java:25)
at javaposse.jobdsl.plugin.DescriptorImpl$GeneratedJobMapItemListener.onDeleted(DescriptorImpl.java:114)
at hudson.model.listeners.ItemListener$4.apply(ItemListener.java:205)
at hudson.model.listeners.ItemListener$4.apply(ItemListener.java:203)
at hudson.model.listeners.ItemListener.forAll(ItemListener.java:167)
at hudson.model.listeners.ItemListener.fireOnDeleted(ItemListener.java:203)
at com.cloudbees.hudson.plugins.folder.AbstractFolder.onDeleted(AbstractFolder.java:606)
at com.cloudbees.hudson.plugins.folder.AbstractFolder.onDeleted(AbstractFolder.java:115)
at hudson.model.AbstractItem.delete(AbstractItem.java:584)
at hudson.model.Job.delete(Job.java:665)
at com.cloudbees.hudson.plugins.folder.AbstractFolder.performDelete(AbstractFolder.java:623)
at hudson.model.AbstractItem.delete(AbstractItem.java:582)
- locked <0x00000005477cbcd8> (a com.cloudbees.hudson.plugins.folder.Folder)
at com.cloudbees.hudson.plugins.folder.AbstractFolder.performDelete(AbstractFolder.java:623)
at hudson.model.AbstractItem.delete(AbstractItem.java:582)
- locked <0x00000005472fd180> (a com.cloudbees.hudson.plugins.folder.Folder)
at com.cloudbees.hudson.plugins.folder.AbstractFolder.performDelete(AbstractFolder.java:623)
at hudson.model.AbstractItem.delete(AbstractItem.java:582)
- locked <0x00000005472fb028> (a com.cloudbees.hudson.plugins.folder.Folder)
at com.cloudbees.hudson.plugins.folder.AbstractFolder.performDelete(AbstractFolder.java:623)
at hudson.model.AbstractItem.delete(AbstractItem.java:582)
- locked <0x00000005448201a8> (a com.cloudbees.hudson.plugins.folder.Folder)
at com.cloudbees.hudson.plugins.folder.AbstractFolder.performDelete(AbstractFolder.java:623)
at hudson.model.AbstractItem.delete(AbstractItem.java:582)
- locked <0x0000000544820210> (a com.cloudbees.hudson.plugins.folder.Folder)
at com.cloudbees.hudson.plugins.folder.AbstractFolder.performDelete(AbstractFolder.java:623)
at hudson.model.AbstractItem.delete(AbstractItem.java:582)
- locked <0x0000000544820290> (a com.cloudbees.hudson.plugins.folder.Folder)
at hudson.model.AbstractItem.doDoDelete(AbstractItem.java:543)
at ...
Note that the monitor is being held on the Folder while deleting its children. This means that view threads can hang during the process:
"Handling GET /jenkins/job/.../ ... : ... View/index.jelly View/sidepanel.jelly AbstractFolder/tasks-bottom.jelly" ... BLOCKED on com.cloudbees.hudson.plugins.folder.Folder@... owned by "Handling POST /jenkins/job/.../doDelete ..." ... at com.cloudbees.hudson.plugins.folder.Folder.getActions(Folder.java:161) - blocked on com.cloudbees.hudson.plugins.folder.Folder@4b4fc60a at hudson.model.Actionable.getAllActions(Actionable.java:94) at ...
- links to