db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <j...@apache.org>
Subject [jira] Created: (DERBY-4072) shutdown with incorrect permission on log files shows java.lang.NullPointerException at org.apache.derby.impl.store.raw.log.LogToFile.flush(LogToFile.java:3964). Should give bettter message.
Date Wed, 25 Feb 2009 22:53:01 GMT
shutdown with incorrect permission on log files shows java.lang.NullPointerException  at org.apache.derby.impl.store.raw.log.LogToFile.flush(LogToFile.java:3964).
 Should give bettter message.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: DERBY-4072
                 URL: https://issues.apache.org/jira/browse/DERBY-4072
             Project: Derby
          Issue Type: Bug
          Components: Store
    Affects Versions: 10.4.2.0, 10.3.3.0, 10.2.2.0, 10.1.3.1, 10.5.0.0
            Reporter: Kathey Marsden
            Priority: Minor


I recently saw  case where a user was seeing the following error in the derby.log when trying
to shutdown their database.
New exception raised during cleanup null
java.lang.NullPointerException
        at org.apache.derby.impl.store.raw.log.LogToFile.flush(LogToFile.java:3964)
        at org.apache.derby.impl.store.raw.log.LogToFile.flush(LogToFile.java:1781)
        at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.flush(BaseDataFileFa
        at org.apache.derby.impl.store.raw.data.CachedPage.writePage(CachedPage.java:761
        at org.apache.derby.impl.store.raw.data.CachedPage.clean(CachedPage.java:610)
        at org.apache.derby.impl.services.cache.ConcurrentCache.cleanAndUnkeepEntry(Conc
        at org.apache.derby.impl.services.cache.ConcurrentCache.cleanCache(ConcurrentCac
        at org.apache.derby.impl.services.cache.ConcurrentCache.cleanAll(ConcurrentCache
        at org.apache.derby.impl.services.cache.ConcurrentCache.shutdown(ConcurrentCache
        at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.stop(BaseDataFileFac
        at org.apache.derby.impl.services.monitor.TopService.stop(TopService.java:405)
        at org.apache.derby.impl.services.monitor.TopService.shutdown(TopService.java:34
        at org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(BaseMonitor.java:
        at org.apache.derby.impl.db.DatabaseContextImpl.cleanupOnError(DatabaseContextIm
        at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(ContextM
        at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Transaction
        at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:584)
        at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Driver40.java:68)
        at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:238)
        at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:119)
        at java.sql.DriverManager.getConnection(DriverManager.java:316)
        at java.sql.DriverManager.getConnection(DriverManager.java:273)

It ended up that some of the log files did not have proper write permissions because some
operation on the database had been performed by root.   They had subsequently deleted their
db.lck file so the database did not boot READ ONLY as it would if the root owned db.lck file
still existed and the symptom was that they got this error on shutdown.

Clearly this was user error, but it would have been good if we gave a better error message.
 To reproduce on Linux:
As a user with umask 0022, run the program 
java MakeDB
this will make the databases wombat and create a table.
su root
run the program to insert data and remove the db.lck file:
java InsertALot
rm wombat/db.lck
go back to the original user
run the program:
java ConnectAndShutdown

The application gets the normal shutdown exception but if you look in derby.log you will see
the exception.
java.lang.NullPointerException
        at org.apache.derby.impl.store.raw.log.LogToFile.flush(LogToFile.java:3964)
        ...
I will attach the files.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message