You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Daniel Noll <da...@nuix.com> on 2007/07/05 08:05:48 UTC

Error opening the database

Hi.

I have a situation where a database was working before shutdown, shutdown 
completed successfully but then opening the database the next time there is 
an error preventing it being opened.

Here's the relevant fragments from the log.  Apologies for the massive amount 
of text, but the stack traces were simply long. ;-)

> ------------  BEGIN SHUTDOWN ERROR STACK -------------
>
> ERROR XSLA7: Cannot redo operation null in the log.
> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown
> Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown
> Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
> Source) at
> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
> Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown
> Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
> Source) at
> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
> Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
> at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unk
>nown Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartServ
>ice(Unknown Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(U
>nknown Source) at
> org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unkno
>wn Source) at
> org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(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)

> ERROR XSDB1: Unknown page format at page Page(2519565,Container(0, 1120))
> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.CachedPage.changeInstanceTo(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.CachedPage.setIdentity(Unknown Source)
> at org.apache.derby.impl.services.cache.CachedItem.takeOnIdentity(Unknown
> Source) at org.apache.derby.impl.services.cache.Clock.addEntry(Unknown
> Source) at org.apache.derby.impl.services.cache.Clock.find(Unknown Source)
> at org.apache.derby.impl.store.raw.data.FileContainer.getAnyPage(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.BaseContainer.getAnyPage(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.BaseContainerHandle.getAnyPage(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.PageBasicOperation.findpage(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.PageBasicOperation.needsRedo(Unknown
> Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown
> Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown
> Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
> Source) at
> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
> Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown
> Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
> Source) at
> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
> Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
> at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unk
>nown Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartServ
>ice(Unknown Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(U
>nknown Source) at
> org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unkno
>wn Source) at
> org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(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)

> ERROR XBM0U: No class was registered for identifier 0.
> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.classFromIdentifier(Unkn
>own Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.newInstanceFromIdentifie
>r(Unknown Source) at
> org.apache.derby.iapi.services.monitor.Monitor.newInstanceFromIdentifier(Un
>known Source) at
> org.apache.derby.impl.store.raw.data.CachedPage.changeInstanceTo(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.CachedPage.setIdentity(Unknown Source)
> at org.apache.derby.impl.services.cache.CachedItem.takeOnIdentity(Unknown
> Source) at org.apache.derby.impl.services.cache.Clock.addEntry(Unknown
> Source) at org.apache.derby.impl.services.cache.Clock.find(Unknown Source)
> at org.apache.derby.impl.store.raw.data.FileContainer.getAnyPage(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.BaseContainer.getAnyPage(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.BaseContainerHandle.getAnyPage(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.PageBasicOperation.findpage(Unknown
> Source) at
> org.apache.derby.impl.store.raw.data.PageBasicOperation.needsRedo(Unknown
> Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown
> Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown
> Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
> Source) at
> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
> Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown
> Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
> Source) at
> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
> Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
> at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown
> Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unk
>nown Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartServ
>ice(Unknown Source) at
> org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(U
>nknown Source) at
> org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unkno
>wn Source) at
> org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(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)

The database was supposedly being accessed over SMB, but I have been assured 
that there was only one process connected to it the entire time (checked for 
stale processes just in case there was one still holding a lock.)

But from web searches I get the feeling that this really is some kind of 
corruption so if that's the case I need to know how I can fix it.

Daniel

-- 
Daniel Noll
Nuix Pty Ltd
Suite 79, 89 Jones St, Ultimo NSW 2007, Australia    Ph: +61 2 9280 0699
Web: http://nuix.com/                               Fax: +61 2 9212 6902

Re: Error opening the database

Posted by Stanley Bradbury <St...@gmail.com>.
Hi Daniel -
You are correct that the error means the database is corrupt.  
Recovering from back-up is the only option  at this point. 

If by SMB you mean a Samba mounted disk then this is the source of your 
problem.  Only disks local to the machine hosting the Derby engine can 
be used without risking corruption.  Network mounted disks cannot be 
relied upon.


Daniel Noll wrote:
> Hi.
>
> I have a situation where a database was working before shutdown, shutdown 
> completed successfully but then opening the database the next time there is 
> an error preventing it being opened.
>
> Here's the relevant fragments from the log.  Apologies for the massive amount 
> of text, but the stack traces were simply long. ;-)
>
>   
>> ------------  BEGIN SHUTDOWN ERROR STACK -------------
>>
>> ERROR XSLA7: Cannot redo operation null in the log.
>> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown
>> Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown
>> Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown
>> Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
>> Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
>> Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown
>> Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
>> Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
>> Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
>> at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unk
>> nown Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartServ
>> ice(Unknown Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(U
>> nknown Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unkno
>> wn Source) at
>> org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(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)
>>     
>
>   
>> ERROR XSDB1: Unknown page format at page Page(2519565,Container(0, 1120))
>> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.CachedPage.changeInstanceTo(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.CachedPage.setIdentity(Unknown Source)
>> at org.apache.derby.impl.services.cache.CachedItem.takeOnIdentity(Unknown
>> Source) at org.apache.derby.impl.services.cache.Clock.addEntry(Unknown
>> Source) at org.apache.derby.impl.services.cache.Clock.find(Unknown Source)
>> at org.apache.derby.impl.store.raw.data.FileContainer.getAnyPage(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.BaseContainer.getAnyPage(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.BaseContainerHandle.getAnyPage(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.PageBasicOperation.findpage(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.PageBasicOperation.needsRedo(Unknown
>> Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown
>> Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown
>> Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
>> Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
>> Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown
>> Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
>> Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
>> Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
>> at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unk
>> nown Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartServ
>> ice(Unknown Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(U
>> nknown Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unkno
>> wn Source) at
>> org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(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)
>>     
>
>   
>> ERROR XBM0U: No class was registered for identifier 0.
>> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.classFromIdentifier(Unkn
>> own Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.newInstanceFromIdentifie
>> r(Unknown Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.newInstanceFromIdentifier(Un
>> known Source) at
>> org.apache.derby.impl.store.raw.data.CachedPage.changeInstanceTo(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.CachedPage.setIdentity(Unknown Source)
>> at org.apache.derby.impl.services.cache.CachedItem.takeOnIdentity(Unknown
>> Source) at org.apache.derby.impl.services.cache.Clock.addEntry(Unknown
>> Source) at org.apache.derby.impl.services.cache.Clock.find(Unknown Source)
>> at org.apache.derby.impl.store.raw.data.FileContainer.getAnyPage(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.BaseContainer.getAnyPage(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.BaseContainerHandle.getAnyPage(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.PageBasicOperation.findpage(Unknown
>> Source) at
>> org.apache.derby.impl.store.raw.data.PageBasicOperation.needsRedo(Unknown
>> Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown
>> Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown
>> Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
>> Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
>> Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown
>> Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown
>> Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown
>> Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
>> at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
>> 	at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown
>> Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unk
>> nown Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartServ
>> ice(Unknown Source) at
>> org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(U
>> nknown Source) at
>> org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unkno
>> wn Source) at
>> org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(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)
>>     
>
> The database was supposedly being accessed over SMB, but I have been assured 
> that there was only one process connected to it the entire time (checked for 
> stale processes just in case there was one still holding a lock.)
>
> But from web searches I get the feeling that this really is some kind of 
> corruption so if that's the case I need to know how I can fix it.
>
> Daniel
>
>