monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] issue 201; missing certs are easily generated, but repo


From: Stephen Leake
Subject: [Monotone-devel] issue 201; missing certs are easily generated, but reported as a serious problem
Date: Sat, 23 Jun 2012 15:14:26 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (windows-nt)

I'd like to fix issue 201. 

I've added a simple test for it; pull_branch_vs_db_check.

The problem arrises when we propagate 'testbranch' to 'otherbranch', and
then pull with a branch pattern of 'otherbranch'; revisions that had
only 'testbranch' branch certs in the source database now have no branch
cert in the local database.

db check reports this as a serious error:

mtn: revision 114f6aa58c7707bf83516d4080ca6268c36640ad missing branch cert
mtn: warning: 1 missing certs
mtn: check complete: 2 files; 2 rosters; 2 revisions; 1 keys; 7 certs; 3 
heights; 1 branches
mtn: total problems detected: 1 (1 serious)
mtn: error: serious problems detected


The user manual 'db check' section says about missing certs:

        * revisions with missing certs that exist in the database
          lacking at least one author, branch, changelog or date cert.
          All revisions are expected to have at least one of each of
          these certs.  In itself, this is not necessarily a problem,
          but it is peculiar, and some operations such as netsync may
          behave strangely.

Anyone have a use case for the 'strange netsync behavior' caused by
this?

Attempting to pull from the local db with a branch pattern of
'testbranch' will pull nothing. But I don't think that's 'strange'; it's
a consequence of the maintenance policy on the database.


One fix is very simple; in database_check.cc, take missing_certs out of
the 'serious' sum. Then 'db check' reports:

mtn: revision 114f6aa58c7707bf83516d4080ca6268c36640ad missing branch cert
mtn: warning: 1 missing certs
mtn: check complete: 2 files; 2 rosters; 2 revisions; 1 keys; 7 certs; 3 
heights; 1 branches
mtn: total problems detected: 1 (0 serious)
mtn: minor problems detected


On the other hand, perhaps some certs are more important than others? We
could count branch certs separately from author and date, and then just
leave missing_branch_certs out of the 'serious' sum.

-- 
-- Stephe



reply via email to

[Prev in Thread] Current Thread [Next in Thread]