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

Make S3BinaryManager.abortOldUploads async and optional

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 10.10-HF23, 11.1, 2021.0
    • Component/s: S3
    • Release Notes Summary:
      S3BinaryManager probe does not get stuck at startup.
    • Tags:
    • Backlog priority:
      750
    • Impact type:
      Configuration Change
    • Upgrade notes:
      Hide

      The startup process that cleans up old (> 1 day) S3 multipart uploads can be disabled by defining:

        <extension target="org.nuxeo.ecm.core.blob.BlobManager" point="configuration">
          <blobprovider name="default">
            ...
            <property name="multipart.cleanup.disabled">true</property>
          </blobprovider>
        </extension>
      

      Or for backward compatibility when XML configuration is not possible by setting the nuxeo.conf property:

      nuxeo.s3storage.multipart.cleanup.disabled=true
      
      Show
      The startup process that cleans up old (> 1 day) S3 multipart uploads can be disabled by defining: <extension target= "org.nuxeo.ecm.core.blob.BlobManager" point= "configuration" > <blobprovider name= "default" > ... <property name= "multipart.cleanup.disabled" > true </property> </blobprovider> </extension> Or for backward compatibility when XML configuration is not possible by setting the nuxeo.conf property: nuxeo.s3storage.multipart.cleanup.disabled= true
    • Team:
      FG
    • Sprint:
      nxFG 11.1.12

      Description

      In some situations it's observed that the TransferManager.abortMultipartUploads called at S3BinaryManager initialization time (S3BinaryManager.abortOldUploads) is taking a long time. As this initialization is done in a synchronized block, it blocks all other threads that look up a BlobProvider (in BlobManagerComponent.getBlobProvider).

      The call to TransferManager.abortMultipartUploads should be done asynchronously, and in addition there should be a flag to make it optional, as it's not needed when an S3 lifecycle rule has been set up to do this automatically (see https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-transfermanager.html).

        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 - 1 hour
                  1h

                    PagerDuty

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