How to reproduce
- Create a proxy
Any format will work, I'll assume Docker, for the rest of report.
- Pull some data from remote via created proxy
For example pull an image docker pull 192.168.1.84:8082/centos
- Invalidate the proxy cache
Invalidating cache will force next request to check whether remote content has changed
- Run 101+ parallel requests for the same asset that has been previously cached (and expired, but still present)
You can use attached Python script or WRK, e.g. wrk -t12 -c200 -d1m http://localhost:8081/repository/docker-proxy/v2/-/blobs/sha256:7a0437f04f83f084b7ed68ad9c4a4947e12fc4e1b006b38129bac89114ec3621
Proxy repository will return 503 Service Unavailable, but if you did reproduction step via a group repository containing a proxy repository the actual responses would be 404 Not Found even though the content is already present in NXRM.
Expected the content to be served since it's already present in NXRM, even if the cache is invalidated, the content is there.