Jenkins报告"无法轮换日志,看起来已被删除"

时间:2016-02-02 13:24:10

标签: jenkins

我的构建服务器已满。我rm - 删除了Jenkins的一些旧版本'工作目录。

然后我发现了code snippet which can be run from Jenkins' Script Console

但是现在运行此代码段会导致以下异常:

java.io.IOException: example.com/builds/25 looks to have already been deleted; siblings: [lastFailedBuild, 24, lastStableBuild, 88, lastUnsuccessfulBuild, 90, lastSuccessfulBuild, 89, legacyIds, lastUnstableBuild]

根据我的观察,"清理"现在卡住了,因为运行代码片段反复显示example.com/builds/25 looks to have already been deleted,根据我的 Discard Old Builds 策略应该清理的目录不会得到。

2 个答案:

答案 0 :(得分:2)

我通过

修复了它
  1. 使用Jenkins的权限创建缺少的目录(例如mkdir ${JENKINS_DIR}/jobs/example.com/builds/25 && chown jenkins:jenkins ${JENKINS_DIR}/jobs/example.com/builds/25
  2. 重复运行代码段,直到所有错误消息都消失。

答案 1 :(得分:0)

我遇到了这个问题,试图运行Groovy Script来重置我的内部版本号。对于违规构建,我使用新的.dropLinks()方法来清除构建。

item = Jenkins.instance.getItemByFullName("your-build-name")
//THIS WILL REMOVE ALL BUILD HISTORY
item.builds.each() { build ->
  try {
    println "Deleting build " + build.number
    build.delete()
    // After clearing out all the builds using delete
    // Try another run using dropLinks() to clear out some orphaned stuff
    // build.dropLinks()
  }
  catch(Exception e) {
    println "Unable to delete build"
    println e.message
  }
}
item.updateNextBuildNumber(1)