By default, S3Blobstore uses asynchronous operations to delete temp blobs. There is a thread pool created when a blobstore is first created, in the constructor.
However, if the blobstore configuration is saved, then S3Blobstore.doStop() method is called, stopping the executor service. Both methods responsible for starting the blobstore again doInit() and doStart(), do not restart the executor thread pool. This means that on any further operations against any repository using this S3 blobstore which delete tmp blobs, will fail with these types of messages:
The end result when this bug happens is any writes to the affected S3 blobstore will fail, since writes use temp blobs that need to be deleted. This usually is first noticed by an end user as a failed upload of a component.
Restarting the NXRM instance affected will restart the S3 blobstore properly.
One can also set a property inside of $data-dir/etc/nexus.proeprties to disable asynchronous deletes which rely on this thread pool. Restart of NXRM is required to pick up this property. If using an HA-C cluster, all nodes will need to have the property set and gracefully restarted.
Make sure the stopped executor service is gracefully restarted upon saving blobstore config.