error: git-upload-pack died of signal 13

git, gitlab

Solution

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.

Problem

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.

Original source