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

When creating multiple repository instances pointing to the same home, opening a second session will remove the .lock file

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: core 1.4.7, 1.5.3
    • Fix Version/s: 1.5.5
    • Component/s: jackrabbit-core
    • Labels:
      None
    • Environment:
      Ubuntu Intrepid

      Description

      The following test case can be used to reproduce the bug:
      Repository repo1 = new TransientRepository(repoConfig);
      Session session1_1 = repo1.login(...);
      Session session2_2 = repo1.login(...);
      Repository repo2 = new TransientRepository(repoConfig); // Will not fail (expected)
      Session session2_1 = repo2.login(...); // Will fail with javax.jcr.RepositoryException: The repository home /tmp/_repository appears to be already locked by the current process (expected)
      Session session2_2 = repo2.login(...); // Will work!
      Repository repo3 = new TransientRepository(repoConfig); // Will not fail either (expected)
      Session session3_1 = repo3.login(...); // Will fail with javax.jcr.RepositoryException: The repository home /tmp/_repository appears to be already locked by the current process (expected)
      Session session3_2 = repo3.login(...); // Will fail with javax.jcr.RepositoryException: Directory was previously created with a different LockFactory instance

      Open the first session in repo2 will fails but will also remove the .lock file, thus the second
      session will succeed and may corrupt the repository because there are multiple session
      opened from multiple repository.
      The same behaviour occurs for repo3, the .lock file is removed but it is a slightly different case
      as a new exception will be thrown while creating the Lucene index.

      This is a clearly a twisted case as repositories pointing to the same home must not be created
      simultaneously but i think that it must be more robust to prevent data corruption.

      I reproduce the bug on JR 1.4.7 and 1.5.3 but i think it affects at least all versions of JR < 1.5.3.

        Attachments

        1. JCR-2057-2009-04-07.zip
          3 kB
          Sébastien Launay

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                yabon Sébastien Launay
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: