删除lastSuccessful/lastStable时的java.nio.file.DirectoryNotEmptyException

删除lastSuccessful/lastStable时的java.nio.file.DirectoryNotEmptyException,java,jenkins,Java,Jenkins,运行jenkins作业时,控制台会报告以下错误: java.nio.file.DirectoryNotEmptyException: C:\jenkins\jobs\My Job\lastSuccessful at sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source) at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(Unknown Source

运行jenkins作业时,控制台会报告以下错误:

java.nio.file.DirectoryNotEmptyException: C:\jenkins\jobs\My Job\lastSuccessful
    at sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source)
    at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(Unknown Source)
    at java.nio.file.Files.deleteIfExists(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at hudson.Util.createSymlinkJava7(Util.java:1194)
    at hudson.Util.createSymlink(Util.java:1112)
    at hudson.model.Run.createSymlink(Run.java:1846)
    at hudson.model.Run.updateSymlinks(Run.java:1827)
    at hudson.model.Run.execute(Run.java:1738)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
ln builds\lastStableBuild C:\jenkins\jobs\My Job\lastStable failed
java.nio.file.DirectoryNotEmptyException: C:\jenkins\jobs\My Job\lastStable
    at sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source)
    at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(Unknown Source)
    at java.nio.file.Files.deleteIfExists(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at hudson.Util.createSymlinkJava7(Util.java:1194)
    at hudson.Util.createSymlink(Util.java:1112)
    at hudson.model.Run.createSymlink(Run.java:1846)
    at hudson.model.Run.updateSymlinks(Run.java:1828)
    at hudson.model.Run.execute(Run.java:1738)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)

这是一个bug还是我需要修复的东西?

您的问题在Jenkins的bugtracker中:

在我的情况下,将Jenkins从一台服务器移动到另一台服务器时会出现问题。似乎在复制主文件夹时,会出现此问题

本文将解释如何修复这些错误目录。我在此复制以下步骤,以供将来参考:

# Logon on the master where you have the issue
ssh jenkins-machine
# Shutdown the jenkins master (take care that nothing is running)
sudo service jenkins stop
# Find all erroneous directories
find /opt/jenkins/jobs -type d \( -name "last*Build" -o -name "lastStable" -o -name "lastSuccessful" \)
# Review the list of erroneous directories
# Rename them
find /opt/jenkins/jobs -type d \( -name "last*Build" -o -name "lastStable" -o -name "lastSuccessful" \) -exec mv {} {}.err \;
# Restart jenkins
sudo service jenkins start
如果有效,请删除已移动的目录:

#In the future you can delete these directory if everything is fine with
find /opt/jenkins/jobs -type d -name "*.err" -exec rm -rf {} \;

当作业名称不包含空格时也会发生这种情况吗?谢谢,我可以通过释放某些程序在文件夹上的一些锁来解决此问题。请注意,脚本假定jenkins home位于
/opt/jenkins
中。将其更改为
/var/lib/jenkins
或您当前的jenkins路径。