atom feed29 messages in com.selenic.mercurialRepo corrupted again, no idea why
FromSent OnAttachments
Luis NavarroOct 1, 2010 10:19 am 
Mads KiilerichOct 1, 2010 10:44 am 
Luis NavarroOct 1, 2010 11:14 am 
Adrian BuehlmannOct 1, 2010 1:37 pm 
Luis NavarroOct 1, 2010 10:56 pm 
Adrian BuehlmannOct 2, 2010 2:02 am 
Christian EbertOct 2, 2010 3:31 am 
Adrian BuehlmannOct 2, 2010 4:55 am 
Dan Villiom Podlaski ChristiansenOct 2, 2010 5:17 am 
Christian EbertOct 2, 2010 5:45 am 
Christian EbertOct 2, 2010 5:49 am 
Mads KiilerichOct 2, 2010 9:24 am 
Gavin ErryOct 2, 2010 9:35 am 
Mads KiilerichOct 2, 2010 9:51 am 
Tony MechelynckOct 3, 2010 1:44 am 
Adrian BuehlmannOct 3, 2010 2:00 am 
Adrian BuehlmannOct 3, 2010 3:49 am 
Gavin ErryOct 3, 2010 10:48 am 
Luis NavarroOct 3, 2010 2:56 pm 
Mads KiilerichOct 3, 2010 4:22 pm 
Adrian BuehlmannOct 3, 2010 4:25 pm 
Luis NavarroOct 4, 2010 8:55 pm 
Florin DaneliucOct 6, 2010 2:04 am 
Mads KiilerichOct 6, 2010 2:12 am 
Florin DaneliucOct 6, 2010 2:23 am 
Mads KiilerichOct 6, 2010 4:07 am 
Hans MeineOct 7, 2010 1:18 am 
Tony MechelynckOct 7, 2010 1:46 am 
Hans MeineOct 7, 2010 2:16 am 
Subject:Repo corrupted again, no idea why
From:Luis Navarro (luna@gmail.com)
Date:Oct 1, 2010 10:19:41 am
List:com.selenic.mercurial

(I originally submitted this to the TortoiseHG mailing list and it was suggested to re-post this here)

I have a Mercurial/TortoiseHG installation that's been running cleanly for a few months. However, in the past week, one of my users has managed to get into two situations that have resulted in repository corruption and I can't figure out why.

The most recent problem arose when the user was pushing changes from our staging repo to our production repo. The production repo is set up with changegroup hooks to (a) automatically update the production files and (b) send a notification e-mail (using the "notify" extension).

The push generated the following error:

pushing to y:\production\ searching for changes adding changesets adding manifests adding file changes added 2 changesets with 0 changes to 0 files warning: changegroup hook exited with status -1 [command completed successfully Tue Sep 28 16:02:29 2010] error: changegroup.notify hook raised an exception: data/web/shared/pubs/workshops/index.cfm.i@919619b0c5ef: no match found

Is there a way to get Mercurial/THG to provide more verbose information, preferably logging to a file so I don't have to count on my users diligently sending me error info? If there's some sort of problem at the file system or disk level, I would expect Mercurial/THG to log an error somewhere that says something like "couldn't write file xyz - err # 123" so I can debug these sorts of things after the fact.

After this error, I ran "verify" on the staging and production repos and got the following results:

Staging repo:

repository uses revlog format 1 checking changesets checking manifests crosschecking files in changesets and manifests checking files web/shared/pubs/workshops/index.cfm@?: rev 1 points to unexpected changeset 116 (expected 117) 1 warnings encountered! 1 integrity errors encountered! 8515 files, 119 changesets, 8669 total revisions

Production repo:

repository uses revlog format 1 checking changesets checking manifests crosschecking files in changesets and manifests checking files web/shared/pubs/workshops/index.cfm@117: 919619b0c5ef in manifests not found 1 integrity errors encountered! (first damaged changeset appears to be 117) 8515 files, 119 changesets, 8668 total revisions [command returned code 1 Tue Sep 28 17:30:15 2010]

(The dev repo passes "verify" with no errors)

I know how to fix these repos (by cloning them to the changeset before the bad one and re-adding/updating the files in the bad changeset) but its a bit of a hassle since these repos are large (over 2 GB each).

I've got copies of all 3 repositories and am happy to provide any additional info needed to root cause this. I tried to reproduce this problem but had no luck. The problem seems to be a combination of changesets 116-118 so I made clones of staging and production at changeset 115 and used a backup of the corrupted dev repo (still at 118) and had no problems this time pushing changesets 116-118 from dev to staging and then from staging to production.

My big question is what's causing this corruption and how do I prevent it? I'm really happy with Mercurial and THG so far but am concerned they may be a bit too fragile for my users.

Thanks!