Kathey Marsden created DERBY-5766:
-------------------------------------

             Summary: BaseDataFileFactory.boot() should log the exception that 
causes it to boot the database read only 
                 Key: DERBY-5766
                 URL: https://issues.apache.org/jira/browse/DERBY-5766
             Project: Derby
          Issue Type: Bug
          Components: Store
    Affects Versions: 10.9.0.0
            Reporter: Kathey Marsden


In BaseDataFileFactory.boot() there is code that tries to write to the lock 
file. If it cannot, and gets an IOException  it assumes the database is read 
only.  I think that we should log that the database is booting read only and 
why and if it is not specifically a permission error log the exception stack 
trace.

 

           fileLockOnDB = fileLock.getRandomAccessFile( "rw");
            fileLock.limitAccessToOwner();

            // write it out for future reference
            fileLockOnDB.writeUTF(myUUID.toString()); 

            fileLockOnDB.sync();
            fileLockOnDB.seek(0);
            // check the UUID
            UUID checkUUID = uuidFactory.recreateUUID(fileLockOnDB.readUTF());
            if (!checkUUID.equals(myUUID))
            {
                throw StandardException.newException(
                    SQLState.DATA_MULTIPLE_JBMS_ON_DB, databaseDirectory);
            }
        }
        catch (IOException ioe)
        {
            // probably a read only db, don't do anything more
            readOnly = true;
            try
            {
                if (fileLockOnDB != null)
                    fileLockOnDB.close();
            }
            catch (IOException ioe2)
            { /* did the best I could */ }
            fileLockOnDB = null;

            return;
        }



I think this code can be exercised by creating a database and exiting without 
shutdown. Then change permission on the db.lck  and dbex.lck files. It occurs 
often in the field when multiple users with incompatible permissions/umasks 
access the derby database.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to