@@ -750,8 +750,7 @@ func (rc *RedisDB) SetRepoReference(ctx context.Context, repo string,
750750 return err
751751 }
752752
753- locks := []string {rc .getImageLockKey (imageMeta .Digest .String ()), rc .getRepoLockKey (repo )}
754- err = rc .withRSLocks (ctx , locks , func () error {
753+ err = rc .withRSLocks (ctx , []string {rc .getImageLockKey (imageMeta .Digest .String ())}, func () error {
755754 err := rc .Client .HSet (ctx , rc .ImageMetaKey , imageMeta .Digest .String (), imageMetaBlob ).Err ()
756755 if err != nil {
757756 rc .Log .Error ().Err (err ).Str ("hset" , rc .ImageMetaKey ).Str ("digest" , imageMeta .Digest .String ()).
@@ -760,6 +759,13 @@ func (rc *RedisDB) SetRepoReference(ctx context.Context, repo string,
760759 return fmt .Errorf ("failed to set image meta record for digest %s: %w" , imageMeta .Digest .String (), err )
761760 }
762761
762+ return nil
763+ })
764+ if err != nil {
765+ return err
766+ }
767+
768+ err = rc .withRSLocks (ctx , []string {rc .getRepoLockKey (repo )}, func () error {
763769 protoRepoMeta , err := rc .getProtoRepoMeta (ctx , repo )
764770 if err != nil && ! errors .Is (err , zerr .ErrRepoMetaNotFound ) {
765771 return err
@@ -1805,8 +1811,7 @@ if there are no tags pointing to the digest, otherwise it's noop.
18051811func (rc * RedisDB ) RemoveRepoReference (repo , reference string , manifestDigest godigest.Digest ) error {
18061812 ctx := context .Background ()
18071813
1808- locks := []string {rc .getImageLockKey (manifestDigest .String ()), rc .getRepoLockKey (repo )}
1809- err := rc .withRSLocks (ctx , locks , func () error {
1814+ err := rc .withRSLocks (ctx , []string {rc .getRepoLockKey (repo )}, func () error {
18101815 protoRepoMeta , err := rc .getProtoRepoMeta (ctx , repo )
18111816 if err != nil {
18121817 if errors .Is (err , zerr .ErrRepoMetaNotFound ) {
0 commit comments