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

Merge may fail when commit root is a bundled node

    XMLWordPrintableJSON

    Details

      Description

      Changing and merging descendant nodes of a bundled node fails when the commit root of the changes is located on a bundled node. The merge tries to apply the final commit changes on a document that does not exist (because the bundled node is located on an ancestor document).

      The exception is misleading but looks like this:

      Caused by: org.apache.jackrabbit.oak.plugins.document.DocumentStoreException: Conflicting concurrent change. Update operation failed: key: 3:/foo/bar/baz update {_revisions.r16d8bf18282-0-1=SET_MAP_ENTRY c, _modified=MAX 1570010920}
      	at org.apache.jackrabbit.oak.plugins.document.Commit.applyToDocumentStore(Commit.java:398) [org.apache.jackrabbit.oak-store-document:1.18.0]
      	at org.apache.jackrabbit.oak.plugins.document.Commit.applyToDocumentStoreWithTiming(Commit.java:278) [org.apache.jackrabbit.oak-store-document:1.18.0]
      	at org.apache.jackrabbit.oak.plugins.document.Commit.applyToDocumentStore(Commit.java:262) [org.apache.jackrabbit.oak-store-document:1.18.0]
      	at org.apache.jackrabbit.oak.plugins.document.Commit.applyInternal(Commit.java:230) [org.apache.jackrabbit.oak-store-document:1.18.0]
      	at org.apache.jackrabbit.oak.plugins.document.Commit.apply(Commit.java:218) [org.apache.jackrabbit.oak-store-document:1.18.0]
      	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:320) [org.apache.jackrabbit.oak-store-document:1.18.0]
      	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:282) [org.apache.jackrabbit.oak-store-document:1.18.0]
      	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.access$500(DocumentNodeStoreBranch.java:56) [org.apache.jackrabbit.oak-store-document:1.18.0]
      	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$InMemory.merge(DocumentNodeStoreBranch.java:548) [org.apache.jackrabbit.oak-store-document:1.18.0]
      

        Attachments

        1. OAK-8667.patch
          2 kB
          Marcel Reutegger

          Activity

            People

            • Assignee:
              mreutegg Marcel Reutegger
              Reporter:
              mreutegg Marcel Reutegger
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: