git clone以残破的管道结尾

问题描述 投票:8回答:3

我有一个很大的git仓库,想从中克隆。在一台计算机(ArchLinux带有git版本2.2.2)上,一切正常...

Cloning into 'foo'
remote: Counting objects: 2372505, done
remote: Compressing objects: 100% (456914/456914), done.
Receiving objects: 100% (2372505/2372505), 3.81 GiB | 6.20 MiB/s, done.
...

...但是在另一台机器上(Ubuntu的git版本为2.3.0,也尝试使用1.7.0.4),我只看到以下内容:

Cloning into 'foo'
remote: Counting objects: 2372505, done.

几个小时后,结尾为

Write failed: Broken pipe
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

有什么问题吗?

顺便说一句:

  • 远端是gitlab服务器。
  • 在两种情况下我都使用SSH。
  • 第一台(运行中的)计算机通过VPN(100 MBit / s)连接。
  • 第二台(不工作的)计算机与gitlab服务器在同一千兆子网中。
git ssh git-clone
3个回答
2
投票

已解决!我使用DNS名称连接到gitlab服务器,但我不知道:该名称已解析为同一服务器的外部IP,因此,服务器和客户端不在同一子网中

因此,客户端连接到服务器的外部IP,因此防火墙必须将其NAT转换回服务器。

[解决方案非常简单:我只是将带有内部ip的主机名添加到客户端计算机的/etc/hosts文件中,而从克隆服务器上的主机名起的作用就很吸引人。


1
投票

关于GitLab,this thread提及(类似错误)

我通过编辑git/config/unicorn.yml并将超时设置为120(以前是30,然后重新启动gitab服务,解决了该问题(无法通过HTTP检出大型仓库)。

如果这不仅与Git托管服务器有关,而且与Git本身有关,那么您还可以尝试其他选择:


0
投票

对我来说,尝试了所有在网络上找到的建议后,事实证明VPN连接一直在不断地连接和断开。看来,如果有太多的“网络中断”或有损网络,则git clone“ jams”,最终您会收到Broken pipe-error消息。

要进行调试,如果有任何实际流量,可以使用

fatal: early EOF fatal: index-pack failed

iptraf

就我而言,最初的稳定流量为2MB / s,但是几秒钟后,基础连接断开,克隆流再也无法恢复,直到我修复OpenVPN连接以保持稳定为止。

© www.soinside.com 2019 - 2024. All rights reserved.