Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-4733

Get error "Failed to create database - directory already exists" when attempting to connect to a database that failed during creation

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 10.6.1.0
    • Fix Version/s: None
    • Component/s: Store
    • Environment:
      Windows XP
    • Urgency:
      Urgent
    • Bug behavior facts:
      Data corruption

      Description

      If you exit a process that is in the middle of creating a database, then when you try to access the same database again, you get the error "Failed to create database 'foo', see next exception" followed by "Directory xxx already exists".

      A stack trace is below. I am attaching a simple program that reproduces. Just try running it multiple times. I hit this after the second try.

      Opening database
      java.sql.SQLException: Failed to create database 'corruptme', see the next exception for details.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
      at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
      at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
      at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source)
      at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
      at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
      at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
      at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
      at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
      at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at CorruptMePlease$CreateTableTask.run(CorruptMePlease.java:34)
      at java.lang.Thread.run(Unknown Source)
      Caused by: java.sql.SQLException: Failed to create database 'corruptme', see the next exception for details.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
      ... 14 more
      Caused by: java.sql.SQLException: Directory C:\vontu\depot\sandbox_incremental\DerbyCorruption\corruptme already exists.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
      at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
      at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
      ... 11 more
      Caused by: ERROR XBM0J: Directory C:\vontu\depot\sandbox_incremental\DerbyCorruption\corruptme already exists.
      at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
      at org.apache.derby.impl.services.monitor.StorageFactoryService$9.run(Unknown Source)
      at java.security.AccessController.doPrivileged(Native Method)
      at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source)
      at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)
      at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source)
      at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source)
      ... 11 more

        Attachments

        1. corruptme.zip
          7 kB
          David Van Couvering
        2. CorruptMePlease.java
          2 kB
          David Van Couvering

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                davidvc David Van Couvering
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: