由于将Cruisecontrol构建服务器迁移到新计算机,因此有时在构建周期的“modificationset”阶段挂起(它被配置为每15分钟检查一次修改)。 Cruisecontrol本身保持响应状态,只有构建无法进行。
发生这种情况时,CPU上没有明显的负载,我已经看到它在这种状态下保持了一个小时或更长时间,尽管它最终似乎会脱离这种状态。似乎没有碰巧碰到的项目的模式。硬件是全新的,我运行了memtest,没有任何问题。
这是系统配置:
这就是我的修改集的样子
<modificationset quietperiod="10">
<veto><!-- there are several of these -->
<triggers>
<svn LocalWorkingCopy="${checkout_dir}/base" />
</triggers>
<buildstatus logdir="${log_dir}/base" />
</veto>
<timebuild time="2330" />
<svn LocalWorkingCopy="${checkout_dir}/${project.name}" />
</modificationset>
那么在这里可以做什么?
编辑:这是定速巡航日志文件的摘录,显示projectA卡在16:07(现在仍卡在17:48)
2009-10-27 16:07:55,096 [Thread-38860] INFO Project - Project projectA: bootstrapping
2009-10-27 16:07:55,096 [Thread-38860] INFO ProjectController - projectA Controller: build progress event: bootstrapping
2009-10-27 16:07:55,262 [Thread-38862] INFO ScriptRunner - Buildfile: work/build-cruisecontrol.xml
2009-10-27 16:07:59,230 [Thread-38860] INFO AntBootstrapper - Bootstrap successful.
2009-10-27 16:07:59,230 [Thread-38860] INFO Project - Project projectA: checking for modifications
2009-10-27 16:07:59,230 [Thread-38860] INFO ProjectController - projectA Controller: build progress event: checking for modifications
2009-10-27 16:11:14,954 [Project projectB thread] INFO Project - Project projectB: in build queue
最佳答案
另一个想法。您总是可以在 Debug模式下启动CruiseControl JVM。并且无论何时挂起,都可以使用一些IDE连接到它,例如 eclipse 。然后,您可以使用CC应用程序的所有线程,并暂停其中的一些线程,看看它们在忙什么。