after crash: abort: 00changelog.i at ...: no mode

Benoit Boissinot bboissin at gmail.com
Sun Aug 16 09:50:10 CDT 2009


On Sun, Aug 16, 2009 at 4:32 PM, Lasse
Kliemann<lasse-list-mercurial-2009 at mail.plastictree.net> wrote:
> I did some crash tests running 'hg ci' on a large changeset and
> pulling the plug or switching off the computer during the
> process. Then I power the system back on, replay the log or run
> fsck and then see in which state the repository is. The goal was
> mainly to compare JFS to EXT3 on Linux.
>
[snip hg breaking with JFS]
>
> What do you think? Can this only be the result of a filesystem
> bug, or could it be that Mercurial is doing something wrong or
> did do something wrong?

Mercurial doesn't always issue fsync after every step, I think there
was a thread a couple of months ago about that, and why it won't
change.

But it might be a FS bug too, it depends of the kind of error you have.

>
> Can this condition be resolved manually?

Usually yes (hg verify can help to have a better overview what is
broken), either with hg clone -r, hg strip, or hg convert (or manually
changing the files). I have already done that kind of repo surgery.

>
> (With EXT3, on most occasions, 'hg recover' gives back a working
> repository. In a few cases, also with EXT3 I got damaged
> repositories comparable to the condition shown above; but that
> was with Mercurial 1.3.0, now I use 1.3.1. I has no problems to
> recover from a crash with EXT3 and Mercurial 1.3.1. so far.)
>

Has anything transaction-related changed between 1.3 and 1.3.1?

regards,

Benoit


More information about the Mercurial mailing list