[
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)