threads / discuss / 13011

git repo being corrupted?

Subject: git repo being corrupted?

## tl;dr

6 messages between Apr 7, 2008 and Apr 7, 2008.

replies: 5people: 3as markdown or json

Luke Diamand· Apr 7, 2008, 10:04 UTC · lore
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· Apr 7, 2008, 11:17 UTC · re: Luke Diamand · lore

Re: git repo being corrupted?

On Mon, Apr 07, 2008 at 11:04:17AM +0100, Luke Diamand wrote:
Show 8 quoted lines
> 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.
Show 6 quoted lines
> (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· Apr 7, 2008, 11:21 UTC · re: Luciano Rocha · lore

Re: git repo being corrupted?

Luciano Rocha wrote:
Show 5 quoted lines
>> 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· Apr 7, 2008, 11:39 UTC · re: Luke Diamand · lore

Re: git repo being corrupted?

On Mon, Apr 07, 2008 at 12:21:40PM +0100, Luke Diamand wrote:
Show 9 quoted lines
> 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· Apr 7, 2008, 16:15 UTC · re: Luciano Rocha · lore

Re: git repo being corrupted?

On Mon, Apr 07, 2008 at 12:39:21PM +0100, Luciano Rocha wrote:
Show 7 quoted lines
>> > 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· Apr 7, 2008, 16:47 UTC · re: David Brown · lore

Re: git repo being corrupted?

On Mon, Apr 07, 2008 at 09:15:25AM -0700, David Brown wrote:
Show 10 quoted lines
>  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

← back to recent threads