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

Fix retention/legal hold with S3 transactional blob store

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 10.10-HF25, 11.1-SNAPSHOT
    • Fix Version/s: 10.10-HF26, 11.1, 2021.0
    • Component/s: Retention, S3

      Description

      There is a bug in the transactional blob store when, in the same transaction, the blob is written then retention or legal hold is set. The second operation incorrectly deletes the transient blob (which is waiting for commit) when it shouldn't.

      2020-04-16T19:47:10,688 ERROR [http-nio-0.0.0.0-8080-exec-6] [org.nuxeo.ecm.core.blob.TransactionalBlobStore] Failed to commit update of blob: 4e391e3b-25f5-4d6b-b811-56c96b70ad25@JeZofswO7hfbfb5XvqJ.Ur0Dh8Dypj_8
      java.io.IOException: com.amazonaws.services.s3.model.AmazonS3Exception: The specified version does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchVersion)
              at org.nuxeo.ecm.blob.s3.S3BlobStore.writeBlobProperties(S3BlobStore.java:696) ~[nuxeo-core-binarymanager-s3-10.10-HF23.jar:?]
              at org.nuxeo.ecm.core.blob.CachingBlobStore.writeBlobProperties(CachingBlobStore.java:182) ~[nuxeo-core-api-10.10-HF25.jar:?]
              at org.nuxeo.ecm.core.blob.TransactionalBlobStore.afterCompletion(TransactionalBlobStore.java:337) [nuxeo-core-api-10.10-HF25.jar:?]
              ...
      Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: The specified version does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchVersion)
              ...
              at com.amazonaws.services.s3.AmazonS3Client.setObjectLegalHold(AmazonS3Client.java:3202) ~[aws-java-sdk-s3-1.11.738.jar:?]
              at org.nuxeo.ecm.blob.s3.S3BlobStore.writeBlobProperties(S3BlobStore.java:679) ~[nuxeo-core-binarymanager-s3-10.10-HF23.jar:?]
              ... 74 more
      

      In addition, when trying to set a retention on a bucket which is configured with a default retention mode of Compliance, the set retention operation fails because it always attempts to use Governance mode.

        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 - 4 hours
                  4h

                    PagerDuty

                    Error rendering 'com.pagerduty.jira-server-plugin:PagerDuty'. Please contact your Jira administrators.