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

时间:2014-09-09 06:37:01

标签: 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)
    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)

这是一个我需要解决的错误吗?

2 个答案:

答案 0 :(得分:6)

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

在此link中解释了如何修复这些错误的目录。我复制这里的步骤以供将来参考:

# 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 {} \;

答案 1 :(得分:2)

您的问题出在Jenkins的错误跟踪器中:https://issues.jenkins-ci.org/browse/JENKINS-21330