monotone-devel
[Top][All Lists]
Advanced

[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.




reply via email to

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