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

Admin - Change repository blob store task can spawn too many threads and destabilize the server

    XMLWordPrintable

    Details

      Description

      NXRM 3.28.0 introduced a new feature to change a repository blobstore. This is implemented using a scheduled task called Admin - Change repository blob store.

      A flaw has been discovered where the task will spawn too many threads and could destabilize the NXRM instance. Symptoms may include ERROR level messages in the nexus.log containing the message:

      java.lang.OutOfMemoryError: unable to create new native thread

      Example ERROR message
      2020-10-07 09:43:20,777+0000 ERROR [quartz-10-thread-2]  *SYSTEM org.quartz.core.JobRunShell - Job nexus.8df44cf0-db89-4e9c-9284-44b0154cbac8 threw an unhandled Exception: 
      java.lang.OutOfMemoryError: unable to create new native thread
       at java.lang.Thread.start0(Native Method)
       at java.lang.Thread.start(Thread.java:717)
       at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:957)
       at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1367)
       at java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:238)
       at com.sonatype.nexus.repository.move.internal.RepositoryMoverSupport.moveBlobIds(RepositoryMoverSupport.java:199)
       at com.sonatype.nexus.repository.move.internal.orient.PagingRepositoryMover.movePageOfBlobs(PagingRepositoryMover.java:146)
       at com.sonatype.nexus.repository.move.internal.orient.PagingRepositoryMover.moveBlobs(PagingRepositoryMover.java:115)
       at com.sonatype.nexus.repository.move.tasks.RepositoryMoveTask.moveRepositoryFromBlobstore(RepositoryMoveTask.java:74)
       at com.sonatype.nexus.repository.move.tasks.RepositoryMoveTask.execute(RepositoryMoveTask.java:62)
       at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:100)
      

      Threads in a thread dump related to the problem will be named using the format pool-xxxxx-thread-x where x is a number.

      Sonatype advises not to run this task in NXRM version 3.28.0. Please upgrade to the fix version or newer.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              sdelvalle Santiago Del Valle
              Reporter:
              plynch Peter Lynch
              Last Updated By:
              Joseph Stephens
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Date of First Response:

                  tigCommentSecurity.panel-title

                    PagerDuty