Details
Description
Problem Summary
In npm group repositories NXRM needs to cache merged package level metadata. E.g, a request to "http://localhost:8081/repository/npm-group/lodash" will generate a merged JSON file for the "lodash" metadata, and store it in blob storage.
If there is a reference to a blob file that does not exist on disk in an npm group repository NXRM will rebuild the merged group level metadata, and replace the bad reference with a good one. It will then deliver the corrected metadata to the requesting client.
For the case where there are multiple simultaneous requests made for a group's package level metadata, and the blob file is missing all the inbound threads simultaneously try to rebuild and store the metadata at the same time. This creates a performance issue due to the spawning of these extra worker threads
Expected
Only one thread should do the rebuild, and the others should queue up and wait for it to complete, then proceed after one is complete.
Attachments
Issue Links
- relates
-
NEXUS-26473 Thread cooperation does not work when recovering from missing blobs in proxy repositories
-
- Closed
-
- links to