Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-26382

LRUFileCache (use for S3 cache) should be resilient to directory removal

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 9.10
    • Fix Version/s: 9.10-HF25, 10.10
    • Component/s: Core, S3

      Description

      If an external process cleans up old entries from the cache, the code doesn't handle the fact that the containing directory itself could be cleaned up.

      Caused by: java.nio.file.NoSuchFileException: /apps/nuxeo/tmp/nxbincache.1510148586680982648/nxbin_9167512561228904025.tmp
      	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
      	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
      	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
      	at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
      	at java.nio.file.Files.newByteChannel(Files.java:361)
      	at java.nio.file.Files.createFile(Files.java:632)
      	at java.nio.file.TempFileHelper.create(TempFileHelper.java:138)
      	at java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:161)
      	at java.nio.file.Files.createTempFile(Files.java:852)
      	at org.nuxeo.common.file.LRUFileCache.getTempFile(LRUFileCache.java:233)
      	at org.nuxeo.ecm.core.blob.binary.CachingBinaryManager.getBinary(CachingBinaryManager.java:134)
      	at org.nuxeo.ecm.core.blob.binary.AbstractBinaryManager.getBinary(AbstractBinaryManager.java:97)
      	at org.nuxeo.ecm.core.blob.binary.BinaryBlobProvider.writeBlob(BinaryBlobProvider.java:119)
      	at org.nuxeo.ecm.blob.AbstractCloudBinaryManager.writeBlob(AbstractCloudBinaryManager.java:144)
      	at org.nuxeo.ecm.core.storage.sql.S3BinaryManager.writeBlob(S3BinaryManager.java:458)
      	at org.nuxeo.ecm.core.blob.DocumentBlobManagerComponent.writeBlob(DocumentBlobManagerComponent.java:182)
      	at org.nuxeo.ecm.core.storage.BaseDocument.setValueBlob(BaseDocument.java:645)
      

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 30 minutes
                  30m