monotone-devel
[Top][All Lists]
Advanced

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

[Monotone-devel] Violated invariants, nasty server keys, ignored hooks


From: Oleg Polianski
Subject: [Monotone-devel] Violated invariants, nasty server keys, ignored hooks
Date: Wed, 27 Apr 2005 15:35:30 +1200
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.3.50 (gnu/linux)

Hi there,

 I have been pondering what I could have done wrong contemplating
 on these two use cases.

 1. I had a monotone 0.17 database created earlier on, which I have
    recently migrated on to the 0.18 format. Since that happened,
    I can't perform any file related operations anymore (add and drop
    in particular), `monotone' informs me of a violated invariant:

% monotone --db=../rmsgd.db.backup add README
monotone: fatal: std::logic_error: path_component.cc:53: invariant 
'I(!null_name(*i))' violated

    When I look into the MT/debug file, I can't find anything useful
    that would give me a clue or a hint of direction to look in,
    with the last several lines reporting

db.fetch("SELECT data FROM 'manifests' WHERE id = 
'439ddc4b78e2e8e858f29f2005293833c695440e'")
old manifest has 63 entries
work path is MT/work
checking for un-committed work file MT/work
read rearrangement from MT/work
'README' prefixed to 'README'
path_component.cc:53: invariant 'I(!null_name(*i))' violated

    The problem is persistent all the way down the project tree.
    Any real reason for that?

 2. To work the first problem around, I decided to afford the luxury
    of recreating the monotone database from scratch and do a fresh
    import of my source code on host X. Having done that, I went on
    to host Y, where I created another empty monotone database and
    attempted to do a full sync (X->Y). One of my intentions was for
    all previously generated and used private and public keys to
    stay the same, so after I had recreated each database, I had
    also extracted the keys from a backup copy of each one and then
    reloaded them (via `monotone read') into each database accordingly.
    Now, when I try to sync the Y database with the X database,
    `monotone' on the receiving side, among the lines, spits out

monotone: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
monotone: @ WARNING: SERVER IDENTIFICATION HAS CHANGED              @
monotone: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
monotone: IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY
monotone: it is also possible that the server key has just been changed
monotone: remote host sent key 88de5cc64a05fe7f3d17522e675cef860cce2ef7
monotone: I expected 549c2e9f3556ee5ba39f6bc00e8aa25d0f15a8c5

    The thing is that I don't have such a server key or anything
    that closely resembles the 549c2e9f3556ee5ba39f6bc00e8aa25d0f15a8c5
    fingerprint neither on the serving side nor on the sending
    side. This has left confused even more.

 There is actually a third slight problem, which stems from the
 collection of several different things, I guess, mostly related to
 fiddling with the private and public keys via the means of
 `monotone pubkey/privkey' and the subsequent `monotone read' and
 expresses itself as ignoring the `get_passphrase' hook in my
 `~/.monotonerc' file that worked before just beatifully.

 I still have a glimmer of hope that I would not have to go through
 all of this each time I upgrade the monotone binary and I would
 appreciate any help in dealing with these peculiarities of the
 monotone's behaviour. Additional information can be easily
 provided, should that be required.

Thanks,
Oleg





reply via email to

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