[
https://issues.apache.org/jira/browse/DERBY-4072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12678062#action_12678062
]
Kathey Marsden commented on DERBY-4072:
---------------------------------------
Thanks Myrna and Mike for looking at the patch. I submitted to trunk and will
backport to 10.4,10.3,10.2, and 10.1 before closing this issue.
> 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.1.3.1, 10.2.2.0, 10.3.3.0, 10.4.2.0, 10.5.0.0
> Reporter: Kathey Marsden
> Assignee: Kathey Marsden
> Priority: Minor
> Attachments: ConnectAndShutdown.java, derby-4072_diff.txt,
> InsertALot.java, MakeDB.java, sample.derby.log
>
>
> 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.