SVN无法获取文件<rep​​o> / db / txn-current-lock'的独占锁定:错误的地址</repo>

时间:2011-01-17 10:42:34

标签: svn

从一个小时开始,我无法提交到我的svn存储库。我的svn服务器上的所有存储库都受到影响。

更新和退房工作正常。提交会产生以下错误:

svn: Commit failed (details follow):
svn: Can't get exclusive lock on file '/var/svn/repos/<repo name>/db/txn-current-lock': 
  Bad address

当我创建一个名为'config'的新存储库时,问题就出现了,虽然我不确定这会引发我遇到的问题。

svnadmin recover <repo name>给出:

svnadmin: Can't get exclusive lock on file '<repo name>/db/write-lock': Invalid argument

为什么会出现锁定问题?

[编辑] 服务器变得更糟,并在尝试安装更新时启动了Segfaulting。重新启动后,整个问题似乎已经解决......

3 个答案:

答案 0 :(得分:1)

存储库已损坏,请参阅SVN Book的Berkeley DB Recovery部分。总之,你必须这样做;

svnadmin recover /path/to/repos

答案 1 :(得分:0)

迁移SVN服务器后,我刚遇到此问题。我使用本机svn导出和导入命令来执行此操作。在新服务器上,我收到与OP相同的错误。我注意到,如果从shell执行提交sudo它工作,但它在我的普通用户帐户下失败。

最终成为文件权限。我很快就做了一个chmod 777 -R,对我来说很好,因为它只是我家里的本地开发盒。

svn recover没有解决问题。您无法锁定该文件,因为您没有写入权限。

答案 2 :(得分:0)

我在全球范围内迁移存储库后,今天早上遇到了这个问题。问题是root拥有服务器上的目录,但Web服务器以不同的用户身份运行。使用

更改服务器上的目录所有者
chown -R user:group /path/to/repository

解决问题,替换用户&#39;与运行网络服务器的用户和&#39;组&#39;通常应该与用户相同。