Uploaded image for project: 'Directory ApacheDS'
  1. Directory ApacheDS
  2. DIRSERVER-1642

Unexpected behaviour in JdbmIndex

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0-M3
    • None
    • None

    Description

      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.

      Attachments

        1. IndexTest.java
          4 kB
          Stefan Seelmann
        2. DIRSERVER-1642.patch
          25 kB
          Stefan Seelmann
        3. jdbm1.diff
          130 kB
          Selcuk Aya
        4. jdbm2.diff
          1 kB
          Selcuk Aya
        5. jdbm3.diff
          30 kB
          Selcuk Aya
        6. jdbm4.diff
          30 kB
          Selcuk Aya
        7. jdbm5.diff
          76 kB
          Selcuk Aya

        Activity

          People

            Unassigned Unassigned
            seelmann Stefan Seelmann
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: