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
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
- fixes
-
NEXUS-25491 Admin - Change Repository Blob Store task spawns threads which are not named contextually
-
- Closed
-