Uploaded image for project: 'Jackrabbit Content Repository'
  1. Jackrabbit Content Repository
  2. JCR-3292

Workspace move in concurrent environment causes inconsistencies

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.11, 2.4
    • Fix Version/s: 2.2.12, 2.4.2, 2.5
    • Component/s: None
    • Labels:
      None

      Description

      Attached is a test case that shows that using workspace move concurrent with other write operations causes inconsistencies.

      The problem is that unlike session move, workspace move operates on the local item state directly (session move operates on transient item state). When a concurrent modification occurs on for instance the source parent of the moved target the modification that the move operation was trying to do is overwritten as the changes from the concurrent session are pulled in:

      • on thread 1 a workspace.move is initiated on /folder1/node to /folder2/node, removing the child node entry from /folder1 a.o.t.
      • session 2 on thread 2 modifies and saves /folder1, overwriting the changes on the local item state of /folder1 in session 1
      • thread 1, still in the workspace move operation, sends the updates to the shared item state manager

        Attachments

        1. JCR-3292.patch
          1 kB
          Unico Hommes
        2. WorkspaceMoveTest.patch
          7 kB
          Unico Hommes

          Activity

            People

            • Assignee:
              schans Bart van der Schans
              Reporter:
              unico@apache.org Unico Hommes
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: