这不是一个简短的问题-但请耐心等待:)
早在 2012 年,我就设置了从我们在美国的一个数据中心到世界各地的多个镜像(准确地说是 3 个)的 svn 同步。这些年来它通常没有任何问题(它托管测试数据,目前为 1.2TB @ 修订版 573453)。
最近我需要重建执行同步的主服务器(不接触镜像),这就是问题开始的地方......有时,仅对于更大的修订,从新主服务器到远程镜像的同步失败 - 我们有 3 个这样的镜像和有时它对所有这些都失败,有时只对一两个失败......它永远不会对同一数据中心内的 3 个其他镜像失败(svn 版本 1.10.3 和 2x 1.7.5(这在下面很重要;))) .
当我这样做strace svnsync...
时,看起来 svnsync 进程在将某些数据方式读取到“更大/有问题”修订版的同步中时出现“对等方重置连接”错误,然后在关闭 http 连接后退出(它总是继续进行故障发生前的良好状态)。
我在任何日志中都找不到任何明显的东西(并不是说我在这方面太能干了;)——管理这些是第 4 级的副业)。
SVN 在所有系统上都与 apache mod_svn 一起提供服务——无论我使用 http 还是 https 作为源协议,它都会失败——目标都是 http atp。
一旦失败,它会一次又一次地失败(到 1,2 或 3 个镜子),你可以尝试几十次,它或多或少会在同一个地方失败(不完全是,但很接近)但是......
这里是踢球者...
它将始终工作,从执行 nr 1 并且到目前为止没有任何失败,当旧主通过在其上执行完全相同的 svnsync 命令用作中间人时......
旧服务器使用:
bash-4.1$ svnsync --version
svnsync, version 1.7.5 (r1336830)
compiled May 15 2012, 17:55:12
新服务器有:
bash-4.4$ svnsync --version
svnsync, version 1.10.2 (r1835932)
compiled Feb 10 2021, 09:25:28 on x86_64-redhat-linux-gnu
使用较旧的 svnsync 进程是否会导致选择不同的协议/模式来在相同的两个存储库之间进行同步,而当使用匹配的 svnsync 同步到“较旧的”存储库时不存在某些问题?
svnsync 1.10.2 SYNC REMOTE FROM 1.10.2 TO 1.7.5 == FAIL (sometimes after a while/longer period of time pushing data)
svnsync 1.7.5 SYNC REMOTE FROM 1.10.2 TO 1.7.5 == SUCCESS (each and every time)
我可以检查哪些日志,我可以启用哪些日志来尝试缩小范围?
附言。由于这是一个“公司”环境,我试图确保没有“奇怪的网络事物”(“透明缓存和加速器等”)被启用/激活,并且网络团队认为他们没有;)
pps。所有这些服务器都是在一个或另一个 vmware 解决方案上运行的虚拟机。