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