You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Kiran Ayyagari (JIRA)" <ji...@apache.org> on 2011/08/16 22:48:27 UTC

[jira] [Commented] (DIRSERVER-1642) Unexpected behaviour in JdbmIndex

    [ https://issues.apache.org/jira/browse/DIRSERVER-1642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13085967#comment-13085967 ] 

Kiran Ayyagari commented on DIRSERVER-1642:
-------------------------------------------

I have recently discussed this sort of behavior with Emmanuel while trying to consider JDBM for replication journal.
The javadoc of browse() method in BTree says:

 WARNING: If you make structural modifications to the BTree during browsing, you will get inconsistent browing results.


> Unexpected behaviour in JdbmIndex
> ---------------------------------
>
>                 Key: DIRSERVER-1642
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1642
>             Project: Directory ApacheDS
>          Issue Type: Bug
>            Reporter: Stefan Seelmann
>         Attachments: IndexTest.java
>
>
> During my experiments and tests of removing one-level and sub-level indices at least one integration test "SearchAuthorizationIT" failed (the test fails recursivelyDelete()). A debugging session showed that the follwing:
> - in recursivelyDelete() multiple search requests are done which leads to multiple open cursors in the XDBM search engine
> - an entry is deleted
> - when the open cursors are advanced wrong/unexpected entries are returned
> I was able to create a small test that shows the problem:
> - the index contains six tuples:
> (a,1)
> (b,2)
> (c,3)
> (d,4)
> (e,5)
> (f,6)
> - a cursor over the index is created and advanced two times, the expected tuples (a,1) and (b,2) were returned
> - now tuple (c,3) is deleted
> - when the cursor is advanced again the tuple (b,2) is returned again! I had expected (d,4).
> Note that this doesn't happen with AvlIndex.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira