从svn存储库更新时返回“;无法读取块大小“;错误
使用tortoise svn客户端从subversion存储库进行更新时,出现如下错误:从svn存储库更新时返回“;无法读取块大小“;错误,svn,tortoisesvn,connection,Svn,Tortoisesvn,Connection,使用tortoise svn客户端从subversion存储库进行更新时,出现如下错误: Could not read chunk size: An existing connection was forcibly closed by the remote host. 它并没有阻止我进行更新,只是打断了更新过程,所以在更新完成之前,我必须重复几次更新 什么会导致这种行为以及如何修复它?检查apache错误日志,应该有一个带有错误号的错误记录在那里。这个数字将有助于找出连接断开的原因 如果错误日
Could not read chunk size: An existing connection was forcibly closed by the remote host.
它并没有阻止我进行更新,只是打断了更新过程,所以在更新完成之前,我必须重复几次更新
什么会导致这种行为以及如何修复它?检查apache错误日志,应该有一个带有错误号的错误记录在那里。这个数字将有助于找出连接断开的原因
如果错误日志中没有任何内容,请检查您的病毒扫描程序/防火墙设置:如果其中一些工具认为传输的数据有危险,它们会断开连接。我也明白这一点。我们的服务器是在Windows上运行的Apache。我的客户端连接速度很高,但延迟有点高(200ms)。另一个难题是我正在运行windows Vista。启用自动缩放和rss似乎可以改善这种情况,但并不能解决它。我从多台机器上的客户端收到“无法读取块大小”消息 找到答案的关键是Apache错误日志中的以下错误:
[Fri May 07 14:26:26 2010] [error] [client 155.35.175.50] Provider encountered an error while streaming a REPORT response. [500, #0]
[Fri May 07 14:26:26 2010] [error] [client 155.35.175.50] Problem replaying revision [500, #24]
[Fri May 07 14:26:26 2010] [error] [client 155.35.175.50] Can't open file '/usr/site/svnrep/impc/db/revs/16122': Too many open files [500, #24]
处理svn操作的Apache进程的文件描述符不足。在我的Ubuntu服务器上,我通过编辑/etc/security/limits.conf
并在底部添加以下内容来修复它:
* hard nofile 5000
* soft nofile 5000
这将文件描述符限制从1024增加到5000。然后我登录到一个新的shell,并通过
ulimit-n
确认限制增加了。然后重新启动Apache。对我们来说,问题是Apache超时。更新大约需要15分钟,但Apache在10分钟后超时,导致我们的SVN服务器给出您看到的错误。最终的解决方案是增加Apache的超时设置。我们使用VisualSVN服务器—有关如何更改此设置的详细说明,请参见此处:我更改为Ubuntu服务器,并且在多个客户端PC、操作系统和客户端版本中出现了相同的错误
确保文件限制设置和Apache超时设置都符合建议后
(见附件)
我最终通过使用apache2 mpm预工作包而不是apache2 mpm工作包解决了这个问题。我只是遇到了这种情况,这不是服务器问题;我的工作副本已损坏(顺便说一句,是我损坏的)。此错误消息还有另一个恼人的原因。它可能是您的路由器或路由器的固件 我最近将Linksys WRT110的固件从1.0.02版升级到1.0.07版,此后,subversion无法再向存储库添加新文件。它只能更新现有文件。回滚到1.0.02修复了该问题 资料来源:
基本上,只要连接突然断开,就会出现此错误。可能是Apache上的配置错误,就像你们中的许多人所说的那样。这也可能是由于服务器速度慢或连接过载,也可能是因为便宜的路由器,就像我的情况一样。我刚刚遇到了“无法读取块大小”错误,并找到了解决方案——至少在一种情况下是这样 首先,我的配置。。。 服务器:在Windows SERVER 2003 32位上运行的CollabNet Subversion边缘服务器2.0.0-2190.74(Subversion二进制文件1.6.17-2190.74) 客户端:TortoiseSVN 1.6.16,构建21511-32位(Subversion 1.6.17),运行在Windows XP Pro 32位SP3上 复制的步骤。。。 在右键单击将一个版本化的子文件夹拖动到本地工作副本文件夹中的另一个版本化的子文件夹中,然后选择“此处SVN复制版本化项目”(右键拖动文件夹时,这是Windows资源管理器中的一个TortoiseSVN上下文菜单命令)后,我出现了此错误。子文件夹包含一个ANSI编码的文本文件MANIFEST.MF,我相信我没有修改它(我的Subversion配置不包括.MF文件的mime类型)。我随后提交了新复制的子文件夹。后来,每当我试图更新这台电脑上的Subversion本地工作副本文件夹时,我都会遇到块大小错误 围绕。。。 我通过重新启动Subversion/Apache服务(这本身没有帮助,也可能没有必要),然后从我的本地工作副本文件夹中删除新添加的子文件夹(它已经进入了repo,所以我不会丢失任何东西),然后执行更新来解决这个问题,它在没有区块大小错误的情况下成功地重新获取了我刚刚删除的子文件夹 在我的例子中,我以这种方式复制了两个版本化的子文件夹,在删除这两个新子文件夹之前,我无法成功更新本地工作副本文件夹的根目录 随访
我假设这是Subversion服务器和/或TortoiseSVN客户机中的一个bug,但我没有调试技能来确定。我将在TortoiseSVN问题跟踪器中报告我的发现,看看结果如何。这显然有很多原因,但对我来说,这是通过重新启动SVN服务器(VisualSVNServer 2.5.1)解决的。这在对新加载的转储执行完全回购签出时经常发生。在重命名文件夹并提交后,我在更新时收到了相同的错误消息。我创建了一个新的工作目录,但没有收到错误。所以,我只是将我的更改移动到新的工作目录,提交并删除旧目录 因此,此错误似乎是由于我的本地目录被损坏而导致的。问题和(其他一些)在关闭客户端防病毒后消失
我通过Apache将Ubuntu服务器与subversion 1.7.4一起使用。对于我们来说,解决方法是将SVN客户端从1.8降级到1.7(与TortoiseSVN捆绑在一起的命令行客户端)。Visual VN 2.5.8:有相同的错误,下一步帮助我修复此错误: 在服务器上: