CruiseControl.NET偶尔出现SVN 500错误

CruiseControl.NET偶尔出现SVN 500错误,svn,exception,cruisecontrol.net,Svn,Exception,Cruisecontrol.net,我在CruiseControl.NET上运行几个项目。他们中的许多人没有构建错误,并且构建成功。他们都试图在建造之前获取最新的代码 我注意到他们经常在建筑上失败;CruiseControl报告“异常”。异常是一个SVN 500错误(内部服务器错误)。它随机但持续地攻击(例如,在一个项目中,每个交替构建都失败) 我试着用同样的证书检查了一些偶尔失败的项目,而且效果很好。我知道项目会构建,因为不是每个构建都会失败 有什么问题吗 值得一提的是,下面是一个示例性异常的顶行(没有SVN项目URL或凭据):

我在CruiseControl.NET上运行几个项目。他们中的许多人没有构建错误,并且构建成功。他们都试图在建造之前获取最新的代码

我注意到他们经常在建筑上失败;CruiseControl报告“异常”。异常是一个SVN 500错误(内部服务器错误)。它随机但持续地攻击(例如,在一个项目中,每个交替构建都失败)

我试着用同样的证书检查了一些偶尔失败的项目,而且效果很好。我知道项目会构建,因为不是每个构建都会失败

有什么问题吗

值得一提的是,下面是一个示例性异常的顶行(没有SVN项目URL或凭据):

编辑:有时这似乎是因为本地文件夹中存在SVN冲突。但这并不一致


Bounty:我为这个问题添加了一个通用解决方案:如何配置CC.NET以优雅地处理SVN错误,即不处理由定期更新检查触发的SVN故障(与计划的每日构建相反)作为构建失败,但在修复或恢复连接之前,请优雅地退出

虽然我不是CC.NET专家,也很久没有寻找过,但我自己还没有弄明白这一点。是否支持此功能,或者是否需要对其进行编码?谢谢

澄清一下,

  • 我们要设置一个CC.NET服务器来检查新的提交和签出+构建+测试所有更改,然后报告结果
  • 但是,如果SVN服务器宕机或我们与它失去连接,那么它会将此视为上次提交破坏了构建:它会将构建状态设置为红色,并向上次提交者发送电子邮件,就好像这是他们的错误一样
  • 是的,这对于每天一次的构建作业来说是个问题,但是对于持续的每次提交集成,我认为这不是有用的行为

解决此问题的一个困难方法是使用批处理文件或自定义包装(而不是CruiseControl.NET的源代码管理工具)检查修改情况,该包装调用svn客户端并在需要构建时创建文件(或其他发信号通知更改的方式)。批处理或包装器可以根据需要处理异常。当然,此解决方案可能需要更改构建过程的其余部分。

无论原因如何,我也希望能够将CC.NET配置为忽略SVN异常,而不是使构建失败。您的CI设置不应该产生干净签出所产生的结果吗?如果是这样,那么如果发生异常,您的整个生成环境将无效。@Mark我对生成输出不太感兴趣,而对报告和失败通知更感兴趣。我们已经将CC.NET设置为针对每个新提交运行:获取新签出、构建、测试、报告失败。但是,如果我们的SVN服务器宕机,或者我们失去连接,CC.NET会将此标记为构建失败,将项目交通灯更改为红色,并向最后一个提交人发送电子邮件,告知构建失败错误。然而这不是他的错。是的,我意识到如果我们使用CI构建每天一次的测试版本,这是一个严重的错误,但是对于连续的每次提交测试来说,这是没有用的。我很确定没有办法配置CC.NET开箱即用来忽略这些SVN事件,但是“幸运的”,对于“幸运的”的某些定义,CC.NET代码是开源的,不太难用C代码。可能会在SVN提供商中插入一个选项。这可能会有所帮助:谢谢-好主意。我会给你赏金,但更多的是感谢你的评论,这些评论指出了一些已经存在的配置选项,就像在这些我不知何故错过的老问题中一样。谢谢-我会玩这些,当我有时间的时候,我会挖掘CC.NET的源代码,开发我需要的任何东西。很高兴你发现它很有用。
ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS request for 'https://some/url/trunk'
. Process command: C:\Program Files\CollabNet Subversion Client\svn.exe log https://some/url/trunk -r "{2010-12-04T09:09:19Z}:{2010-12-07T09:08:48Z}" --verbose --xml --username ******** --password ******** --non-interactive --no-auth-cache