# git repo being corrupted?

6 messages from 2008-04-07 to 2008-04-07. Participants: Luke Diamand, Luciano Rocha, David Brown.
Thread: https://gitlist.dev/t/13011

## Luke Diamand, 2008-04-07 10:04

Subject: git repo being corrupted?
Message-ID: <47F9F1A1.30009@diamand.org>
URL: https://gitlist.dev/e/47F9F1A1.30009%40diamand.org

```
I've recently started to notice the following being reported:

% git-status
error: bad index file sha1 signature
fatal: index file corrupt

(a) Is there anything I can do to fix this (apart from git-clone from
the repo and start over) ? git-fsck reports the same problem.

(b) What is causing it? Is it just my hard disk failing, or is it a bug?
A memory test seems to be OK.

Linux 2.6.22-3-amd64
File system is XFS
git version 1.5.4.4

```

## Luciano Rocha, 2008-04-07 11:17

Subject: Re: git repo being corrupted?
Message-ID: <20080407111740.GA12776@bit.office.eurotux.com>
URL: https://gitlist.dev/e/20080407111740.GA12776%40bit.office.eurotux.com
In-Reply-To: <47F9F1A1.30009@diamand.org>

```
On Mon, Apr 07, 2008 at 11:04:17AM +0100, Luke Diamand wrote:
> I've recently started to notice the following being reported:
> 
> % git-status
> error: bad index file sha1 signature
> fatal: index file corrupt
> 
> (a) Is there anything I can do to fix this (apart from git-clone from
> the repo and start over) ? git-fsck reports the same problem.

rm -f .git/index should do it.

> (b) What is causing it? Is it just my hard disk failing, or is it a bug?
> A memory test seems to be OK.
> 
> Linux 2.6.22-3-amd64
> File system is XFS
> git version 1.5.4.4

You're using XFS. Did you have a power fail in the recent past?

-- 
lfr
0/0

```

## Luke Diamand, 2008-04-07 11:21

Subject: Re: git repo being corrupted?
Message-ID: <47FA03C4.9030104@diamand.org>
URL: https://gitlist.dev/e/47FA03C4.9030104%40diamand.org
In-Reply-To: <20080407111740.GA12776@bit.office.eurotux.com>

```
Luciano Rocha wrote:

>> Linux 2.6.22-3-amd64
>> File system is XFS
>> git version 1.5.4.4
> 
> You're using XFS. Did you have a power fail in the recent past?

How did you know?

> 

```

## Luciano Rocha, 2008-04-07 11:39

Subject: Re: git repo being corrupted?
Message-ID: <20080407113921.GA13667@bit.office.eurotux.com>
URL: https://gitlist.dev/e/20080407113921.GA13667%40bit.office.eurotux.com
In-Reply-To: <47FA03C4.9030104@diamand.org>

```
On Mon, Apr 07, 2008 at 12:21:40PM +0100, Luke Diamand wrote:
> Luciano Rocha wrote:
> 
> >> Linux 2.6.22-3-amd64
> >> File system is XFS
> >> git version 1.5.4.4
> > 
> > You're using XFS. Did you have a power fail in the recent past?
> 
> How did you know?

XFS doesn't order metadata writes with data writes, so if the power
fails, it can find an update in the journal but the data wasn't written.
Then it fills the file with zeroes to the new size.

I've lost /etc/passwd once with that behaviour...

Also, ext3 doesn't order the metadata and data updates with
data=writeback, but the default is data=ordered, which does.

I use xfs, but only when I know I have at least daily backups (or on
systems with UPS and with UPS initiated orderly shutdowns).

-- 
lfr
0/0

```

## David Brown, 2008-04-07 16:15

Subject: Re: git repo being corrupted?
Message-ID: <20080407161525.GA25894@old.davidb.org>
URL: https://gitlist.dev/e/20080407161525.GA25894%40old.davidb.org
In-Reply-To: <20080407113921.GA13667@bit.office.eurotux.com>

```
On Mon, Apr 07, 2008 at 12:39:21PM +0100, Luciano Rocha wrote:

>> > You're using XFS. Did you have a power fail in the recent past?
>> 
>> How did you know?
>
>XFS doesn't order metadata writes with data writes, so if the power
>fails, it can find an update in the journal but the data wasn't written.
>Then it fills the file with zeroes to the new size.

This behavior should be a lot better for recent kernels.

xfs does even better with write barriers.  But any file change that is more
than one write can be corrupted or split by an inopportune powerdown.

David

```

## Luciano Rocha, 2008-04-07 16:47

Subject: Re: git repo being corrupted?
Message-ID: <20080407164738.GA4053@bit.office.eurotux.com>
URL: https://gitlist.dev/e/20080407164738.GA4053%40bit.office.eurotux.com
In-Reply-To: <20080407161525.GA25894@old.davidb.org>

```
On Mon, Apr 07, 2008 at 09:15:25AM -0700, David Brown wrote:
>  On Mon, Apr 07, 2008 at 12:39:21PM +0100, Luciano Rocha wrote:
> 
> >> > You're using XFS. Did you have a power fail in the recent past?
> >> How did you know?
> >
> > XFS doesn't order metadata writes with data writes, so if the power
> > fails, it can find an update in the journal but the data wasn't written.
> > Then it fills the file with zeroes to the new size.
> 
>  This behavior should be a lot better for recent kernels.

To be fair, it hasn't happened to me lately. But I haven't lost power
often, so I can't say it's fixed. ;)

>  xfs does even better with write barriers.  But any file change that is more
>  than one write can be corrupted or split by an inopportune powerdown.

Maybe, but I'm still waiting for barrier support through device-mapper.

-- 
lfr
0/0

```
