由于将Cruisecontrol构建服务器迁移到新计算机,因此有时在构建周期的“modificationset”阶段挂起(它被配置为每15分钟检查一次修改)。 Cruisecontrol本身保持响应状态,只有构建无法进行。

发生这种情况时,CPU上没有明显的负载,我已经看到它在这种状态下保持了一个小时或更长时间,尽管它最终似乎会脱离这种状态。似乎没有碰巧碰到的项目的模式。硬件是全新的,我运行了memtest,没有任何问题。

这是系统配置:

  • Ubuntu 9.04服务器,amd64,完全升级的
  • svn版本1.5.4(r33841)-最新版本apt-get将安装
  • Sun JRE 64位版本1.6.0_16-b01-再次,最新版本
  • CruiseControl 2.7.3(不是最新的)

  • 这就是我的修改集的样子
    <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应用程序的所有线程,并暂停其中的一些线程,看看它们在忙什么。

    10-06 13:52