SVN 结帐失败,“块分隔符无效”

Posted

技术标签:

【中文标题】SVN 结帐失败,“块分隔符无效”【英文标题】:SVN checkout fails with “chunk delimiter was invalid” 【发布时间】:2012-10-07 19:39:23 【问题描述】:

错误:

签出大型项目时,我们在项目中的随机文件上收到错误:

无法读取响应正文:SSL 错误:解密失败或 mac 记录错误

响应是禁用 SSL 并重新启动 SVNServer。

重新测试并得到这个错误:

块分隔符无效

于是检查了 SVNserver 日志:

写入 base64 数据时出错:APR 不理解此错误代码 [500, #620018]

提供者在流式传输 REPORT 响应时遇到错误。 [500, #0]

驱动更新报告编辑器时发生故障 [500, #620018]

我们可以在 100% 的时间内重新创建上述内容。


尝试过:

我们从这里尝试过:

将 OpenSSL 升级到最新版本。导致上述相同的错误。

将 REPO 复制到新的 REPO 以确保没有文件损坏。导致上述相同的错误。

在本地安装了 SVNserver 并测试了我们的等式网络。导致上面同样的错误。

我们认为这可能与我们正在使用的 OpenSSL 版本以及安装了 VisualSVN 的其他一些组件相隔离。

任何人都知道这个问题以及如何解决它?


组件/设置:

Windows 2008 服务器 R2 Apache Subversion 1.7.6 Apache HTTP 服务器 2.2.22 OpenSSL 0.9.8x 霓虹灯 0.29.6 农奴 1.0.0 SQLite 3070603 ZLib 1.2.3 VisualSVN 2.5.6 启用 SSL Windows 7 x64 pro 客户端节点

【问题讨论】:

【参考方案1】:

真正的错误是Too many open files [500, #24]。我假设您使用的是基于 *nix 的 Subversion 服务器。在这种情况下,使用ulimit 命令增加打开文件描述符的数量:

ulimit -n 99999

另请参阅:https://serverfault.com/questions/48717/practical-maximum-open-file-descriptors-ulimit-n-for-a-high-volume-system

【讨论】:

运行该进程的用户也可能打开文件的数量受到限制,请务必检查这一点。 感谢伊万/迈克尔的回复。是否可以指出我需要添加/修改哪个文件?已尝试将“ulimit -n 99999”添加到 C:\Program Files (x86)\VisualSVN Server\conf\httpd-custom.CONF 但 VisualSVNServer 服务无法启动。 注意它是一个 windows 服务器,提供的链接是 linux 解决方案。 @scott_lotus 好的。您在服务器端还有其他错误吗?客户端使用什么 http 库(农奴或霓虹灯)?尝试运行 svnadmin verify 命令检查存储库。 @scott_lotus 您是否使用 svnadmin verify 命令在存储库中发现任何错误?我建议您与 VisualSVN 支持团队联系以解决此问题 (support@visualsvn.com)。【参考方案2】:

您安装了 Nod32 吗?如果是,那么禁用协议过滤会有所帮助。最好的解决方案是为 SVN 添加异常。

Nod32 -> 高级设置 -> Web 和电子邮件 -> 协议过滤 -> 排除的应用程序 -> 检查你的客户端,我的是 TortoiseProc.exe

【讨论】:

您能详细解释一下如何禁用协议吗?我在 Windows 环境中有“块分隔符无效”。我怀疑问题是Nod32。我尝试禁用隐身模式,情况更好但没有解决。 更新了答案,之前的解释比较模糊,抱歉;)

以上是关于SVN 结帐失败,“块分隔符无效”的主要内容,如果未能解决你的问题,请参考以下文章

SVN 如何查看第一次结帐的变化?

“格式 6”上的 SVN 结帐错误

svn:处理报告请求响应失败:元素类型“META”必须由匹配的结束标记“</META>”终止

如何使用 ANT 任务从 SVN 结帐?

在网络托管包上进行 SVn 结帐/更新的最佳方式

SVN 结帐时缺少框架和库,XCode 5