You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Mike Matrigali (JIRA)" <ji...@apache.org> on 2011/06/19 20:21:47 UTC
[jira] [Issue Comment Edited] (DERBY-5284) A derby crash at exactly
right time during a btree split can cause a corrupt db which can not be
booted.
[ https://issues.apache.org/jira/browse/DERBY-5284?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051565#comment-13051565 ]
Mike Matrigali edited comment on DERBY-5284 at 6/19/11 6:20 PM:
----------------------------------------------------------------
patch for this issue. Full set of tests on this patch against trunk passed.
was (Author: mikem):
preliminary patch for this issue. I have not run full tests yet on this patch, but have run full successful tests against a very similar set of changes. Will run full set of tests on this patch before committing.
> A derby crash at exactly right time during a btree split can cause a corrupt db which can not be booted.
> --------------------------------------------------------------------------------------------------------
>
> Key: DERBY-5284
> URL: https://issues.apache.org/jira/browse/DERBY-5284
> 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.3.0, 10.6.1.0, 10.7.1.1, 10.8.1.2
> Reporter: Mike Matrigali
> Assignee: Mike Matrigali
> Attachments: DERBY-5284_diff.txt
>
>
> A derby crash at exactly wrong time during a btree split can cause a corrupt db which can not be booted.
> A problem in the split code and exact wrong timing of a crash can leave the database in as state
> where undo of purge operations corrupts index pages during redo and can cause recovery boot
> to never succeed and thus the database never to be booted. At hight level what happens is that
> a purge happens on a page and before it commits another transactions uses the space of the
> purge to do an insert and then commits, then the system crashes before the purging transactions
> gets a chance to commit. During undo the purge expects there to be space to undo the purge
> but there is not, and it corrupts the page in various ways depending on the size and placement
> of the inserts. The error that actually returns to user varies from sane to insane as the problem
> is actually noticed after the corruption occurs rather than during the undo.
>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira