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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox