From: Andy Whitcroft <apw@shadowen.org>
To: Andreas Ericsson <ae@op5.se>
Cc: "Michael S. Tsirkin" <mst@mellanox.co.il>,
Junio C Hamano <junkio@cox.net>,
git@vger.kernel.org
Subject: Re: tree corrupted on disk quota full
Date: Thu, 11 Jan 2007 13:43:30 +0000 [thread overview]
Message-ID: <45A63F02.5010600@shadowen.org> (raw)
In-Reply-To: <45A63E59.7030009@op5.se>
Andreas Ericsson wrote:
> Michael S. Tsirkin wrote:
>> I hit a quota limit on a disk my tree was on, but did not notice.
>> Doing git pull on a tree seems to have corrupted it.
>> Now I have:
>>
>> $ git-fsck-objects
>> error: 4d4d30be967d3284cbf59afd4fba6ab536e295f5: object not found
>> error: c03590b581d51d5fa43adbef9415e935d0229412: object not found
>> missing tree 10147d79b2418168d9433067b6439971bd4f1261
>> broken link from commit 322a6c93ad86d2a151dd97a4c6b0e014a4893437
>> to tree 10147d79b2418168d9433067b6439971bd4f1261
>> dangling commit 322a6c93ad86d2a151dd97a4c6b0e014a4893437
>>
>> The tree can not be pulled into, or from.
>>
>
> Can you do a "git rev-list" on the commit pointing to this tree? If so,
> you should be able to do "git reset HEAD~1" and re-do the fetch.
>
> Otoh, this is curious. Aren't tree- and blob-objects written to disk
> before the commit object pointing to them? If not, how can we claim to
> support atomic commits? I imagined things were written in this order
>
> blob -> tree -> commit
>
> seeing as the dependency chain goes the other way.
>
> "git repair" could easily be cooked up by finding the first complete
> commit and resetting current HEAD and all branches pointing to it to
> that first complete commit. Issuing a fresh "fetch" after that should
> automagically fix everything for you.
Well we do have some dubious code which can fail in the face of short
writes when the disk is full. Those I believe are now plugged following
my short i/o series which is in master as far as I know.
I wonder if we can cook up a test with a loop back mount on a tiny ramfs
that will fail in this way.
-apw
next prev parent reply other threads:[~2007-01-11 13:43 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-11 12:57 tree corrupted on disk quota full Michael S. Tsirkin
2007-01-11 13:40 ` Andreas Ericsson
2007-01-11 13:43 ` Andy Whitcroft [this message]
2007-01-11 13:59 ` Michael S. Tsirkin
2007-01-11 14:28 ` Andreas Ericsson
2007-01-11 18:31 ` Linus Torvalds
2007-01-11 19:19 ` Linus Torvalds
2007-01-11 20:03 ` Linus Torvalds
2007-01-11 21:02 ` Junio C Hamano
2007-01-11 21:17 ` Andy Whitcroft
2007-01-11 21:27 ` Junio C Hamano
2007-01-11 22:09 ` Better error messages for corrupt databases Linus Torvalds
2007-01-12 0:40 ` Shawn O. Pearce
2007-01-11 21:59 ` tree corrupted on disk quota full Linus Torvalds
2007-01-11 22:10 ` Andy Whitcroft
2007-01-11 22:32 ` Linus Torvalds
2007-01-11 21:11 ` Michael S. Tsirkin
2007-01-11 21:50 ` Linus Torvalds
2007-01-11 21:58 ` Michael S. Tsirkin
2007-01-11 22:24 ` Linus Torvalds
2007-01-11 22:39 ` Michael S. Tsirkin
2007-01-12 0:42 ` Linus Torvalds
2007-01-12 0:51 ` Shawn O. Pearce
2007-01-13 0:53 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45A63F02.5010600@shadowen.org \
--to=apw@shadowen.org \
--cc=ae@op5.se \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=mst@mellanox.co.il \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.