[ 
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-1b.diff

Attached a new patch (1b) with no changes from 1a except that a test case has 
been added to NullableUniqueConstraintTest. The test case never completes 
without the fix because it runs into a self-deadlock (or actually a livelock) 
caused by the latch it forgot to release. The test case runs and completes 
successfully with the fix.

> 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: 10.4.2.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>         Attachments: derby-4081-1a.diff, derby-4081-1b.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.

Reply via email to