我正在尝试通过远程访问api删除Jenkins作业。我正在通过我的代码使用以下网址进行POST请求。通过UI手动删除也会出现相同的错误。
https://JENKINS-URL.com/automationJob/doDelete。
POST请求成功。但是由于此错误,我无法删除作业
据我分析,内部版本中的.nfs文件阻止删除。由于某些打开的进程,.nfs文件已创建。我无权访问Jenkins-CLI或ssh权限,无法检查哪个进程正在保存.nfs文件。有人能指出我正确的方向吗?就像我们可以执行一些POST-BUILD Shell命令以关闭所有进程或删除打开的.nfs文件一样。
堆栈跟踪:
java.nio.file.FileSystemException: /var/lib/jenkins/jobs/automationJob20181123161800281/builds/2/.nfs00000000023b265100000908: Device or resource busy
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:244)
at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108)
at java.nio.file.Files.deleteIfExists(Files.java:1165)
at hudson.Util.tryOnceDeleteFile(Util.java:290)
at hudson.Util.tryOnceDeleteRecursive(Util.java:370)
at hudson.Util.tryOnceDeleteContentsRecursive(Util.java:389)
at hudson.Util.tryOnceDeleteRecursive(Util.java:369)
at hudson.Util.tryOnceDeleteContentsRecursive(Util.java:389)
at hudson.Util.tryOnceDeleteRecursive(Util.java:369)
at hudson.Util.tryOnceDeleteContentsRecursive(Util.java:389)
at hudson.Util.tryOnceDeleteRecursive(Util.java:369)
at hudson.Util.deleteRecursive(Util.java:347)
Caused: java.io.IOException: Unable to delete '/var/lib/jenkins/jobs/automationJob20181123161800281'. Tried 3 times (of a maximum of 3) waiting 0.1 sec between attempts.
at hudson.Util.deleteRecursive(Util.java:352)
at hudson.model.AbstractItem.performDelete(AbstractItem.java:691)
at hudson.model.AbstractProject.performDelete(AbstractProject.java:362)
at hudson.model.AbstractItem.delete(AbstractItem.java:675)
at hudson.model.Job.delete(Job.java:674)
at hudson.model.AbstractItem.doDoDelete(AbstractItem.java:545)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:52)
at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)