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

Shared FileDataStore throws exception if two processes try to add the same file concurrently

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Patch Available
    • Minor
    • Resolution: Unresolved
    • 2.15.1
    • None
    • jackrabbit-data
    • None

    Description

      The FileDataStore implementation can throw an IOException if multiple repositories share the same data store and multiple repositories try to add the same record at the same time. This can happen easily when you set up multiple AEM publisher instances to share the same data store to save disk space. (AEM uses Oak, but the Oak file blobstore implementation ends up using the Jackrabbit FileDataStore implementation, so at the end of the day the bug affects the latest Oak and latest AEM as well.)

      We have noticed this issue via log analysis. When we publish the same asset to all of our publisher instances, we are seeing a recurring IOException in the log. The author instance eventually retries the publish operation and by that time, there is no race condition and the operation succeeds, but the situation is still not ideal.

      Attachments

        1. concurrent-datastore-fix.diff
          5 kB
          Csaba Varga

        Activity

          People

            amitjain Amit Jain
            Csaba Varga Csaba Varga
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: