【问题标题】:Sporadic SVN 500 Errors With CruiseControl.NETCruiseControl.NET 的零星 SVN 500 错误
【发布时间】:2010-12-07 14:41:32
【问题描述】:

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

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

我已经尝试使用相同的凭据检查其中一些偶尔失败的项目,并且它有效。我知道项目的构建,因为并非每个构建都会失败。

可能是什么问题?

对于它的价值,这里是示例性异常的第一行(没有 SVN 项目 URL 或凭据):

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

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


赏金:我添加了一个赏金来解决这个问题:如何将 CC.NET 配置为优雅地处理 SVN 错误,即不处理由定期更新触发的 SVN 故障检查(而不是计划的每日构建)作为构建失败,而是优雅地退出,直到它被修复或直到连接恢复。

虽然我不是 CC.NET 专家并且很久没有研究过,但我自己还没有弄清楚这一点。是否有对此的支持或者是否需要编码?谢谢!

为了澄清,

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

【问题讨论】:

  • 不管是什么原因,我也对配置 CC.NET 以忽略 SVN 异常而不是使构建失败的方法感兴趣。
  • 您的 CI 设置不应该产生任何干净的结帐会产生的结果吗?如果是这样,那么如果发生异常,您的整个构建环境将无效。
  • @Mark 我对构建输出不太感兴趣,但对报告和失败通知更感兴趣。我们已经设置 CC.NET 为每个新提交运行:获取新的签出、构建、测试、报告失败。但是,如果我们的 SVN 服务器出现故障,或者我们失去连接,那么 CC.NET 会将其标记为构建失败,将项目交通灯更改为红色,并通过电子邮件向最后一个提交者发送构建失败错误。然而,这不是他的错。是的,我意识到这是一个严重的错误,如果我们使用 CI 构建一天一次的版本进行测试,但对于持续的每次提交测试它是没有用的。
  • 我很确定没有办法开箱即用地配置 CC.NET 来忽略这些 SVN 事件,但是“幸运的是”,对于“幸运”的某些定义,CC.NET 代码是开源且不太难的 C# 代码。可能会破解 SVN 提供商的选项。
  • 这可能会有所帮助:stackoverflow.com/questions/1156911/…

标签: svn exception cruisecontrol.net


【解决方案1】:

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

【讨论】:

  • 谢谢 - 好主意。我会给你赏金,但更多的是为你的 cmets 指出一些已经存在的配置选项,就像在这些老问题 stackoverflow.com/questions/2086957/… stackoverflow.com/questions/1156911/… 中,我不知何故错过了。谢谢 - 我会和那些一起玩,当我有时间时,我会深入研究 CC.NET 源代码并开发我需要的任何其他东西。
  • 很高兴您发现它很有用。
猜你喜欢
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 2015-03-20
  • 2013-12-31
  • 2010-09-15
相关资源
最近更新 更多