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

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: