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

Staging move of maven components can be very slow due to metadata rebuilds

    XMLWordPrintable

    Details

    • Notability:
      2

      Description

      When maven components are moved during staging operations Nexus Repo is rebuilding metadata for every component moved.  This is an expensive operation, and can cause staging moves to take a very long time.  

      Expected: We should mark the metadata files as dirty, so they can be rebuilt on demand as needed later.

       

      "qtp682630493-5045498" #5045498 prio=5 os_prio=0 tid=0x00007f5aa003f000 nid=0x6bfa waiting on condition [0x00007f5a78b83000]
      java.lang.Thread.State: TIMED_WAITING (parking)
      at sun.misc.Unsafe.park(Native Method)

      • parking to wait for <0x00000007920e4a50> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:418)
        at org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueConsumingIterable.hasNext(OrientAsyncHelper.java:199)
        at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:42)
        at com.google.common.collect.Iterators$5.computeNext(Iterators.java:637)
        at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141)
        at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:136)
        at com.google.common.collect.Iterators$5.computeNext(Iterators.java:637)
        at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141)
        at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:136)
        at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.lambda$3(MetadataRebuilder.java:539)
        at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker$$Lambda$799/1385297271.call(Unknown Source)
        at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64)
        at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:57)
        at org.sonatype.nexus.transaction.Operations.proceedWithTransaction(Operations.java:232)
        at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:219)
        at org.sonatype.nexus.transaction.Operations.call(Operations.java:166)
        at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadataInner(MetadataRebuilder.java:516)
        at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadata(MetadataRebuilder.java:448)
        at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.rebuildInTransaction(MetadataRebuilder.java:151)
        at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.rebuild(MetadataRebuilder.java:127)
        at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.deleteAndRebuild(MetadataRebuilder.java:278)
        at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedFacetImpl.deleteMetadata(MavenHostedFacetImpl.java:137)
        at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedComponentMaintenanceFacet.deleteComponent(MavenHostedComponentMaintenanceFacet.java:55)
        at com.sonatype.nexus.staging.internal.StagingComponentManager.move(StagingComponentManager.java:86)
        at com.sonatype.nexus.staging.internal.StagingService.doMove(StagingService.java:397)
        at com.sonatype.nexus.staging.internal.StagingService.move(StagingService.java:181)
        at com.sonatype.nexus.staging.internal.StagingService$$EnhancerByGuice$$3d6477a9.CGLIB$move$0(<generated>)
        at com.sonatype.nexus.staging.internal.StagingService$$EnhancerByGuice$$3d6477a9$$FastClassByGuice$$87a0e258.invoke(<generated>)
        at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
        at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)
        at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
        at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272)
        at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53)
        at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
        at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55)
        at com.sonatype.nexus.staging.internal.StagingService$$EnhancerByGuice$$3d6477a9.move(<generated>)

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              dsawa Dawid Sawa
              Reporter:
              rseddon Rich Seddon
              Last Updated By:
              Wes Wannemacher
              Team:
              NXRM - Operations/Groot
              Votes:
              1 Vote for this issue
              Watchers:
              12 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Date of First Response:

                  tigCommentSecurity.panel-title