threads / discuss / 12775

strange git delays

Subject: strange git delays

## tl;dr

4 messages between Mar 20, 2008 and Mar 20, 2008.

replies: 3people: 4as markdown or json

James Utter· Mar 20, 2008, 13:32 UTC · lore
Hi,

Many git operations are running really slowly for me. For example 'git commit' and 'git branch' are taking 10 seconds to complete, even on an almost empty repository, and no longer on a 60MB repository with plenty of history.

There does not appear to be any CPU or disk activity caused by git.
I would appreciate your help in resolving this problem.
Regards,
James Utter

Details of my environment: ------------------------------- Linux 2.6.24-1-amd64 #1 SMP x86_64 (from debian testing) [1] git-core 1:1.5.4.3-1 (from debian testing) [2] Core 2 duo, 2Ghz

[1] I have been experiencing this problem across several kernels [2] possibly over several git versions too (not sure)

Here is a test run on my computer --------------------------------- james@timesink:~$ mkdir testgit james@timesink:~$ cd testgit/ james@timesink:~/testgit$ time git init-db Initialized empty Git repository in .git/

real 0m0.013s user 0m0.000s sys 0m0.008s james@timesink:~/testgit$ echo "hai there" > hello james@timesink:~/testgit$ time git add .

real	0m0.103s
user	0m0.000s
sys	0m0.004s
james@timesink:~/testgit$ time git commit --message "initial commit"
Created initial commit 4f4b3a3: initial commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 hello

real 0m10.008s user 0m0.000s sys 0m0.008s james@timesink:~/testgit$ time git branch new

real 0m10.006s user 0m0.000s sys 0m0.004s james@timesink:~/testgit$ time git branch -d new Deleted branch new.

real	0m0.005s
user	0m0.000s
sys	0m0.004s
james@timesink:~/testgit$ echo "im in ur git\n slowin ur workflo" >>
hello
james@timesink:~/testgit$ time git commit -a --message "how long"
Created commit 2392de6: how long
 1 files changed, 1 insertions(+), 0 deletions(-)

real 0m10.059s user 0m0.000s sys 0m0.008s

Johannes Sixt· Mar 20, 2008, 14:05 UTC · re: James Utter · lore

Re: strange git delays

James Utter schrieb:
Show 6 quoted lines
> Many git operations are running really slowly for me.
> For example 'git commit' and 'git branch' are taking 10 seconds to
> complete, even on an almost empty repository, and no longer on a 60MB
> repository with plenty of history.
> 
> There does not appear to be any CPU or disk activity caused by git.
...
Show 8 quoted lines
> james@timesink:~/testgit$ time git commit --message "initial commit"
> Created initial commit 4f4b3a3: initial commit
>  1 files changed, 1 insertions(+), 0 deletions(-)
>  create mode 100644 hello
> 
> real	0m10.008s
> user	0m0.000s
> sys	0m0.008s
What does
  strace -c git commit --message "initial commit"
report? 'strace -tt' or 'strace -T'?
-- Hannes
Johannes Schindelin· Mar 20, 2008, 14:19 UTC · re: James Utter · lore

Re: strange git delays

Hi,
On Fri, 21 Mar 2008, James Utter wrote:
Show 8 quoted lines
> james@timesink:~/testgit$ time git commit --message "initial commit"
> Created initial commit 4f4b3a3: initial commit
>  1 files changed, 1 insertions(+), 0 deletions(-)
>  create mode 100644 hello
> 
> real	0m10.008s
> user	0m0.000s
> sys	0m0.008s
I'd try to oprofile it to know what is taking so long.

Hth, Dscho

Linus Torvalds· Mar 20, 2008, 21:53 UTC · re: James Utter · lore

Re: strange git delays

On Fri, 21 Mar 2008, James Utter wrote:
Show 9 quoted lines
>
> james@timesink:~/testgit$ time git commit --message "initial commit"
> Created initial commit 4f4b3a3: initial commit
>  1 files changed, 1 insertions(+), 0 deletions(-)
>  create mode 100644 hello
> 
> real	0m10.008s
> user	0m0.000s
> sys	0m0.008s
Ok, that is almost exactly 10 seconds longer than it should take.

And I can almost guarantee that it's something like a problem looking up your hostname or perhaps user identity - I would guess you have some name service problem.

Do an
	strace -tT git commit --message "initial commit"

on that git commit to make sure, but I would almost bet that it's when git does tget "getpwuid()" thing to get your name from the gecos fields, and you have some setup problem with nscd o similar.

It might just go away if you set up your user name and email manually, ie try doing

	git config --global user.name "James Utter"
	git config --global user.email james.utter@gmail.com

and see if that makes the delay go away. It probably tries to look up your login info from some non-existent NIS setup, and then times out after ten seconds and picks the data from your /etc/passwd file instead.

(There can be other things that do similar things - misconfigured name servers etc can cause delay etc. So maybe I'm wrogn on blaming nscd, but it would be my first guess).

		Linus

← back to recent threads