Uploaded image for project: 'Dev - Nexus Repo'
  1. Dev - Nexus Repo
  2. NEXUS-27788

"Docker - Delete incomplete uploads" task blocks all docker uploads

    XMLWordPrintable

    Details

    • Story Points:
      3
    • Sprint:
      NXRM MadMax Sprint 17, NXRM MadMax Sprint 18, NXRM MadMax Sprint 19
    • Notability:
      3

      Description

      Saw this in a thread dump....

       53 threads blocked by this one:

      "quartz-11-thread-15" id=213 state=RUNNABLE
      at sun.nio.fs.UnixNativeDispatcher.readdir(Native Method)
      at sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.readNextEntry(UnixDirectoryStream.java:168)
      at sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.hasNext(UnixDirectoryStream.java:201)
      at java.nio.file.FileTreeWalker.next(FileTreeWalker.java:348)
      at java.nio.file.FileTreeIterator.fetchNextIfNeeded(FileTreeIterator.java:84)
      at java.nio.file.FileTreeIterator.hasNext(FileTreeIterator.java:104)
      at java.util.Iterator.forEachRemaining(Iterator.java:115)
      at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
      at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
      at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
      at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
      at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
      at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
      at org.sonatype.nexus.repository.docker.internal.UploadManagerImpl.purgeUploads(UploadManagerImpl.java:165)

      • locked org.sonatype.nexus.repository.docker.internal.UploadManagerImpl@75dcf9c4
        at org.sonatype.nexus.repository.docker.internal.orient.DockerHostedFacetImpl.purgeUploads(DockerHostedFacetImpl.java:699)

       

      Seems to be blocking all uploads, 52 of the blocked threads have this stack trace:

      "qtp539418039-2887571" id=2887571 state=BLOCKED

      • waiting to lock <0x75dcf9c4> (a org.sonatype.nexus.repository.docker.internal.UploadManagerImpl)
        owned by quartz-11-thread-15 id=213
        at org.sonatype.nexus.repository.docker.internal.UploadManagerImpl.startUpload(UploadManagerImpl.java:49)
        at org.sonatype.nexus.repository.docker.internal.orient.DockerHostedFacetImpl.beginBlobUpload(DockerHostedFacetImpl.java:616)
        at org.sonatype.nexus.repository.docker.internal.DockerHostedFacet$beginBlobUpload$4.call(Unknown Source)
        at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure3.doCall(V2Handlers.groovy:118)
        at sun.reflect.GeneratedMethodAccessor609.invoke(Unknown Source)

      This is likely related to NEXUS-19089. However, even when that is fixed it still seems to me we shouldn't be blocking all uploads while the task is running. One way to fix this would be to leave all partial uploads that are newer than 24 hours in place, that way there would be no need to block uploads while the task is running.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              iudovika Igor Udovika
              Reporter:
              rseddon Rich Seddon
              Last Updated By:
              Rich Seddon Rich Seddon
              Team:
              NXRM - Mad Max
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Date of First Response:

                  tigCommentSecurity.panel-title