0

背景:我有一个包含数十种构建配置的 TeamCity 安装。许多这些构建配置部署到相同的服务器。为了缓解任何冲突,我使用 TeamCity 的共享资源功能来控制这些构建的运行方式。部署到一个特定服务器的所有构建都需要对同一共享资源的写锁;因此,他们不会尝试同时部署到同一台服务器。

上周末,由于停电,我们遭遇了严重的车祸。崩溃发生在对共享资源具有写锁的构建运行时。现在看来写锁从未被释放。使用该共享资源的构建都不能运行——它们都只是排队。如果我禁用资源然后重新启用它,构建将运行,但下一次它将再次排队。

我真的宁愿不删除并重新创建这些共享资源;每个都被 6-9 个构建配置使用,并且重新分配它们将是一件非常头疼的事情。如何清除未释放的写锁?

4

1 回答 1

1

Nick,共享资源锁状态是在运行时确定的,不会存储在任何地方。因此,如果存在需要写入锁的挂起构建,则可能会导致所描述的行为。在这种情况下,您应该检查挂起的构建并强制终止它们以释放锁定

此外,TeamCity 8.1.2 中存在一个问题TW-36042,它会导致具有无限配额的资源在写入锁定时出现错误行为。如果您的行为与问题中的行为相匹配 - 解决方法(在 8.1.3 更新之前)是将无限资源转换为具有指定配额的资源

于 2014-05-05T22:09:39.673 回答