3

我最近在 CI 环境中遇到了问题。

我正在使用Hudson 版本。1.395.1SVN 版本 1.4.2。

我的 Hudson 不断地轮询 SVN 是否有任何更改,如果是这样,它就会开始构建。

最近此操作失败并显示以下消息

Updating https://MY_SVN_URL/trunk
Workspace appear to be locked, so getting a fresh workspace
Checking out https:/MY_SVN_URL/trunk
ERROR: Failed to check out https://MY_SVN_URL/trunk
org.tmatesoft.svn.core.SVNException: svn: Working copy '/Hudson/workspace/MY_PROJECT_NAME' locked; try performing 'cleanup'

必须注意的是,这只发生在我提交更改并且 Hudson 试图触发构建(通过轮询 SVN)时。当我手动触发构建时,问题不会发生。

在我看来,轮询正在锁定 Hudson 工作区,而更新操作发现工作区被锁定。

以前有人遇到过同样的情况吗?有什么解决办法吗?

谢谢。

4

2 回答 2

5

我会回答我自己的问题,因为这可能对其他人有用。

造成这种情况的根本原因,其实很简单。Hudson 运行的服务器在此事件发生前 3-4 天重新启动。

发现机器上正在运行两个 Hudson 实例。因此,一个实例正在获取并持有锁,从而使另一个实例间歇性地失败。

有趣的是,尽管服务器在 3 天前重新启动,但今天还是出现了问题。

因此,如果有人遇到这种问题,最好先检查一下上述简单的事情,然后再像我一样花费太多时间,以供进一步参考。

于 2013-01-18T08:38:20.440 回答
2

我想说的是,当我在开始操作后中止操作(例如:添加/更改文件的项目构建......)或中止 Hudson 工作时,这经常发生在我身上。

如果中止是原因,您可以通过尝试还原在您拥有文件夹.svn的工作区级别验证,因此您将收到以下消息:

working copy <project_name> locked

所以我们可以说这两个问题是相关的(一个在 Hudson 级别,另一个在 SVN 级别)。

要让它变红,如果您使用 TortoiseSVN :

  1. 右键单击已签出的文件夹
  2. TortoiseSVN
  3. 清理
  4. 检查这些选项:清理工作副本状态+包括外部
于 2013-11-06T10:46:42.857 回答