错误:git-upload-pack死于信号13 [英] error: git-upload-pack died of signal 13

查看:942
本文介绍了错误:git-upload-pack死于信号13的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Mac OS X 10.9.2中,我有一个GitLab服务器(6.7.2),使用git 1.9.2。有两个存储库。一个可以克隆成功,但另一个失败,因为

  $ git clone http://*/gamil/gamil.git 
克隆成'gamil'...
remote:计数对象:426,完成。
remote:压缩对象:100%(375/375),完成。
致命:远程终端意外挂起
致命:早期EOF
致命:索引包装失败

我在GitLab中检查了 unicorn.stderr.log ,发现

 我,[2014-04-21T23:03:58.761225#4929]信息 - :主进程准备好
我,[2014-04-21T23:03:58.764556#4940]信息 - :worker = 0 ready
我,[2014-04-21T23:03:58.766098#4941]信息 - :worker = 1 ready
错误:git-upload-pack死于信号13

这个错误来自哪里?如何解决它?
$ b

编辑1



我检查了存储库:

  $ git fsck 
检查对象目录:100%(256/256),done。
检查对象:100%(426/426),完成。

所以看起来一切正常,但无法克隆到本地计算机。



编辑2

我已将GitLab更新至6.8,没有运气。 b
$ b

编辑3

我可以通过 ssh protocol`作为

  $ git clone dongli @< ...>:gamil 
克隆成'gamil'...
remote:计数对象:426,完成。
remote:压缩对象:100%(317/317),完成。
remote:共计426(delta 89),重用426(delta 89)
接收对象:100%(426/426),821.19 KiB | 0字节/秒,完成。
解决三角洲问题:完成100%(89/89)。
检查连通性...完成。

编辑4

我检查了 unicorn.rb 中的超时时间:

  #nuke workers 30秒后而不是60秒(默认)
超时300

nginx 的配置:

 #如果一个文件不是在根文件夹中找到请求,
#然后代理将请求传递给upsteam(gitlab unicorn)
location @gitlab {
proxy_read_timeout 300; #有些请求需要超过30秒。
proxy_connect_timeout 300; #有些请求需要超过30秒。
proxy_redirect off;

proxy_set_header X-Forwarded-Proto $ scheme;
proxy_set_header主机$ http_host;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;

proxy_pass http:// gitlab;
}

编辑5



我已经将存储库上传到GitHub,并且克隆是正常的:

  $ git clone https ://github.com/dongli/GAMIL.git 1 
克隆到'1'...
remote:计数对象:355,完成。
remote:压缩对象:100%(308/308),完成。
remote:总计355(增量35),重复使用355(增量35)
收货对象:100%(355/355),809.75 KiB | 244.00 KiB / s,完成。
解决三角洲问题:完成100%(35/35)。
检查连通性...完成。

所以这个存储库是很好的。

解决方案

我最终通过查找内部 /var/log/nginx/gitlab_error.log 找到了导致我的问题的原因。

  2014/04/27 17:25:21 [crit] 14331#0:* 19 open()
/ usr /当读取上游时,客户端:123.113.33.131,服务器:*,请求:
本地/var/run/nginx/proxy_temp/3/00/0000000003失败(13:权限被拒绝)
POST / gamil / gamil.git / git-upload-pack HTTP / 1.1,
upstream:http:// unix:/Users/git/gitlab/tmp/sockets/gitlab.socket:/gamil/gamil.git / git-upload-pack,主机:*

目录 / usr / local / var 访问权限为

$ p $ drwx ------ 8 dongli admin 272 4 1 14:55 var

所以我将它改为

  drwxr-x --- 8 dongli admin 272 4 1 14:55 var 

然后错误终于消失了。


I have a GitLab server (6.7.2) in Mac OS X 10.9.2, with git 1.9.2. There are two repositories. One can be cloned successfully, but the other fails as

$ git clone http://*/gamil/gamil.git
Cloning into 'gamil'...
remote: Counting objects: 426, done.
remote: Compressing objects: 100% (375/375), done.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

And I checked unicorn.stderr.log in GitLab and found

I, [2014-04-21T23:03:58.761225 #4929]  INFO -- : master process ready
I, [2014-04-21T23:03:58.764556 #4940]  INFO -- : worker=0 ready
I, [2014-04-21T23:03:58.766098 #4941]  INFO -- : worker=1 ready
error: git-upload-pack died of signal 13

What does this error come from? How to fix it? Thanks in advance!

EDIT 1:

I checked the repository:

$ git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (426/426), done.

So it seems everything is fine, but can't clone into local computer.

EDIT 2:

I have updated GitLab to 6.8 with no luck.

EDIT 3:

I can clone the problematic repository through ssh protocol` as

$ git clone dongli@<...>:gamil
Cloning into 'gamil'...
remote: Counting objects: 426, done.
remote: Compressing objects: 100% (317/317), done.
remote: Total 426 (delta 89), reused 426 (delta 89)
Receiving objects: 100% (426/426), 821.19 KiB | 0 bytes/s, done.
Resolving deltas: 100% (89/89), done.
Checking connectivity... done.

EDIT 4:

I checked the timeout in unicorn.rb:

# nuke workers after 30 seconds instead of 60 seconds (the default)
timeout 300

and the configuration for nginx:

# if a file, which is not found in the root folder is requested,
# then the proxy pass the request to the upsteam (gitlab unicorn)
location @gitlab {
  proxy_read_timeout 300; # Some requests take more than 30 seconds.
  proxy_connect_timeout 300; # Some requests take more than 30 seconds.
  proxy_redirect     off;

  proxy_set_header   X-Forwarded-Proto $scheme;
  proxy_set_header   Host              $http_host;
  proxy_set_header   X-Real-IP         $remote_addr;
  proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;

  proxy_pass http://gitlab;
}

EDIT 5

I have uploaded the repository to GitHub, and the clone is OK:

$ git clone https://github.com/dongli/GAMIL.git 1
Cloning into '1'...
remote: Counting objects: 355, done.
remote: Compressing objects: 100% (308/308), done.
remote: Total 355 (delta 35), reused 355 (delta 35)
Receiving objects: 100% (355/355), 809.75 KiB | 244.00 KiB/s, done.
Resolving deltas: 100% (35/35), done.
Checking connectivity... done.

So the repository is GOOD.

解决方案

I finally found the reason for my problem by looking inside /var/log/nginx/gitlab_error.log which complains

2014/04/27 17:25:21 [crit] 14331#0: *19 open() 
"/usr/local/var/run/nginx/proxy_temp/3/00/0000000003" failed (13: Permission denied)
while reading upstream, client: 123.113.33.131, server: *, request:
"POST /gamil/gamil.git/git-upload-pack HTTP/1.1", 
upstream: "http://unix:/Users/git/gitlab/tmp/sockets/gitlab.socket:/gamil/gamil.git/git-upload-pack", host: "*"

The directory /usr/local/var whose access permission is

drwx------    8 dongli  admin    272  4  1 14:55 var

So I changed it to

drwxr-x---    8 dongli  admin    272  4  1 14:55 var

Then the error is gone finally.

这篇关于错误:git-upload-pack死于信号13的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆