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