Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-5557

incomplete diffManyChildren during commitHook evaluation in a persisted branch

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.23, 1.4.12, 1.6.0
    • Fix Version/s: 1.2.24, 1.4.13, 1.7.0, 1.6.1, 1.8.0
    • Component/s: core, documentmk
    • Labels:
      None
    • Environment:

      'easily' reproducible on 1.2.14
      'takes longer to' reproduce on 1.2.23

      Description

      The following issue can cause inconsistencies in query indices and permission store, in case the DocumentStore is used, in combination with a large commit and many children:

      In oak 1.2 when doing a diffManyChildren as part of running the CommitHooks as part of a branch commit, not all child paths are taken into account in some cases.

      The problem seems to be related to the _modified calculation when doing the query for affected child paths. It seems that minValue is not correctly calculated when doing compareAgainstBaseState as part of a persisted branch.

      Note that the problem can be reproduced very good on 1.2.14, less good but still on the latest 1.2 and not in trunk (ie almost 1.6.0).

      Attaching a test case to reproduce

        Attachments

        1. OAK-5557.patch
          2 kB
          Marcel Reutegger
        2. OAK-5557-1.2.patch
          2 kB
          Marcel Reutegger
        3. DocumentNodeStoreBranchesTest.java
          10 kB
          Stefan Egli
        4. DocumentNodeStoreBranchesTest.java
          7 kB
          Stefan Egli

          Issue Links

            Activity

              People

              • Assignee:
                mreutegg Marcel Reutegger
                Reporter:
                egli Stefan Egli
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: