monotone-devel
[Top][All Lists]
Advanced

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

RE: [Monotone-devel] fatal error question


From: Nathaniel Smith
Subject: RE: [Monotone-devel] fatal error question
Date: Thu, 18 Nov 2004 02:40:26 -0800

>===== Original Message From Jeff Bowman <address@hidden> =====
>monotone: fatal: std::logic_error: netsync.cc:565: invariant 'I(j !=
>attach_map.end())' violated

If you look at the archives some, this is a little bug in 0.15's netsync 
implementation that is fixed now.  The bug prevents pushing the fix to the 
usual server, though, until Graydon gets back from his trip to Boston and can 
upgrade the server...

In the mean time, there's a x86 linux binary at:
  http://www.fresco.org/~njs/monotone.bz2
and a source snapshot at:
  http://www.fresco.org/~njs/monotone-snapshot.tar.gz
and in theory the source is available at Joel Rosdahl's server, though I'm 
getting connection refused right now:
  http://lists.gnu.org/archive/html/monotone-devel/2004-11/msg00024.html

>so, the question is, when errors like this happen, how does one recover. This 
is
>a lot of effort for some of my users to try to figure out. I'm not always
>available to help walk them through processes like this.

Simplest is to post a bug report to the mailing list and wait a bit :-)

Second simplest is to wait a week or two for the new code in the changesets 
branch to stabilize a bit; the changesets update was a pretty major change in 
monotone's guts, and people only started using it to flush the bugs out about 
a week ago... of course, it will go faster if you help flush them out too :-)

>Also, haveing created the second db and syncing with another user (jim in 
this
>case) can I delete the original db and rename the second to the original?

Not entirely sure what the question here is, but yes, in general, monotone 
databases are just ordinary files that you can rename, copy, delete etc. as 
you want.  (The only little caveat is that if you have a database foo.db, and 
there's a stray file called foo.db-journal, then run 'monotone --db=foo.db ls 
keys' or something before renaming your database; the -journal file is created 
by sqlite and contains rollback information for after a monotone process was 
killed or the like.  Losing or deleting this file can cause corruption.  
Running any monotone command against the database will automatically perform 
the rollback and delete the journal file.  See 
http://www.sqlite.org/lockingv3.html section 6.0 for more information.  
...This is really not that big a concern most of the time, though; the way 
monotone is written, it's almost impossible to get it to actually crash -- 
kill -9 and power outages are the only likely ways to actually get into this 
state.)

The only other thing to watch out for is that after a netsync 'sync' that 
covers everything in the database, the two databases should be identical, 
_except_ that private keys are not transferred by netsync; currently the only 
way to get private keys out of a database is to use 'monotone privkey' to 
generate an ascii packet, and the only way to get private keys into a database 
is by feeding that packet into 'monotone read'.

-- Nathaniel






reply via email to

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