Return NAME_UNKNOWN errors for Blob GETs when Using the Database
Context
This is a follow-up issue from the investigation done in Consider Returning NAME_UNKNOWN errors for Blob... (#1016 - closed).
The V2 Blob GET, specifies the possibility of returning NAME_UNKNOWN
when the repository is not known to the registry. Historically, the registry did not make the distinction between NAME_UNKNOWN
and BLOB_UNKNOWN
, it would take an extra call to backend storage to disambiguate these two scenarios and this is a heavily used endpoint.
When writing the database implementation, we chose to conform to the present behavior since downstream clients may not anticipate the NAME_UNKNOWN
error, even though it is specified in the API. We had an incident where this ambiguity between NAME_UNKNOWN
and BLOB_UNKNOWN
increased the time to diagnose the root cause.
Solution
After the investigation we concluded that this change will be good to be implemented, once we no longer support the object storage metadata in the registry.
For details see this thread.