lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <46424896.8080506@goop.org>
Date:	Wed, 09 May 2007 15:17:58 -0700
From:	Jeremy Fitzhardinge <jeremy@...p.org>
To:	Matt Mackall <mpm@...enic.com>
CC:	David Chinner <dgc@....com>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: 2.6.21-git10/11: files getting truncated on xfs? or maybe an
 nlink problem?

Matt Mackall wrote:
>> Mercurial uses a strictly append-only model for updating its repo files,
>> but it looks like maybe an append operation didn't stick.
>>     
>
> (Unless you're using the mq extension, which regularly truncates
> files. But you're definitely the first person to run into this sort of
> thing in any case.)
>   

Which I am, extensively, but not on the repo that got damaged.  That's
why I was wondering about the nlink issues.  If I qpop a bunch of
patches after just pushing them, won't it simply truncate the file?

The repo which got damaged is the one I pull kernel.org/linux-2.6 into,
and use it as a source for clone/pull into my actual working repos.

> I think if the files are identical up to the truncation point, we can
> rule out nlink concerns. If for some reason Mercurial's COW logic got
> fooled, the result would be a bit of a jumble at the end. And you'd be
> unlikely to hit any sort of race as a single user on a laptop.
>   

OK.  It looks

> Can you use hg debugindex to determine if the truncation point
> corresponds with a whole delta or whether it's in the middle of a
> delta? 
>   

Appears to be on a delta boundary, exactly 47 revisions short:

 55547  201166570      72  55486   55561 fec059c8328e 4edafd81aa44 000000000000
 55548  201166642      72  55486   55562 96c054b45299 fec059c8328e 000000000000
 55549  201166714     108  55486   55563 93316f167674 96c054b45299 000000000000

vs

 55594  201568678      78  55486   55608 38c05617f083 5fe2b556c548 000000000000
 55595  201568756      68  55486   55609 4b89463f4bdd 38c05617f083 000000000000
 55596  201568824      81  55486   55610 bcdb471d4ba1 4b89463f4bdd 000000000000


> For noninterleaved revlogs like your manifest above, the .i file is an
> index build of a collection of 64-byte entries. It's pretty hard to
> imagine how you'd lose 8 bytes since all I/O is done in multiples of
> 64-bytes. Oh, I'm misreading that - they differ by 3008 bytes, which
> is 47 * 64. 
>   

Yep.

    J

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ