threads / discuss / 19243

Error cloning from Git Repository

Subject: Error cloning from Git Repository

## tl;dr

3 messages between May 8, 2009 and May 12, 2009.

replies: 2people: 3as markdown or json

kanagesh radhakrishnan· May 8, 2009, 04:05 UTC · lore
Hello All,

I am trying to setup a git repository and then publish it using git-daemon and inetd for other developers in the network to access the sources.

Server Setup ------------------- Host system running on Fedora Core 8 Git version 1.5.4.3

A summary of what I have done to setup the Git server is as follows: $ mkdir /home/kanagesh/test-repo $ cd test-repo $ vi test.c <insert text, save, quit> $ git-init-db $ git-config user.name kanagesh $ git-config user.email rkanagesh@gmail.com $ git-add test.c $ git-commit -a -m"Initial Commit"

# mkdir -p /var/cache/git
# ln -s /home/kanagesh/test-repo/.git test-repo
# ls -l
   test-repo -> /home/kanagesh/test-repo/.git

xinetd has been setup to listen for git requests on port 9418 and spawn git-daemon. This has been done by placing a config file named 'git' under /etc/xinetd.d. The contents of the config file is as follows:

service git
{
       disable        = no
       type            = UNLISTED
       port             = 9418
       socket_type = stream
       wait             = no
       user            = nobody
       server          = /usr/local/bin/git-daemon
       server_args     = --inetd --export-all
--base-path=/var/cache/git --syslog --verbose
       log_on_failure  += USERID
}

Clone from the Server ------------------------------- When I attempt to clone the source from the Git server, I end up with the following error:

[kanagesh@localhost test]$ git-clone git://192.168.13.171/test-repo Initialized empty Git repository in /home/kanagesh/work/test/test-repo/.git/ fatal: The remote end hung up unexpectedly fetch-pack from 'git://192.168.13.171/test-repo' failed.

On checking the log messages in /var/log/messages, I see the following:

May 7 17:29:19 localhost xinetd[17108]: START: git pid=17128 from=::ffff:192.168.13.171 May 7 17:29:19 localhost git-daemon: [17128] Connection from 192.168.13.171:42360 May 7 17:29:19 localhost git-daemon: [17128] Extended attributes (21 bytes) exist <host=192.168.13.171> May 7 17:29:19 localhost git-daemon: [17128] Request upload-pack for '/test-repo' May 7 17:29:19 localhost xinetd[17108]: EXIT: git status=255 pid=17128 duration=0(sec)

Can anyone tell me what I am doing incorrectly? Any pointers on how to get a more verbose log from git-daemon would also be very helpful.

Thanks in advance.

Regards, Kanagesh

Michael J Gruber· May 8, 2009, 07:50 UTC · re: kanagesh radhakrishnan · lore

Re: Error cloning from Git Repository

kanagesh radhakrishnan venit, vidit, dixit 08.05.2009 06:05:
Show 22 quoted lines
> Hello All,
> 
> I am trying to setup a git repository and then publish it using
> git-daemon and inetd for other developers in the network to access the
> sources.
> 
> Server Setup
> -------------------
> Host system running on Fedora Core 8
> Git version 1.5.4.3
> 
> A summary of what I have done to setup the Git server is as follows:
> $ mkdir /home/kanagesh/test-repo
> $ cd test-repo
> $ vi test.c <insert text, save, quit>
> $ git-init-db
> $ git-config user.name kanagesh
> $ git-config user.email rkanagesh@gmail.com
> $ git-add test.c
> $ git-commit -a -m"Initial Commit"
> 
> # mkdir -p /var/cache/git
I assume you're doing a "cd /var/cache/git" before the next lines ;)
> # ln -s /home/kanagesh/test-repo/.git test-repo
> # ls -l
>    test-repo -> /home/kanagesh/test-repo/.git
Does "nobody" have access to /var/cache/git and /home/kanagesh/test-repo/?
Show 27 quoted lines
> 
> xinetd has been setup to listen for git requests on port 9418 and
> spawn git-daemon.  This has been done by placing a config file named
> 'git' under /etc/xinetd.d.  The contents of the config file is as
> follows:
> 
> service git
> {
>        disable        = no
>        type            = UNLISTED
>        port             = 9418
>        socket_type = stream
>        wait             = no
>        user            = nobody
>        server          = /usr/local/bin/git-daemon
>        server_args     = --inetd --export-all
> --base-path=/var/cache/git --syslog --verbose
>        log_on_failure  += USERID
> }
> 
> 
> Clone from the Server
> -------------------------------
> When I attempt to clone the source from the Git server, I end up with
> the following error:
> 
> [kanagesh@localhost test]$ git-clone git://192.168.13.171/test-repo
What is the git version on the client?
Show 24 quoted lines
> Initialized empty Git repository in /home/kanagesh/work/test/test-repo/.git/
> fatal: The remote end hung up unexpectedly
> fetch-pack from 'git://192.168.13.171/test-repo' failed.
> 
> On checking the log messages in /var/log/messages, I see the following:
> 
> May  7 17:29:19 localhost xinetd[17108]: START: git pid=17128
> from=::ffff:192.168.13.171
> May  7 17:29:19 localhost git-daemon: [17128] Connection from
> 192.168.13.171:42360
> May  7 17:29:19 localhost git-daemon: [17128] Extended attributes (21
> bytes) exist <host=192.168.13.171>
> May  7 17:29:19 localhost git-daemon: [17128] Request upload-pack for
> '/test-repo'
> May  7 17:29:19 localhost xinetd[17108]: EXIT: git status=255
> pid=17128 duration=0(sec)
> 
> Can anyone tell me what I am doing incorrectly?  Any pointers on how
> to get a more verbose log from git-daemon would also be very helpful.
> 
> Thanks in advance.
> 
> Regards,
> Kanagesh
Michael J Gruber· May 12, 2009, 07:11 UTC · lore

Re: Error cloning from Git Repository

[I'm putting the list back on cc:, I assume that's in your interest.]
kanagesh radhakrishnan venit, vidit, dixit 12.05.2009 05:19:
Show 51 quoted lines
> Hello Michael and all,
> 
> Thank you for the response.
> 
> The version of git on the client machines that I have tried on are
> 1.5.4.3 and 1.6.2.1.
> 
> Please see my replies inline.
> 
> Thanks and regards,
> Kanagesh
> 
> On Fri, May 8, 2009 at 1:20 PM, Michael J Gruber
> <git@drmicha.warpmail.net> wrote:
>> kanagesh radhakrishnan venit, vidit, dixit 08.05.2009 06:05:
>>> Hello All,
>>>
>>> I am trying to setup a git repository and then publish it using
>>> git-daemon and inetd for other developers in the network to access the
>>> sources.
>>>
>>> Server Setup
>>> -------------------
>>> Host system running on Fedora Core 8
>>> Git version 1.5.4.3
>>>
>>> A summary of what I have done to setup the Git server is as follows:
>>> $ mkdir /home/kanagesh/test-repo
>>> $ cd test-repo
>>> $ vi test.c <insert text, save, quit>
>>> $ git-init-db
>>> $ git-config user.name kanagesh
>>> $ git-config user.email rkanagesh@gmail.com
>>> $ git-add test.c
>>> $ git-commit -a -m"Initial Commit"
>>>
>>> # mkdir -p /var/cache/git
>>
>> I assume you're doing a "cd /var/cache/git" before the next lines ;)
> 
> Yes, indeed.  I am doing that :-)
> 
>>> # ln -s /home/kanagesh/test-repo/.git test-repo
>>> # ls -l
>>>    test-repo -> /home/kanagesh/test-repo/.git
>>
>> Does "nobody" have access to /var/cache/git and /home/kanagesh/test-repo/?
> 
> The only user who seems to have access to these folders is 'kanagesh'
> However, a git-clone command issued by user kanagesh also results in
> the same failure.

Do you mean git-clone with a remote URL (git://ip/...)? In that case your local user does not matter at all: git-clone talks to git-daemon, git-daemon runs as "nobody" (per your inetd config), and "nobody" has no access to the repo. If you use git-daemon you need to make sure that the user which git-daemon runs as can access the repo.

For a quick check you can run git-daemon as kanagesh and restart it. The real solution is to make the repo accessible to "nobody", or better yet to a dedicated user "gitdaemon" or such which you create and which would be the user to run git-daemon.

Show 60 quoted lines
> 
> How can I provide you with more information for this?
> 
>>
>>>
>>> xinetd has been setup to listen for git requests on port 9418 and
>>> spawn git-daemon.  This has been done by placing a config file named
>>> 'git' under /etc/xinetd.d.  The contents of the config file is as
>>> follows:
>>>
>>> service git
>>> {
>>>        disable        = no
>>>        type            = UNLISTED
>>>        port             = 9418
>>>        socket_type = stream
>>>        wait             = no
>>>        user            = nobody
>>>        server          = /usr/local/bin/git-daemon
>>>        server_args     = --inetd --export-all
>>> --base-path=/var/cache/git --syslog --verbose
>>>        log_on_failure  += USERID
>>> }
>>>
>>>
>>> Clone from the Server
>>> -------------------------------
>>> When I attempt to clone the source from the Git server, I end up with
>>> the following error:
>>>
>>> [kanagesh@localhost test]$ git-clone git://192.168.13.171/test-repo
>>
>> What is the git version on the client?
>>
>>> Initialized empty Git repository in /home/kanagesh/work/test/test-repo/.git/
>>> fatal: The remote end hung up unexpectedly
>>> fetch-pack from 'git://192.168.13.171/test-repo' failed.
>>>
>>> On checking the log messages in /var/log/messages, I see the following:
>>>
>>> May  7 17:29:19 localhost xinetd[17108]: START: git pid=17128
>>> from=::ffff:192.168.13.171
>>> May  7 17:29:19 localhost git-daemon: [17128] Connection from
>>> 192.168.13.171:42360
>>> May  7 17:29:19 localhost git-daemon: [17128] Extended attributes (21
>>> bytes) exist <host=192.168.13.171>
>>> May  7 17:29:19 localhost git-daemon: [17128] Request upload-pack for
>>> '/test-repo'
>>> May  7 17:29:19 localhost xinetd[17108]: EXIT: git status=255
>>> pid=17128 duration=0(sec)
>>>
>>> Can anyone tell me what I am doing incorrectly?  Any pointers on how
>>> to get a more verbose log from git-daemon would also be very helpful.
>>>
>>> Thanks in advance.
>>>
>>> Regards,
>>> Kanagesh
>>
>>

← back to recent threads