db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4081) BTreeController.comparePreviousRecord() may fail to release latch on left-most leaf
Date Tue, 03 Mar 2009 12:02:56 GMT

     [ https://issues.apache.org/jira/browse/DERBY-4081?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Knut Anders Hatlen updated DERBY-4081:

    Attachment: derby-4081-1a.diff

I believe that the attached patch solves the problem. It releases the latch on the previous
page earlier, so that it is already released when the method detects that it is positioned
before the left-most leaf and returns NO_MATCH. This is the same thing as compareNextRecord()
does when it detects that it's positioned after the right-most leaf.

> BTreeController.comparePreviousRecord() may fail to release latch on left-most leaf
> -----------------------------------------------------------------------------------
>                 Key: DERBY-4081
>                 URL: https://issues.apache.org/jira/browse/DERBY-4081
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions:
>            Reporter: Knut Anders Hatlen
>         Attachments: derby-4081-1a.diff
> If comparePreviousRecord() is called on some other leaf page than the left-most leaf,
and all the rows to the left of the current position are deleted so that the position is moved
all the way to slot 0 on the left-most leaf, comparePreviousRecord() will return without releasing
the latch on the left-most leaf. Only the leaf on which comparePreviousRecord() is called
should be latched when the method returns.
> Since comparePreviousRecord() currently fails to continue after finding a deleted row,
this bug is not possible to expose until DERBY-4028 is fixed.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message