|Luis Navarro||Oct 1, 2010 10:20 am|
|Mads Kiilerich||Oct 1, 2010 10:44 am|
|Luis Navarro||Oct 1, 2010 11:14 am|
|Adrian Buehlmann||Oct 1, 2010 1:37 pm|
|Luis Navarro||Oct 1, 2010 10:56 pm|
|Adrian Buehlmann||Oct 2, 2010 2:02 am|
|Christian Ebert||Oct 2, 2010 3:31 am|
|Adrian Buehlmann||Oct 2, 2010 4:55 am|
|Dan Villiom Podlaski Christiansen||Oct 2, 2010 5:17 am|
|Christian Ebert||Oct 2, 2010 5:46 am|
|Christian Ebert||Oct 2, 2010 5:50 am|
|Mads Kiilerich||Oct 2, 2010 9:24 am|
|Gavin Erry||Oct 2, 2010 9:35 am|
|Mads Kiilerich||Oct 2, 2010 9:51 am|
|Tony Mechelynck||Oct 3, 2010 1:45 am|
|Adrian Buehlmann||Oct 3, 2010 2:01 am|
|Adrian Buehlmann||Oct 3, 2010 3:49 am|
|Gavin Erry||Oct 3, 2010 10:48 am|
|Luis Navarro||Oct 3, 2010 2:56 pm|
|Mads Kiilerich||Oct 3, 2010 4:22 pm|
|Adrian Buehlmann||Oct 3, 2010 4:26 pm|
|Luis Navarro||Oct 4, 2010 8:56 pm|
|Florin Daneliuc||Oct 6, 2010 2:05 am|
|Mads Kiilerich||Oct 6, 2010 2:13 am|
|Florin Daneliuc||Oct 6, 2010 2:23 am|
|Mads Kiilerich||Oct 6, 2010 4:08 am|
|Hans Meine||Oct 7, 2010 1:19 am|
|Tony Mechelynck||Oct 7, 2010 1:47 am|
|Hans Meine||Oct 7, 2010 2:17 am|
|Subject:||Repo corrupted again, no idea why|
|From:||Luis Navarro (luna...@gmail.com)|
|Date:||Oct 1, 2010 10:20:04 am|
(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:
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
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.