cache: log missing providers for blobchainID ref
Before this, if you try to get a ref with an equal blobchain in GetByBlob but hit a missing provider, the error was just returned. While we never expect this situation to happen (you shouldn't be able to hit this line if you didn't already have providers for each blob in the chain), it technically shouldn't fail the build as you can just continue on without re-using the ref with equal blobchainID. Now, we log this at error level but allow the build to continue. Signed-off-by: Erik Sipsma <erik@sipsma.dev>master
parent
5872bf3dd1
commit
441f1e7b27
|
@ -168,8 +168,15 @@ func (cm *cacheManager) GetByBlob(ctx context.Context, desc ocispecs.Descriptor,
|
|||
|
||||
for _, si := range sis {
|
||||
ref, err := cm.get(ctx, si.ID(), opts...)
|
||||
if err != nil && !IsNotFound(err) {
|
||||
return nil, errors.Wrapf(err, "failed to get record %s by blobchainid", sis[0].ID())
|
||||
if err != nil {
|
||||
if errors.As(err, &NeedsRemoteProvidersError{}) {
|
||||
// This shouldn't happen and indicates that blobchain IDs are being set incorrectly,
|
||||
// but if it does happen it's not fatal as we can just not try to re-use by blobchainID.
|
||||
// Log the error but continue.
|
||||
bklog.G(ctx).Errorf("missing providers for ref with equivalent blobchain ID %s", blobChainID)
|
||||
} else if !IsNotFound(err) {
|
||||
return nil, errors.Wrapf(err, "failed to get record %s by blobchainid", sis[0].ID())
|
||||
}
|
||||
}
|
||||
if ref == nil {
|
||||
continue
|
||||
|
|
Loading…
Reference in New Issue