昨天晚上突然发现JENKINS_HOME剩余空间不到百M,空间严重不足,有此发现了Jenkins的一个严重Bug,搞了半天,总算解决了,写篇文章总结记录下……

首先,Jenkins其实是会自己监控所有Nodes的剩余空间的,你可以在http://jenkins_url/computer页面看到所有信息,给个图例:

 

你可以在这个页面找到一些有用的信息(包含所有的Slave),另一方面,当Master本身空间不足的时候,你可以在系统设置(Manage Jenkins)页面得到一条提示,类似于下图:

毫无疑问,这个时候,你会去Master上删除一些东西,腾出一些可用空间,当你删完,回过头来查看Jenkins状态的时候,问题来了,你发现警告没有了,可是Master一直处于offline状态!这个时候不管是重新Load配置,还是重新启动服务,都无济于事!咋办?咋办?

突然想起了Jenkins的核心配置文件config.xml,一查看,果然找到了一些有用的信息。

以下是我的解决方案:

打开config.xml,找到类似于以下的几行信息(大概在第三行开始):

1.   <temporaryOfflineCause class="hudson.node_monitors.DiskSpaceMonitorDescriptor$DiskSpace><path>/apsarapangu/disk1/jenkins</path>  

2.   <size>155697152</size>  

3.   <triggered>true</triggered>  

4.   </temporaryOfflineCause>  

5.   <disabledAdministrativeMonitors/>  

将这几行内容删除(编辑之前别忘了备份),保存退出!

最后重启Jenkins服务!看看,是不是一切又OK了呢……

不过后来我发现,这其实是Jenkins本身的一个bug,已经有人report到Jira里了,查看 JENKINS-12882。这里面的解决方法也是一样的。我看了下,依然是Open状态,看来还没有解决。只能通过这种方法Workaround。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐