TortoiseSVNsvn: E120106: ra_serf: The server sent a truncated HTTP response body
在结帐操作期间显示错误。如何解决问题?
7 回答
TortoiseSVN 开发者的一些想法:
发送的数据太大,服务器因达到限制而关闭连接。
可以帮助解决此问题的可能步骤:
- 增加服务器上的超时值
- 在服务器上将压缩级别设置为零(会使一切变慢但有助于解决此问题)
- 确保您和 svn 服务器之间的所有代理也增加了超时值
然后进行更新而不是再次签出...不要删除签出副本,只需再次更新即可。
我遇到了同样的问题,但在我们的 CI 系统 teamcity 的背景下。一些脚本确实执行手动 svn 结帐并导致此错误,而不是使用 teamcity 本身结帐。
使用 svn.exe 通过脚本而不是内置 teamcity SVN 在大型存储库上取消工作副本格式 1.7 的内部 SVN 清理检查,并显示消息:“svn:E120106:ra_serf:服务器发送了截断的 HTTP 响应正文。”
- 无论工作副本格式如何,都可以干净地签出小型存储库
- 使用工作副本格式 1.5 清理大型存储库作品
- 使用导出而不是结帐工作
- 使用 teamcity 8.1.5 内部 svn 客户端工作(不知道为什么)
- 使用 svn 客户端 1.7 而不是 1.8 会导致类似的超时相关错误:“svn: E175002: REPORT of '/!svn/me': could not read response body: Secure connection truncated”
增加服务器上的 SVN 超时值确实解决了这个问题,并且从那以后,“ra_serf”和“安全连接截断错误”都没有发生。
Aniket Thakur 关于恢复 svn 客户端版本的建议确实对这个问题产生了影响,但我找不到正确的版本。(如果有的话)
Sanmat Jhanjhari 提出的降低压缩级别的建议不仅是公认的解决方案的一部分,而且它可能起作用的原因是它可以保持 SVN 服务器和客户端之间的响应时间稳定,并且压缩大文件不再导致超时。
将工作副本更改为 1.5 是客户端解决此问题的唯一替代方案。这个工作的原因很可能与数据压缩的方式有关,但我无法弄清楚确切的原因。
如果您只对数据本身感兴趣并且不需要将其作为存储库,则使用导出是一种可怕的客户端替代方案。不过,出口行为略有不同。例如,它不会覆盖现有文件。与正常结帐相比,我也无法弄清楚为什么这有效。
不正确的代理设置可能会导致相同的错误消息。
我在结帐期间的不同时刻遇到了完全相同的错误。前几个文件总是成功,但在 5-10 个文件之后出现 ra_serf 错误。大文件和小文件也是如此。
经过一些试验和错误(其他硬件,有线连接)后,我离解决方案更近了。我决定检查所有 Tortoise SVN 设置并找到简单的答案:我的代理设置不正确!
错误Error: ra_serf: The server sent a truncated HTTP response body may occur when checkout a large directory or when the client's disk is very slow. 据我所知,问题已在 Subversion 的代码中得到解决(例如,参见r1886490)。该修复程序应包含在下一个 Apache Subversion 版本中。发布修复程序后,您需要升级 Subversion 客户端以解决问题。
该问题在 Apache Subversion SVN-3264的问题跟踪器中有一张票。
在所有其他情况下,当您收到错误服务器发送截断的 HTTP 响应正文时,考虑以下一般故障排除步骤是有意义的:
- 确保使用最新和最新的 Subversion 客户端版本。
- 确保您可能已在客户端或服务器计算机上安装的防病毒软件不会干扰 Subversion HTTP(S) 流量。您必须添加例外/排除规则,以禁用与您的 Subversion 服务器之间的访问或流量扫描。例如,请参阅文章KB171:为 VisualSVN 服务器配置防病毒排除项。
- 确保客户端机器和 Subversion 服务器之间的代理工作正常并且不会过早终止连接。
- 请联系您的系统管理员以检查网络是否存在连接问题。
SVN 1.8 包含一个新的 HTTP 客户端库 (Serf)。
我认为对此负责。我已经安装TortoiseSVN-1.8.6.25419-x64-svn-1.8.8.msi
并执行svn merge
了同样的错误。最初我虽然这是 svn 服务器超时的问题,但相同的合并操作适用于1.6
. 所以我想问题出在 SVN 1.8 及更高版本上。请将您的 svn 客户端版本恢复到 1.7 或 1.6 并尝试!
在 SVN 配置文件中设置以下键值。而已。
DeflateCompressionLevel 5
1 是最低值。9 是最大值。