Subject: GIT get corrupted on lustre

From: Eric Chamberland <[email-masked]>
Date: Mon, 24 Dec 2012 09:08:46 -0500

Hi,

we are using git since may and all is working fine for all of us (almost 
20 people) on our workstations.  However, when we clone our repositories 
to the cluster, only and only there
we are having many problems similiar to this post:

http://thread.gmane.org/gmane.comp.file-systems.lustre.user/12093

Doing a "git clone" always work fine, but when we "git pull" or "git gc" 
or "git fsck", often (1/5) the local repository get corrupted.
for example, I got this error two days ago while doing "git gc":

error: index file .git/objects/pack/pack-7b43b1c613a851392aaf4f66916dff2577931576.idx is too small
error: refs/heads/mail_seekable does not point to a valid object!

also, I got this error 5 days ago:

error: index file .git/objects/pack/pack-ef9b5bbff1ebc1af63ef4262ade3e18b439c58af.idx is too small
error: refs/heads/mail_seekable does not point to a valid object!
Removing stale temporary file .git/objects/pack/tmp_pack_lO7aw2

and this one some time ago:

Removing stale temporary file .git/objects/pack/tmp_pack_5CHb2F
Removing stale temporary file .git/objects/pack/tmp_pack_GY159g
Removing stale temporary file .git/objects/pack/tmp_pack_aKkXTS

We are using git 1.8.0.1 on CentOS release 5.8 (Final).

We think it could be related to the fact that we are on a *Lustre* 
filesystem, which I think doesn't fully support file locking.

Questions:

#1) However, how can we *test* the filesystem (lustre) compatibility 
with git? (Is there a unit test we can run?)

#2) Is there a way to compile GIT to be compatible with lustre? (ex: no 
threads?)

#3) If you *know* your filesystem doesn't allow file locking, how would 
you configure/compile GIT to work on it?

#4) Anyone has another idea on how to solve this?

Thanks,

Eric