db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Matrigali (JIRA)" <j...@apache.org>
Subject [jira] Updated: (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 Mon, 02 Mar 2009 18:46:56 GMT

     [ https://issues.apache.org/jira/browse/DERBY-4072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Mike Matrigali updated DERBY-4072:

I reviewed the proposed changes, they look good to me.  It will be nice to get more info to
debug this on remote user sites.

> 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:,,,,
>            Reporter: Kathey Marsden
>            Assignee: Kathey Marsden
>            Priority: Minor
>         Attachments: ConnectAndShutdown.java, derby-4072_diff.txt, InsertALot.java, MakeDB.java,
> 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
> with umask 0022, 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.

View raw message