Betr: Re: Fw: Betr: Re: Many missing revlogs, do we have a problem?

Alban Hertroys alban.hertroys at apollovredestein.com
Fri Jun 19 09:21:07 UTC 2015


Matt Mackall <mpm at selenic.com> wrote on 18/06/2015 20:40:23:

> 

alban.hertroys at apollovredestein.com
T: 




 	Apollo Vredestein B.V. - P.O. Box 27 - 7500 AA  Enschede - The Netherlands - 
Chamber of Commerce number 34223268 - http://www.apollovredestein.com	 

The information contained in this e-mail is intended solely for the use of the 
individual or entity to whom it is addressed and others authorized to receive 
it. You are hereby notified that any disclosure, copying, distribution or 
action in relation to the contents of this information is strictly prohibited. 
If you are not the intended recipient, please delete this message and any 
attachments and advise the sender by return e-mail. The confidentiality of this 
message is not warranted. Apollo Vredestein B.V. rules out any and every 
liability resulting from this or any other electronic transmission.
 
On Thu, 2015-06-18 at 10:02 +0200, Alban Hertroys wrote:
> > Alban Hertroys/NL/AVBV wrote on 18/06/2015 09:57:15:
> > 
> > > Simon King <simon at simonking.org.uk> wrote on 17/06/2015 18:11:06:
> > 
> > > > In your (backup of the) master repository, do you have a file 
called
> > > > .hg/store/data/fncache?
> > 
> > > Nope.
> > 
> > Scratch that, now that I've had coffee I can see that file. However, 
it's 
> > in the store/ directory instead of data/. The same goes for my local 
copy 
> > that does verify OK-ish.
> 
> If Mercurial says your problem is that thousands of revlogs (aka files)
> have gone missing, it's probably not lying. Just take one of the
> filenames, check its existence on the client and server. They live
> in .hg/store/data. Since Mercurial never deletes these files.. the cause
> is probably elsewhere.

That doesn't appear to be true.

With the first random one I picked, it appears that the entire directory 
is missing from the rev-log:
        data/CustomerRelatedRep/prodlin.mas.i at 0: missing revlog!

        There is a file: 
"T:\ibi\apps\.hg\store\data\_customer_related_rep\prodlin.mas.i"

The second random file however, does exist:
        data/1_aandp/yfabbb.acx.i at 0: missing revlog!

        There is a file: 
"T:\ibi\apps\.hg\store\data\1__aandp\yfabbh.acx.i"

In fact, it turns out that ALL the files that hg verify complains about 
are in fact there!

How I figured that out:
 I applied character replacements for [A-Z_] and for '/.' to a store/data 
file-listing that I wrote to a file and sorted the results.
 Then I stripped the hg verify output down to the file-names.
 A diff between the two files showed that there are no differences!
This was a step-by-step process (done in ViM) I saw the number of 
differences reduce during the process of replacing and sorting.

So it looks like Mercurial actually _can_ be wrong about missing revlogs, 
at least if it does indeed mean that the file isn't there.


So far it looks like the fncache got truncated and apparently that can 
cause these symptoms. I'm just echoing what I've been told here, my 
knowledge on this topic is fairly limited - you're the expert.

There is a journal backup file (that's the file that we were having 
locking issues with! Related?), but that one's even smaller than the 
fncache file itself. Is that normal?

I'm starting to suspect that something happened to the fncache file and 
that it got "repaired" using a damaged journal or something...

Is there some way to recreate the fncache in an existing clone?

Regards,

Alban.





More information about the Mercurial mailing list