-
Bug
-
Resolution: Done-Errata
-
Major
-
quay-v3.8.0
When a manifest list is mirrored to Quay, individual images are not georeplicated across all geolocations, mirroring jobs are not executed. This is the situation before mirroring:
quay=# select count(*) from imagestorageplacement where location_id = 9; count ------- 25 (1 row) quay=# select count(*) from imagestorageplacement where location_id = 10; count ------- 25 (1 row) quay=# select count(*) from imagestorageplacement where location_id = 11; count ------- 25 (1 row)
After mirroring the latest tag from docker.io/postgres, we see that the number of layers in the primary storage increased, but secondary storage does not contain any of the mirrored layers:
quay=# select count(*) from imagestorageplacement where location_id = 9; count ------- 25 (1 row) quay=# select count(*) from imagestorageplacement where location_id = 10; count ------- 137 (1 row) quay=# select count(*) from imagestorageplacement where location_id = 11; count ------- 25 (1 row)
No mirroring jobs have been issued for this sync and storage ends in this status until the backfill replication worker is run manually. This does not happen when we copy individual images, for instance if I mirror quay.io/redhat/quay:v3.3.4 all layers are copied over immediately:
quay=# select count(*) from imagestorageplacement where location_id = 9; count ------- 44 (1 row) quay=# select count(*) from imagestorageplacement where location_id = 10; count ------- 156 (1 row) quay=# select count(*) from imagestorageplacement where location_id = 11; count ------- 44 (1 row)
We replicated the same behaviour on the client's machines, we executed a copy of the same image from Docker and then two individual tags from Quay, the two tags were replicated immediately. After executing the backfill script, we see that once again all storage engines are synced:
quay=# select count(*) from imagestorageplacement where location_id = 9; count ------- 156 (1 row) quay=# select count(*) from imagestorageplacement where location_id = 10; count ------- 156 (1 row) quay=# select count(*) from imagestorageplacement where location_id = 11; count ------- 156 (1 row)
Please check, thank you!
- links to
-
RHBA-2023:120406 Red Hat Quay v3.9.2 minor release
- mentioned on