Description
When differ creates a blob that already exists it will hit ErrAlreadyExists on Commit. A side effect of that error is that there is no guarantee that the containerd.io/uncompressed label that the differ creates, exists for the blob that already existed. Even when all places that can create blobs(like pull) correctly set the containerd.io/uncompressed label there is still a race condition, because in the pull, this label is only added on extraction, after the blob is already in the store. The differ should update the record with a missing label before returning.
Description
When differ creates a blob that already exists it will hit
ErrAlreadyExistsonCommit. A side effect of that error is that there is no guarantee that thecontainerd.io/uncompressedlabel that the differ creates, exists for the blob that already existed. Even when all places that can create blobs(like pull) correctly set thecontainerd.io/uncompressedlabel there is still a race condition, because in the pull, this label is only added on extraction, after the blob is already in the store. The differ should update the record with a missing label before returning.