我在这里设置了非常酷的gitlab:
ubuntu~/Projects/git/myRepo(master|✔) % git pull
Username for 'https://example.org': my.username@mydomain.de
Password for 'https://my.username@mydomain.de@example.org':
remote: Counting objects: 7798, done.
remote: Compressing objects: 100% (4132/4132), done.
fatal: The remote end hung up unexpectedlyiB | 222 KiB/s
fatal: early EOF
fatal: index-pack failed
它似乎能够复制 8Mib的数据并且最多运行约30秒。这个问题每次都可以重现,并且一遍又一遍地显示出相同的故障迹象。
git config --global http.postBuffer 524288000
在客户端无济于事。
任何人都知道可能导致这种情况的原因吗?
答案 0 :(得分:7)
此问题的原因可能是超时问题(或类似限制,例如数据量):发生服务器端超时,这会关闭http连接,从而导致客户端“早期EOF”错误消息。这样的超时可以在几个地方配置(我在这里列出它们,因为其他Web服务器可能有类似的设置,所以它们可能会给你一个提示在哪里看):
增加Unicorn配置中的超时应该可以解决您的问题。请记住,并行请求的数量也受到Unicorn的限制。克隆一个大型repo会阻塞一个请求,但几乎不会导致CPU负载。如果您的gitlab服务器没有高流量配置文件,您应该考虑增加worker_process
号码。
作为旁注:gitlab.yml
配置还提供git timeout;这个超时限制了git操作,比如计算几次提交的差异。克隆/拉动时,它对超时没有影响。