[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] db check after upgrade fails
From: |
Nathaniel Smith |
Subject: |
Re: [Monotone-devel] db check after upgrade fails |
Date: |
Sat, 22 Apr 2006 01:00:24 -0700 |
User-agent: |
Mutt/1.5.11 |
On Fri, Apr 21, 2006 at 07:16:15PM -0300, Jeronimo Pellegrini wrote:
> Hi.
>
> I just upgraded from monotone 0.25-2 to 0.26, following the instructions
> in the UPGRADE file.
> I used to have the .deb monotone 0.25-2 file on a sid box, and installed the
> .deb for 0.26.
>
> First I did:
>
> $ mtn db rosterify --db main.db
> mtn: calculating necessary migration steps
> mtn: migrating data
> mtn: committing changes to database
> $ mtn db rosterify -k my_new_key --db main.db
> mtn: converting existing revision graph to new roster-style revisions
> mtn: certs in | certs out | nodes | revs out
> mtn: 2,744 | 0 | 737 | 0
> mtn: scanning for bogus merge edges
> mtn: rebuilding 737 nodes
> mtn: certs in | certs out | nodes | revs out
> mtn: 2,744 | 2,744 | 737 | 737
>
> (The database got smaller, as mentioned in the release notes -- great
> work!)
>
> -rw-r--r-- 1 jeronimo jeronimo 39649280 2006-04-21 19:01 main.db
> -rw-r--r-- 1 jeronimo jeronimo 53411840 2006-04-21 18:48
> main.db-BACKUP-BEFORE-UPGRADE
>
> OK, so I did:
>
> $ mtn db check --db main.db
>
> And I got a long list of errors:
>
> mtn: file 025956f13beceec4cca7393659b05de8e71e5bd0 unreferenced
> mtn: file 094b2ed953a07ff3a82efbf82b502b8035340df4 unreferenced
> ...
> mtn: revision 00f8c20566a8c25b340d03738b6b392da43fa1b8 missing branch cert
> mtn: revision 01192e87a971615ce36c7812d0cc4b5de2a8d8b0 missing branch cert
> ...
> mtn: revision 38a42fef05f9faab97f384c48b65ced421c9d6ef mismatched certs (1
> authors 2 dates 1 changelogs)
> mtn: revision f24059f68e450fd6151551a3520e63e3b9072c89 missing branch cert
> ...
> mtn: warning: 38 unreferenced files
> mtn: warning: 209 missing certs
> mtn: warning: 1 mismatched certs
> mtn: check complete: 1,977 files; 737 rosters; 737 revisions; 3 keys;
> 2,744 certs
> mtn: total problems detected: 248 (209 serious)
> mtn: error: serious problems detected
Probably there's no problem here. The unreferenced files are a normal
side-effect of rosterify -- the db still contains entries for the old
.mt-attrs files, but 'rosterify' moves all the data in them into
real-first class attrs and then leaves the actual old files out of the
new manifests it generates.
The missing branch certs are slightly odd -- normally every revision
is in at least one branch, and it's warning you that you have 209 revs
that aren't in any. This can be perfectly normal -- for instance, if
branch 'foo' was merged into branch 'bar', and then you do a pull of
branch 'bar', then all the revisions in branch 'foo' will be pulled
but their branch certs will not be. Normally, though, you wouldn't
want to be running 'rosterify' on a database like this -- you'd want
to run rosterify on a database that had complete information in it?
If you're curious about what those revisions might be, you can use the
revision ids it printed out to investigate further :-).
It might be interesting to run 'db check' on the old database with
0.25, for comparison.
In any case, these "problems" are not really problems, just somewhat
unusual things. It's entirely possible that everything listed is
exactly how you want it to be, and nothing in your output means any
data is corrupted, or that monotone will get confused when trying to
use your database.
-- Nathaniel
--
"...these, like all words, have single, decontextualized meanings: everyone
knows what each of these words means, everyone knows what constitutes an
instance of each of their referents. Language is fixed. Meaning is
certain. Santa Claus comes down the chimney at midnight on December 24."
-- The Language War, Robin Lakoff