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] [Commented] (DERBY-5936) AllocPage.ReadContainerInfo throws ArrayIndexOutOfBoundsException at arraycopy
Date Tue, 11 Mar 2014 01:09:46 GMT

    [ https://issues.apache.org/jira/browse/DERBY-5936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13929824#comment-13929824
] 

Mike Matrigali commented on DERBY-5936:
---------------------------------------

I do wonder if this issue can be caused by the same issue that in most cases is reported
by derby checksum error.  In that case derby has requested the OS to write a derby page
that is made up of multiple OS/filesystem pages, and can not control the order that the
OS does the write.  If the OS happens to shutdown/crash in the middle of writing those pages
that make up a single OS page then Derby page is corrupt.  Derby checksums the page and writes
it at the end of the page, and
for all pages EXCEPT the page that is a problem here, we first read the whole page and
compare the checksum of the page to expected and report that issue first.

In this case we have a bootstrap problem.  Derby needs to read the top of this page in the
file to tell 
how big the page is so that it can then find the checksum later to do the compare.  

I don't know if this can be the problem as Derby goes out of its way to force this important
information when
creating the file, because of this issue.  But I guess if write-sync were enabled then derby
force would 
be ignored.

> AllocPage.ReadContainerInfo throws ArrayIndexOutOfBoundsException at arraycopy
> ------------------------------------------------------------------------------
>
>                 Key: DERBY-5936
>                 URL: https://issues.apache.org/jira/browse/DERBY-5936
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.6.1.0
>         Environment: intel, windows XP, embedded driver, c3p0
>            Reporter: Yuan Yao
>
> The db may not be closed normally. It throws following exceptions as starting.
> logs:
> {code}
> Caused by: java.lang.ArrayIndexOutOfBoundsException
> 	at java.lang.System.arraycopy(Native Method)
> 	at org.apache.derby.impl.store.raw.data.AllocPage.ReadContainerInfo(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.FileContainer.readHeader(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.RAFContainer.run(Unknown Source)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at org.apache.derby.impl.store.raw.data.RAFContainer.openContainer(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.RAFContainer4.openContainer(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.FileContainer.setIdent(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.RAFContainer.setIdentity(Unknown Source)
> 	at org.apache.derby.impl.services.cache.ConcurrentCache.find(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openDroppedContainer(Unknown
Source)
> 	at org.apache.derby.impl.store.raw.xact.Xact.openDroppedContainer(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.ContainerBasicOperation.findContainer(Unknown
Source)
> 	at org.apache.derby.impl.store.raw.data.ContainerBasicOperation.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(Unknown Source)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(Unknown
Source)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(Unknown
Source)
> 	at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unknown Source)
> 	... 24 more
> {code}
> I'd like to upload data files if necessary.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message