You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by de...@db.apache.org on 2004/09/25 01:03:33 UTC

[jira] Commented: (DERBY-1) Can't create a new db on OS X

The following comment has been added to this issue:

     Author: Joseph Grace
    Created: Fri, 24 Sep 2004 4:01 PM
       Body:
This issue has been discussed on derby-dev including a patch which works on OSX and (I believe) should work elsewhere as well.  The relevant (thread and) post is:

http://nagoya.apache.org/eyebrowse/ReadMsg?listName=derby-dev@db.apache.org&msgNo=233

It actually includes a fix for another (I suspect) bug as well.

The gist of the fix is to change the write mode from "rws" (which causes an issue on OSX) to the less strenuous "rwd".  The difference is that "rws" keeps metadata synchronously (as well as data) whereas "rwd" just does the data (and only the metadata _necessary_ to ensure the data is recoverable).  IOW, it's quite possible that "rwd" is the preferred mode for a high performance database.

As for why "rws" has issues on OSX, the issue was unresolved as there are ambiguities in what OSX is doing, and what exactly "rws" should do under certain circumstances.  The interesting circumstance in this case is that a data file exists yet (presumably?) associated metadata files do not exist, possibly leading to the error.  That's my take on it anyway.  I have not had time to track it further, but it works with the patch on OSX.

-=-

I'm not sure what the process is to approve or disapprove my proposed patch.

---------------------------------------------------------------------
View this comment:
  http://issues.apache.org/jira/browse/DERBY-1?page=comments#action_53405

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/DERBY-1

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: DERBY-1
    Summary: Can't create a new db on OS X
       Type: Bug

     Status: Unassigned
   Priority: Major

    Project: Derby
   Versions:
             10.0.2.0

   Assignee: 
   Reporter: Tom Santos

    Created: Fri, 24 Sep 2004 2:22 PM
    Updated: Fri, 24 Sep 2004 4:01 PM
Environment: OS X 10.3.5, Java 1.4.2_05, Dual G5

Description:
This problem does not occur when I use the same jars on Linux.

I am unable to create a new database in ij by using the following command:

connect 'jdbc:derby:testdb;create=true';

I get the following output:

ERROR XJ041: Failed to create database 'testdb', see the next exception for details.
ERROR XBM01: Startup failed due to an exception, see next exception for details.
ERROR XJ001: Java exception: '/Users/tom/dev/java/derby-bin/lib/testdb/log/log1.dat (File exists): java.io.FileNotFoundException'.

All users have write permissions to the directory so it's not getting blocked there.  I'm not sure what's going on.  I've included the contents of derby.log below.  I've also included the result of running sysinfo on my machine below that.

----------------------------------------------------------------
2004-09-24 20:33:53.762 GMT:
 Booting Derby version IBM Corp. - Apache Derby - 10.0.2.0 - (30301): instance c013800d-00ff-3226-5601-00000015bd70
on database directory /Users/tom/dev/java/derby-bin/lib/testdb 


2004-09-24 20:33:53.821 GMT:
Shutting down instance c013800d-00ff-3226-5601-00000015bd70
----------------------------------------------------------------
2004-09-24 20:33:53.837 GMT Thread[main,5,main] Cleanup action starting
ERROR XBM01: Startup failed due to an exception, see next exception for details.
        at org.apache.derby.iapi.error.StandardException.newException(StandardException.java)
        at org.apache.derby.iapi.services.monitor.Monitor.exceptionStartingModule(Monitor.java)
        at org.apache.derby.impl.store.raw.log.LogToFile.boot(LogToFile.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
        at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
        at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.bootLogFactory(BaseDataFileFactory.java)
        at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.setRawStoreFactory(BaseDataFileFactory.java)
        at org.apache.derby.impl.store.raw.RawStore.boot(RawStore.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
        at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
        at org.apache.derby.impl.store.access.RAMAccessManager.boot(RAMAccessManager.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
        at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
        at org.apache.derby.impl.db.BasicDatabase.bootStore(BasicDatabase.java)
        at org.apache.derby.impl.db.BasicDatabase.boot(BasicDatabase.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java)
        at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java)
        at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java)
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java)
        at org.apache.derby.impl.jdbc.EmbedConnection20.<init>(EmbedConnection20.java)
        at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java)
        at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java)
        at org.apache.derby.jdbc.Driver169.connect(Driver169.java)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:140)
        at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java)
        at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java)
        at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java)
        at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java)
        at org.apache.derby.impl.tools.ij.Main.go(Main.java)
        at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java)
        at org.apache.derby.impl.tools.ij.Main14.main(Main14.java)
        at org.apache.derby.tools.ij.main(ij.java)
============= begin nested exception, level (1) ===========
java.io.FileNotFoundException: /Users/tom/dev/java/derby-bin/lib/log/log1.dat (File exists)
        at java.io.RandomAccessFile.open(Native Method)
        at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
        at org.apache.derby.impl.io.DirRandomAccessFile.<init>(DirRandomAccessFile.java)
        at org.apache.derby.impl.io.DirRandomAccessFile4.<init>(DirRandomAccessFile4.java)
        at org.apache.derby.impl.io.DirFile4.getRandomAccessFile(DirFile4.java)
        at org.apache.derby.impl.store.raw.log.LogToFile.run(LogToFile.java)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.derby.impl.store.raw.log.LogToFile.privRandomAccessFile(LogToFile.java)
        at org.apache.derby.impl.store.raw.log.LogToFile.boot(LogToFile.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
        at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
        at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.bootLogFactory(BaseDataFileFactory.java)
        at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.setRawStoreFactory(BaseDataFileFactory.java)
        at org.apache.derby.impl.store.raw.RawStore.boot(RawStore.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
        at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
        at org.apache.derby.impl.store.access.RAMAccessManager.boot(RAMAccessManager.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
        at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
        at org.apache.derby.impl.db.BasicDatabase.bootStore(BasicDatabase.java)
        at org.apache.derby.impl.db.BasicDatabase.boot(BasicDatabase.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java)
        at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java)
        at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java)
        at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java)
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java)
        at org.apache.derby.impl.jdbc.EmbedConnection20.<init>(EmbedConnection20.java)
        at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java)
        at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java)
        at org.apache.derby.jdbc.Driver169.connect(Driver169.java)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:140)
        at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java)
        at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java)
        at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java)
        at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java)
        at org.apache.derby.impl.tools.ij.Main.go(Main.java)
        at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java)
        at org.apache.derby.impl.tools.ij.Main14.main(Main14.java)
        at org.apache.derby.tools.ij.main(ij.java)
============= end nested exception, level (1) ===========
Cleanup action completed


------------------ Java Information ------------------
Java Version:    1.4.2_05
Java Vendor:     Apple Computer, Inc.
Java home:       /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home
Java classpath:  /Users/tom/dev/java/derby-bin/lib/derby.jar:/Users/tom/dev/java/derby-bin/lib/derbytools.jar:/Users/tom/dev/java/derby-bin/lib/derbynet.jar:/Users/tom/dev/java/derby-bin/lib/db2jcc.jar:/Users/tom/dev/java/derby-bin/lib/db2jcc_license_c.jar
OS name:         Mac OS X
OS architecture: ppc
OS version:      10.3.5
Java user name:  tom
Java user home:  /Users/tom
Java user dir:   /Users/tom/dev/java/derby-bin/lib
--------- Derby Information --------
[/Users/tom/dev/java/derby-bin/lib/derby.jar] 10.0.2.0 - (46005)
[/Users/tom/dev/java/derby-bin/lib/derbytools.jar] 10.0.2.0 - (46005)
[/Users/tom/dev/java/derby-bin/lib/derbynet.jar] 10.0.2.0 - (46005)
[/Users/tom/dev/java/derby-bin/lib/db2jcc.jar] 2.4 - (17)
[/Users/tom/dev/java/derby-bin/lib/db2jcc_license_c.jar] 2.4 - (17)
------------------------------------------------------
----------------- Locale Information -----------------
------------------------------------------------------




---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira