[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] database or disk is full
From: |
Nathaniel Smith |
Subject: |
Re: [Monotone-devel] database or disk is full |
Date: |
Fri, 5 Oct 2007 14:19:33 -0700 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
On Fri, Oct 05, 2007 at 07:54:51PM +0200, Benoît Dejean wrote:
> I'm rebuilding right now. This makes me very nervous about silent
> database corruption :/
Don't be too nervous -- as far as we can tell, it is some sort of
weird sqlite issue, and monotone doesn't actually trust sqlite not to
clobber and corrupt data all over the place. (Mostly we are
distrustful because sqlite is at the mercy of the hard drive, and hard
drives/disk controllers/filesystems like to do that sort of thing all
the time, but it applies to bugs in sqlite too.)
I can only think of two problems where monotone wouldn't notice the
issue and bail out before any further damage could be done. These
are:
-- if sqlite silently started forgetting about some certs or
returning weird result sets somehow, then we might silently act
as if those certs didn't exist, so e.g. you thought you had
checked out the head of the branch but actually you didn't. No
permanant harm done (you'll just have to merge up, just like you
would have if you hadn't pulled those certs at all), but could be
confusing.
-- if something managed to corrupt the data in your workspace
before we hashed it -- say from hard drive/filesystem issues,
or very precise (and unlikely) memory overflow that silently
corrupted the buffer full of data we just read, etc. -- then we
would go ahead and commit the corrupted data. (Basically we
couldn't tell this apart from you actually modifying the file in
the given way and then submitting that to "commit"; corrupt is in
the eye of the beholder.)
You can do also 'mtn db check' if it makes you feel better; that runs
all of mtn's high-level consistency checks, as well as sqlite's
built-in ones.
-- Nathaniel
--
IBM manual SENG-5155-01: Power Supply and Air Moving Device Installation
Instruction for iSeries 820 and 5075.