[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] Invariant violation in server
From: |
Jon Bright |
Subject: |
Re: [Monotone-devel] Invariant violation in server |
Date: |
Wed, 07 Apr 2004 19:37:15 +0200 |
User-agent: |
Mozilla Thunderbird 0.5 (Windows/20040207) |
Peter Simons wrote:
The server frequently crashes with the following error:
processing 16350 byte input buffer from peer 213.146.112.87:49586
netio.hh:31: invariant 'I(pos < str.size())' violated
db.execute("ROLLBACK")
The complete output with --verbose can be found here:
http://peti.cryp.to/log-server
Any idea what triggers this?
If it's the same as my recent problem with the same assertion, it's the
client sending a 0-size delta to the server. Try this on the client side:
monotone --db=blah.db debug 'select * from file_deltas where base=id;'
If this turns up rows, that's probably the problem. Furthermore, if the
source for the repository that's getting pushed to the server was an
import from a CVS repository, it's probably *exactly* the same problem.
CVS sometimes puts 0-size deltas - i.e. deltas that don't change
anything - in its RCS files (possibly it does this when the keyword
substitution options are changed? - this is just a suspicion). Monotone
faithfully imports these, where it in fact shouldn't, since the concept
of a 0-size delta is a) silly and b) not handled by the Monotone code.
For me, running the following command sorted the problem out:
monotone --db=blah.db debug 'delete from file_deltas where base=id;'
--
Jon Bright
Silicon Circus Ltd.
http://www.siliconcircus.com