db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kristian Waagan <Kristian.Waa...@Sun.COM>
Subject Re: Database corruption on crash during table creation
Date Tue, 06 Jul 2010 06:52:37 GMT
On 06.07.10 08:23, David Van Couvering wrote:
> Hi, all.  I seem to have a repeatable issue where my database is 
> getting corrupted, and I can only assume it's happening when the table 
> is getting created, because I know Derby is great on handling crashes 
> during normal operation.
> First of all - is it true that a Derby database can get corrupted if 
> the VM goes down in the middle of a DML like CREATE TABLE?
> What I'm seeing is that upon restart, when I try to access the 
> database, I get the error "unable to create database FOO: the 
> directory already exists."  The directory contains what appears to be 
> a Derby database, but apparently not enough of one.

Hi David,

It would be great if you can create a Jira and attach the contents of 
the database directory (or maybe just the output from find). Including a 
runnable repro would be even better :)
   o Can the issue be reproduced using ij only?
   o Is this reproducible when only a single process is 
accessing/modifying the database?

I believe there has been a few reports of the error message you 
mentioned, but so far no repro has been available.

Having a forceCreate option requires some thought, it would be 
unfortunate if Derby deleted (i.e. misuse or exploit) a bunch of 
user/system files. This wouldn't be such a big deal if everyone 
tightened the Java security policy for Derby, but I'm not sure that's 
the case...


> What I'm hoping for, is there a "forceCreate=true" kind of option when 
> opening a database that forces the creation of the database in the 
> given directory even if something is already there?
> Otherwise it appears my only option is to detect this specific error 
> ('directory already exists'), and then blow away what's there and try 
> again.  That's a chunk of work I'd rather not do, so I'm hoping you've 
> already addressed it (ahem :)).
> Thanks,
> David
> -- 
> David W. Van Couvering
> http://www.linkedin.com/in/davidvc
> http://davidvancouvering.blogspot.com
> http://twitter.com/dcouvering

View raw message