Page MenuHomePhabricator

Cross-datacenter Docker Registry replication broken since 2025-04-27
Closed, ResolvedPublic

Event Timeline

This is at least High and possibly UBN!

root@ms-fe2009:~# swift stat docker_registry_codfw
               Account: AUTH_docker
             Container: docker_registry_codfw
               Objects: 1963747
                 Bytes: 9865351275542
[..]

vs

oot@ms-fe1009:~# swift stat docker_registry_codfw
               Account: AUTH_docker
             Container: docker_registry_codfw
               Objects: 1513819
                 Bytes: 7579165002418

So it doesn't seem to be a metric issue :( The replication has been broken since May, we'll need an alarm for it.

I understand why SRE-swift-storage got tagged, but: replication between eqiad and codfw does not happen for the ms clusters - the user is responsible for any replication (we fudge this a little as far as mediawiki is concerned with the weekly rclone job).

By which I mean: something above swift is meant to do this, not swift itself.

OK, the above turns out not to be true, it's just what I thought was true for my entire time here :(

It turns out we did (back in 2019, before my time) arrange for this in swift (T214289). Upstream docs are here.

Mentioned in SAL (#wikimedia-operations) [2025-12-18T09:36:43Z] <Emperor> restart swift-container-sync on ms-be2081 T413008

At least one of the problems is that the container is damaged - there are objects in the container db that don't exist on disk e.g.:

root@ms-fe2009:/home/mvernon# swift list docker_registry_codfw --prefix files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/0ac43c8d-5203-4cbb-9b28-a9a3cec7d60f/hashstates/sha256/
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/0ac43c8d-5203-4cbb-9b28-a9a3cec7d60f/hashstates/sha256/453267
root@ms-fe2009:/home/mvernon# swift stat docker_registry_codfw files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/0ac43c8d-5203-4cbb-9b28-a9a3cec7d60f/hashstates/sha256/453267
Object HEAD failed: http://swift.svc.codfw.wmnet/v1/AUTH_docker/docker_registry_codfw/files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/0ac43c8d-5203-4cbb-9b28-a9a3cec7d60f/hashstates/sha256/453267 404 Not Found
Failed Transaction ID: tx1f5edef4832f4bf68cc87-006943d3ef

This then breaks the replicator which doesn't even understand the error:

Dec 18 09:36:31 ms-be2081 container-sync[809088]: ERROR Syncing /srv/swift-storage/accounts1/containers/19492/375/4c244b8ad285838b1df91b5193ff8375/4c244b8ad285838b1df91b5193ff8375.db {'ROWID': 4401258, 'name': 'files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/0ac43c8d-5203-4cbb-9b28-a9a3cec7d60f/hashstates/sha256/453267', 'created_at': '1744938403.01136', 'size': 108, 'content_type': 'application/octet-stream', 'etag': '04b7b763bc85b4d2b3d95769bc87b669', 'deleted': 0, 'storage_policy_index': 0}: #012Traceback (most recent call last):#012  File "/usr/lib/python3/dist-packages/swift/container/sync.py", line 622, in container_sync_row#012    raise Exception(#012Exception: Unknown exception trying to GET: 'AUTH_docker' 'docker_registry_codfw' 'files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/0ac43c8d-5203-4cbb-9b28-a9a3cec7d60f/hashstates/sha256/453267' (txn: tx6502691d5bc343ebbd651-006943cb1f)

And we can see on that server that the sync is going nowhere...

background.log:Dec 18 10:11:20 ms-be2081 container-sync: Container sync report: AUTH_docker/docker_registry_codfw, time window start: 1766052380.2261772, time window end: 1766052680.2847583, puts: 0, posts: 0, deletes: 0, bytes: 0, sync_point1: 4407377, sync_point2: 4401204, total_rows: 5812137 (txn: tx8410df6ea677402da9c00-006943d345)
background.log:Dec 18 10:16:20 ms-be2081 container-sync: Container sync report: AUTH_docker/docker_registry_codfw, time window start: 1766052680.2902746, time window end: 1766052980.3537154, puts: 0, posts: 0, deletes: 0, bytes: 0, sync_point1: 4407377, sync_point2: 4401204, total_rows: 5812137 (txn: txc002c6b9731942da96673-006943d466)

And the summary:

Dec 18 08:51:02 ms-be2081 container-sync: Since Thu Dec 18 07:50:57 2025: 12 synced [0 deletes, 0 puts], 0 skipped, 1583 failed (txn: tx71bc061fffed4b3b87059-006943c06f)
elukey@ms-be2081:~$ sudo journalctl -u swift-container-sync.service| egrep "\.db " | grep "Unknown exception" | egrep -o "'name': 'files/.*', 'created" | cut -d "'" -f 4 | sort | uniq
files/docker/registry/v2/repositories/amd-gpu-tester/_uploads/f0f238f5-4ac9-4b33-97d3-02343642e0c4/hashstates/sha256/0
files/docker/registry/v2/repositories/amd-pytorch23/_uploads/4d81ae3f-3209-4b31-a5b3-eb90ecf96546/hashstates/sha256/2497414924
files/docker/registry/v2/repositories/bookworm/_uploads/269ba3c5-53f0-41eb-abde-cf376b5b77f6/startedat
files/docker/registry/v2/repositories/buster/_uploads/58dec3a3-b944-4dfa-9ab0-94a189e700be/hashstates/sha256/0
files/docker/registry/v2/repositories/ceph/_uploads/14779110-08bc-484f-96c5-fd21dc2f9a6b/data
files/docker/registry/v2/repositories/cfssl-issuer/_uploads/06a2ab6d-e463-4db1-b2ce-6dee93cd63e0/startedat
files/docker/registry/v2/repositories/coredns/_uploads/6fc5947f-5894-4608-8e9d-5f9a65e9b0de/hashstates/sha256/0
files/docker/registry/v2/repositories/envoy-future/_uploads/af9aacfe-5d88-4b25-bb5e-a21d6563e91a/hashstates/sha256/0
files/docker/registry/v2/repositories/eventrouter/_uploads/f4815d2c-6df2-4a86-ba4a-c33a03fe9d78/hashstates/sha256/12299914
files/docker/registry/v2/repositories/flink/_uploads/4a673e0e-bcd4-4e1c-8e0f-96b5e561a721/data
files/docker/registry/v2/repositories/flink/_uploads/897de4bc-5377-4620-ab1b-9c37e0f421b0/hashstates/sha256/74683302
files/docker/registry/v2/repositories/golang1.15/_uploads/ceffb44c-df40-48e5-8fb3-1c6b5da88806/data
files/docker/registry/v2/repositories/httpd-fcgi/_uploads/2d58ea7e-0933-4adb-b4a6-b49dc38d754e/hashstates/sha256/3873
files/docker/registry/v2/repositories/httpd-fcgi/_uploads/4d76687b-c0a0-4b91-8777-5d4c9861f416/hashstates/sha256/0
files/docker/registry/v2/repositories/knative-build/_uploads/06f610a9-84c2-4e98-8fc9-ddc6209d8b8e/startedat
files/docker/registry/v2/repositories/knative-serving-domain-mapping-webhook/_uploads/f7a0cd68-388e-4fa4-9521-142257852e0b/hashstates/sha256/2365
files/docker/registry/v2/repositories/knative-serving-webhook/_uploads/9cd617aa-73bd-453a-8643-136f3d4e4cbc/data
files/docker/registry/v2/repositories/kserve-agent/_uploads/2138b7cf-520b-41f3-9ad2-47cecf89bddb/data
files/docker/registry/v2/repositories/kserve-controller/_uploads/8f6ca1c1-1508-4741-a396-942973b99976/hashstates/sha256/30247021
files/docker/registry/v2/repositories/kserve-storage-initializer/_uploads/6c16e3ce-871d-4319-9688-95782e73d058/startedat
files/docker/registry/v2/repositories/mediawiki-httpd/_uploads/1f88554d-6b94-4072-9d5f-ad90788e4f2e/data
files/docker/registry/v2/repositories/mediawiki-httpd/_uploads/9534a76e-1e0c-4140-90f1-1c7f29c77202/hashstates/sha256/0
files/docker/registry/v2/repositories/nodejs18-slim/_uploads/99d9f18a-4244-4015-bfcf-6da56bc505dd/hashstates/sha256/0
files/docker/registry/v2/repositories/openjdk-17-jre/_uploads/06c27615-b713-46e7-976b-8371be665552/startedat
files/docker/registry/v2/repositories/php7.4-cli/_uploads/04e69509-1923-4b66-bb36-b9cf32c1b3fe/hashstates/sha256/0
files/docker/registry/v2/repositories/php7.4-fpm-multiversion-base/_uploads/08fb6155-9bf6-4981-a84c-c01367609b88/hashstates/sha256/0
files/docker/registry/v2/repositories/php7.4-fpm-multiversion-base/_uploads/a335c6f0-6bc4-498e-874c-1a9b24ab8f2c/hashstates/sha256/0
files/docker/registry/v2/repositories/php7.4-fpm/_uploads/ec5346ce-f205-4b36-872d-184697650848/data
files/docker/registry/v2/repositories/php8.1-cli/_uploads/96ee4152-fcf8-4aba-90f9-b60e6c0eebe8/hashstates/sha256/4826
files/docker/registry/v2/repositories/python2-build-buster/_uploads/9d781fe7-3f7e-4f95-b61d-ee592645ef5c/hashstates/sha256/0
files/docker/registry/v2/repositories/python3-bookworm/_uploads/12d4819b-28e9-4da9-af9c-4da2e8816132/data
files/docker/registry/v2/repositories/python3-build-bullseye/_uploads/3fecd93c-7d63-4ebe-a4e6-6b7cb954019c/hashstates/sha256/892
files/docker/registry/v2/repositories/python3-build-buster/_uploads/0b67a151-d150-4a85-b183-ae977ad857c9/hashstates/sha256/0
files/docker/registry/v2/repositories/releng/quibble-bullseye-php74-coverage/_uploads/32e7bdec-1de2-4ac2-aae4-d44f469a7809/hashstates/sha256/248
files/docker/registry/v2/repositories/releng/quibble-bullseye-php74-coverage/_uploads/d94f4a31-c3ec-43d8-b392-49b056a6f90e/hashstates/sha256/0
files/docker/registry/v2/repositories/releng/quibble-bullseye-php74/_uploads/ac285a4f-869d-4db7-a1ff-f5fbe360b882/hashstates/sha256/0
files/docker/registry/v2/repositories/releng/quibble-fresnel/_uploads/3ad30e3a-d0d1-4398-942a-5e3c643ba95d/hashstates/sha256/0
files/docker/registry/v2/repositories/releng/quibble-fresnel/_uploads/6888c6a0-d618-4da2-b8d5-2debfccff496/data
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-javascript-all/_uploads/0da217d3-6926-4e2c-a409-b8aa2996f3c2/hashstates/sha256/267
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-javascript-all/_uploads/79874efc-0f95-477a-830b-975a141f0505/hashstates/sha256/0
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-javascript-all/_uploads/bcd0fdd2-60ff-4760-a9d0-cd6626410dd2/startedat
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-javascript-all/_uploads/d092e89d-3e16-4722-bd8f-a8bf2e904f94/startedat
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-python3-all/_uploads/29663922-8d72-44dc-8fe8-936f70c007dd/hashstates/sha256/190
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-python3-all/_uploads/6ba2642b-b29c-4e38-babc-0df76e0ea7ab/data
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-python3-all/_uploads/702059f0-d58e-4402-8afb-477d15ca18c5/hashstates/sha256/0
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/361a506d-5a53-43a1-a4e1-295f068de790/data
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/75e852af-8318-4958-8943-cfb603f8cc05/hashstates/sha256/3247
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/d2cec1db-dd97-4eb3-8b57-f61d2b7a32d5/startedat
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/d6330de2-86b0-4627-aa80-170f1316eb72/data
files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/f3021e72-7deb-41c1-b701-3f9ada0cc820/data
files/docker/registry/v2/repositories/repos/releng/scap/bullseye/_uploads/071c2ef5-71eb-43ff-bdb1-4fce2ba3517c/hashstates/sha256/3265
files/docker/registry/v2/repositories/repos/releng/scap/bullseye/_uploads/11d38b4e-97b1-47a4-bf69-7f6da7633d36/hashstates/sha256/2101
files/docker/registry/v2/repositories/repos/releng/scap/buster/_uploads/01ca907e-3658-40b8-807b-63ec316cf75a/data
files/docker/registry/v2/repositories/repos/releng/scap/buster/_uploads/34c06852-ac28-4133-b2a0-53d8d3495ac3/startedat
files/docker/registry/v2/repositories/repos/search-platform/cirrus-streaming-updater/producer/_uploads/26ba7c5c-14df-477b-8ec1-8f51203f694c/hashstates/sha256/0
files/docker/registry/v2/repositories/repos/test-platform/catalyst/patchdemo/_uploads/43ee8765-6802-4010-91db-da66427f1bd4/startedat
files/docker/registry/v2/repositories/repos/test-platform/catalyst/patchdemo/_uploads/ea1b346a-3b89-4cca-b3e5-b82389d69354/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/09ea819a-843c-483b-9555-50bd9a93ba23/hashstates/sha256/453266
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/0ac43c8d-5203-4cbb-9b28-a9a3cec7d60f/hashstates/sha256/453267
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/12afce86-9bdb-4501-beb9-7bd970a290f6/hashstates/sha256/44921528
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/13d977a0-90fe-47c9-b2af-75234a801ab6/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/1cca1f50-2fa6-4754-8a8f-e732cd4508aa/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/22c40b12-2e5a-44d6-86ca-4dced81a71dd/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/349f3ca0-932c-402e-afd0-f5cfe64b3f21/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/37c4789d-656a-413e-9a62-0d6bc1038078/hashstates/sha256/453257
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/3f520157-d61c-4113-8e0f-85590ca64d1a/startedat
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/4b9caf2a-e3bb-4cad-b3f5-b0d7413f4a92/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/5713fed0-58f7-4fa7-843b-5e90ce5d2299/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/5bfbb668-a678-45f8-bde8-2c2c09205a4a/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/823c4c19-1c1a-438b-9986-a54546c64e86/hashstates/sha256/16535
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/87ed016e-f4a8-4ddf-a65c-0b7eaca88b52/hashstates/sha256/16255
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/964f7f8f-9c5a-441b-85a5-322b38654a6e/hashstates/sha256/40285656
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/97f71b9d-597e-48ad-b289-74be296be902/hashstates/sha256/15591
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/a3202d28-afd2-4dc2-9705-c61fc26992cd/hashstates/sha256/40285733
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/aa4bc24d-6d3f-4160-b7b4-cda370d26962/hashstates/sha256/40285204
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/ac59f6e3-5cf5-4557-94e5-3014030b5dbe/hashstates/sha256/40285441
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/b8917150-c2c8-47fc-933c-6546b8e5e14d/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/bda2e41e-b339-40d3-8fa9-73d5c0f80b44/startedat
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/fbbfb3ae-0187-4719-a1e7-c42051023172/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/17dac947-80db-4afc-88fd-078d8c3eb115/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/19416d03-3ebb-4dcc-bfa1-65ee65d59fa0/startedat
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/26133e00-adb8-4514-827b-eb4c07e16a94/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/2e040bfb-435d-4c0f-86b4-fa31122565c0/hashstates/sha256/16417
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/4ffa0ae9-f50d-4bd9-878e-52b4ce5187d9/hashstates/sha256/18480
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/67ac9c4b-16b0-4602-9d7d-cd9bf4d69753/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/692d9f06-1198-4bc4-9eb8-3faaa7c65400/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/7c281cfa-6620-40e5-a6d8-aba84a6bb812/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/9cd255ae-4b8b-4d30-bb2c-1e660ef99474/hashstates/sha256/15744
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/ae7278ce-3485-4d77-b6f2-80e5ecb10a49/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/bb4a2a6b-f63b-4569-8a68-aa462ec27827/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/02255485-604c-4ea7-98b2-927feaaa136a/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/097e6b87-e3b7-4cf2-b406-42d838b0b646/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/0eb89240-9dde-44e5-a7eb-cf49a9f362f4/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/160b45af-90d2-4218-8215-1e6a931b0c2e/startedat
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/2f47b04e-875b-41c1-8fbe-1e1af8758193/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/2fcdea47-d7cf-453e-9150-1a393470889e/hashstates/sha256/14969996
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/3108fdb1-d8ec-465f-ab34-18809303196e/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/331f6d84-0aa8-46a7-8df7-ed42366129ae/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/44ed0f29-26cf-43f5-a24d-d61d7cb26eb6/hashstates/sha256/14362
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/4cf08b59-e063-4a0d-996e-2dd9ba11e484/hashstates/sha256/479
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/57636755-d856-466a-af89-a72e66cc2a52/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/64d5a418-4750-42a6-af46-2edd79698d84/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/77e18cdf-6755-4538-ba29-ecc0d32f9b61/hashstates/sha256/120338
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/7f542620-aa2b-40cc-a2e6-6cb9722ac2d0/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/993915c1-3b97-46c3-8793-b0eef677f0df/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/9bddc9da-d904-49e5-aa00-f5dd8d339ec0/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/bbeecd77-0452-41eb-ac47-f51dab3b0b91/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/c5f80786-d9b7-4477-afa9-8ca886153714/hashstates/sha256/15653
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/d9b40320-2fdf-49a7-a81a-ecb0015a3412/hashstates/sha256/7738
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/ee881ee8-c236-4527-ab7d-224b0de06bb9/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/f134043c-2836-43e4-b415-c9bff0a955dc/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/fbbd58db-1362-4d4c-8ca3-4f5271077c66/hashstates/sha256/13378
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/ff21da74-817b-4757-97a0-fc393012c88f/startedat
files/docker/registry/v2/repositories/restricted/mediawiki-webserver/_uploads/3358c059-2b89-4679-9544-9800396dbd9f/data
files/docker/registry/v2/repositories/rsyslog/_uploads/eeef6437-307a-404a-9d7c-affe779819cd/hashstates/sha256/2503726
files/docker/registry/v2/repositories/wikimedia/labs-codesearch/_uploads/ee61ca79-5b6f-4e16-bbc6-e0638f33088f/data
files/docker/registry/v2/repositories/wikimedia/labs-striker/_uploads/049eec7d-1a1f-40c0-8e30-eeb4d60f5f4b/hashstates/sha256/274
files/docker/registry/v2/repositories/wikimedia/machinelearning-liftwing-inference-services-edit-check/_uploads/3982b64e-b242-4b7b-bb3f-5307d565db43/hashstates/sha256/8952
files/docker/registry/v2/repositories/wikimedia/mediawiki-libs-shellbox/_uploads/38cf3056-e4a6-477f-8e05-c7d5ca742f08/data
files/docker/registry/v2/repositories/wikimedia/mediawiki-libs-shellbox/_uploads/9e8fe6f7-04b0-4e79-9daa-36bdaa693654/startedat
files/docker/registry/v2/repositories/wikimedia/mediawiki-libs-shellbox/_uploads/ac50f642-0e1a-4ea7-89de-7c05a04b444b/data
files/docker/registry/v2/repositories/wikimedia/mediawiki-services-chromium-render/_uploads/81a6fe90-910e-48d4-bec4-0fbc92291ef2/data
files/docker/registry/v2/repositories/wikimedia/mediawiki-services-chromium-render/_uploads/f177e4b6-fe58-4020-9ebb-bce667ad59a9/hashstates/sha256/3573
files/docker/registry/v2/repositories/wikimedia/operations-software-bitu/_uploads/48457049-8af8-48a6-af0b-0558e7d1a4cf/data
files/docker/registry/v2/repositories/wikimedia/operations-software-bitu/_uploads/a54eee8f-214c-46c8-a5fe-91929b5df14b/data
files/docker/registry/v2/repositories/wikimedia/operations-software-bitu/_uploads/c6afe58f-0aac-41bf-9497-f0f02b4fe9aa/startedat
files/docker/registry/v2/repositories/wikimedia/wikimedia-developer-portal/_uploads/0207a0dd-2a1a-4d84-9ad5-8135244dbf39/hashstates/sha256/2432905
files/docker/registry/v2/repositories/wikimedia/wikimedia-toolhub/_uploads/1b2872c1-b9a0-4018-a8d2-860cce887608/hashstates/sha256/0

There are false-positives in that list (e.g. the last one is a good object, but there was a timeout). To pick out the bad ones only, I used:

journalctl -o cat -u swift-container-sync.service -g 'Unknown exception trying to GET' | sed -e "s/.* 'name': '\([^']*\)'.*/\1/" | sort -u

Which gives us 134 objects, which I fed to phaste -

1files/docker/registry/v2/repositories/amd-gpu-tester/_uploads/f0f238f5-4ac9-4b33-97d3-02343642e0c4/hashstates/sha256/0
2files/docker/registry/v2/repositories/amd-pytorch23/_uploads/4d81ae3f-3209-4b31-a5b3-eb90ecf96546/hashstates/sha256/2497414924
3files/docker/registry/v2/repositories/bookworm/_uploads/269ba3c5-53f0-41eb-abde-cf376b5b77f6/startedat
4files/docker/registry/v2/repositories/buster/_uploads/58dec3a3-b944-4dfa-9ab0-94a189e700be/hashstates/sha256/0
5files/docker/registry/v2/repositories/ceph/_uploads/14779110-08bc-484f-96c5-fd21dc2f9a6b/data
6files/docker/registry/v2/repositories/cfssl-issuer/_uploads/06a2ab6d-e463-4db1-b2ce-6dee93cd63e0/startedat
7files/docker/registry/v2/repositories/coredns/_uploads/6fc5947f-5894-4608-8e9d-5f9a65e9b0de/hashstates/sha256/0
8files/docker/registry/v2/repositories/envoy-future/_uploads/af9aacfe-5d88-4b25-bb5e-a21d6563e91a/hashstates/sha256/0
9files/docker/registry/v2/repositories/eventrouter/_uploads/f4815d2c-6df2-4a86-ba4a-c33a03fe9d78/hashstates/sha256/12299914
10files/docker/registry/v2/repositories/flink/_uploads/4a673e0e-bcd4-4e1c-8e0f-96b5e561a721/data
11files/docker/registry/v2/repositories/flink/_uploads/897de4bc-5377-4620-ab1b-9c37e0f421b0/hashstates/sha256/74683302
12files/docker/registry/v2/repositories/golang1.15/_uploads/ceffb44c-df40-48e5-8fb3-1c6b5da88806/data
13files/docker/registry/v2/repositories/httpd-fcgi/_uploads/2d58ea7e-0933-4adb-b4a6-b49dc38d754e/hashstates/sha256/3873
14files/docker/registry/v2/repositories/httpd-fcgi/_uploads/4d76687b-c0a0-4b91-8777-5d4c9861f416/hashstates/sha256/0
15files/docker/registry/v2/repositories/knative-build/_uploads/06f610a9-84c2-4e98-8fc9-ddc6209d8b8e/startedat
16files/docker/registry/v2/repositories/knative-serving-domain-mapping-webhook/_uploads/f7a0cd68-388e-4fa4-9521-142257852e0b/hashstates/sha256/2365
17files/docker/registry/v2/repositories/knative-serving-webhook/_uploads/9cd617aa-73bd-453a-8643-136f3d4e4cbc/data
18files/docker/registry/v2/repositories/kserve-agent/_uploads/2138b7cf-520b-41f3-9ad2-47cecf89bddb/data
19files/docker/registry/v2/repositories/kserve-controller/_uploads/8f6ca1c1-1508-4741-a396-942973b99976/hashstates/sha256/30247021
20files/docker/registry/v2/repositories/kserve-storage-initializer/_uploads/6c16e3ce-871d-4319-9688-95782e73d058/startedat
21files/docker/registry/v2/repositories/mediawiki-httpd/_uploads/1f88554d-6b94-4072-9d5f-ad90788e4f2e/data
22files/docker/registry/v2/repositories/mediawiki-httpd/_uploads/9534a76e-1e0c-4140-90f1-1c7f29c77202/hashstates/sha256/0
23files/docker/registry/v2/repositories/nodejs18-slim/_uploads/99d9f18a-4244-4015-bfcf-6da56bc505dd/hashstates/sha256/0
24files/docker/registry/v2/repositories/openjdk-17-jre/_uploads/06c27615-b713-46e7-976b-8371be665552/startedat
25files/docker/registry/v2/repositories/php7.4-cli/_uploads/04e69509-1923-4b66-bb36-b9cf32c1b3fe/hashstates/sha256/0
26files/docker/registry/v2/repositories/php7.4-fpm-multiversion-base/_uploads/08fb6155-9bf6-4981-a84c-c01367609b88/hashstates/sha256/0
27files/docker/registry/v2/repositories/php7.4-fpm-multiversion-base/_uploads/a335c6f0-6bc4-498e-874c-1a9b24ab8f2c/hashstates/sha256/0
28files/docker/registry/v2/repositories/php7.4-fpm/_uploads/ec5346ce-f205-4b36-872d-184697650848/data
29files/docker/registry/v2/repositories/php8.1-cli/_uploads/96ee4152-fcf8-4aba-90f9-b60e6c0eebe8/hashstates/sha256/4826
30files/docker/registry/v2/repositories/python2-build-buster/_uploads/9d781fe7-3f7e-4f95-b61d-ee592645ef5c/hashstates/sha256/0
31files/docker/registry/v2/repositories/python3-bookworm/_uploads/12d4819b-28e9-4da9-af9c-4da2e8816132/data
32files/docker/registry/v2/repositories/python3-build-bullseye/_uploads/3fecd93c-7d63-4ebe-a4e6-6b7cb954019c/hashstates/sha256/892
33files/docker/registry/v2/repositories/python3-build-buster/_uploads/0b67a151-d150-4a85-b183-ae977ad857c9/hashstates/sha256/0
34files/docker/registry/v2/repositories/releng/quibble-bullseye-php74-coverage/_uploads/32e7bdec-1de2-4ac2-aae4-d44f469a7809/hashstates/sha256/248
35files/docker/registry/v2/repositories/releng/quibble-bullseye-php74-coverage/_uploads/d94f4a31-c3ec-43d8-b392-49b056a6f90e/hashstates/sha256/0
36files/docker/registry/v2/repositories/releng/quibble-bullseye-php74/_uploads/ac285a4f-869d-4db7-a1ff-f5fbe360b882/hashstates/sha256/0
37files/docker/registry/v2/repositories/releng/quibble-fresnel/_uploads/3ad30e3a-d0d1-4398-942a-5e3c643ba95d/hashstates/sha256/0
38files/docker/registry/v2/repositories/releng/quibble-fresnel/_uploads/6888c6a0-d618-4da2-b8d5-2debfccff496/data
39files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-javascript-all/_uploads/0da217d3-6926-4e2c-a409-b8aa2996f3c2/hashstates/sha256/267
40files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-javascript-all/_uploads/79874efc-0f95-477a-830b-975a141f0505/hashstates/sha256/0
41files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-javascript-all/_uploads/bcd0fdd2-60ff-4760-a9d0-cd6626410dd2/startedat
42files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-javascript-all/_uploads/d092e89d-3e16-4722-bd8f-a8bf2e904f94/startedat
43files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-python3-all/_uploads/29663922-8d72-44dc-8fe8-936f70c007dd/hashstates/sha256/190
44files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-python3-all/_uploads/6ba2642b-b29c-4e38-babc-0df76e0ea7ab/data
45files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-evaluator/wasm-python3-all/_uploads/702059f0-d58e-4402-8afb-477d15ca18c5/hashstates/sha256/0
46files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/361a506d-5a53-43a1-a4e1-295f068de790/data
47files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/75e852af-8318-4958-8943-cfb603f8cc05/hashstates/sha256/3247
48files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/d2cec1db-dd97-4eb3-8b57-f61d2b7a32d5/startedat
49files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/d6330de2-86b0-4627-aa80-170f1316eb72/data
50files/docker/registry/v2/repositories/repos/abstract-wiki/wikifunctions/function-orchestrator/_uploads/f3021e72-7deb-41c1-b701-3f9ada0cc820/data
51files/docker/registry/v2/repositories/repos/releng/scap/bullseye/_uploads/071c2ef5-71eb-43ff-bdb1-4fce2ba3517c/hashstates/sha256/3265
52files/docker/registry/v2/repositories/repos/releng/scap/bullseye/_uploads/11d38b4e-97b1-47a4-bf69-7f6da7633d36/hashstates/sha256/2101
53files/docker/registry/v2/repositories/repos/releng/scap/buster/_uploads/01ca907e-3658-40b8-807b-63ec316cf75a/data
54files/docker/registry/v2/repositories/repos/releng/scap/buster/_uploads/34c06852-ac28-4133-b2a0-53d8d3495ac3/startedat
55files/docker/registry/v2/repositories/repos/search-platform/cirrus-streaming-updater/producer/_uploads/26ba7c5c-14df-477b-8ec1-8f51203f694c/hashstates/sha256/0
56files/docker/registry/v2/repositories/repos/test-platform/catalyst/patchdemo/_uploads/43ee8765-6802-4010-91db-da66427f1bd4/startedat
57files/docker/registry/v2/repositories/repos/test-platform/catalyst/patchdemo/_uploads/ea1b346a-3b89-4cca-b3e5-b82389d69354/hashstates/sha256/0
58files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/09ea819a-843c-483b-9555-50bd9a93ba23/hashstates/sha256/453266
59files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/0ac43c8d-5203-4cbb-9b28-a9a3cec7d60f/hashstates/sha256/453267
60files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/12afce86-9bdb-4501-beb9-7bd970a290f6/hashstates/sha256/44921528
61files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/13d977a0-90fe-47c9-b2af-75234a801ab6/hashstates/sha256/0
62files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/1cca1f50-2fa6-4754-8a8f-e732cd4508aa/hashstates/sha256/0
63files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/22c40b12-2e5a-44d6-86ca-4dced81a71dd/data
64files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/349f3ca0-932c-402e-afd0-f5cfe64b3f21/hashstates/sha256/0
65files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/37c4789d-656a-413e-9a62-0d6bc1038078/hashstates/sha256/453257
66files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/3f520157-d61c-4113-8e0f-85590ca64d1a/startedat
67files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/4b9caf2a-e3bb-4cad-b3f5-b0d7413f4a92/hashstates/sha256/0
68files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/5713fed0-58f7-4fa7-843b-5e90ce5d2299/hashstates/sha256/0
69files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/5bfbb668-a678-45f8-bde8-2c2c09205a4a/data
70files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/823c4c19-1c1a-438b-9986-a54546c64e86/hashstates/sha256/16535
71files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/87ed016e-f4a8-4ddf-a65c-0b7eaca88b52/hashstates/sha256/16255
72files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/964f7f8f-9c5a-441b-85a5-322b38654a6e/hashstates/sha256/40285656
73files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/97f71b9d-597e-48ad-b289-74be296be902/hashstates/sha256/15591
74files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/a3202d28-afd2-4dc2-9705-c61fc26992cd/hashstates/sha256/40285733
75files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/aa4bc24d-6d3f-4160-b7b4-cda370d26962/hashstates/sha256/40285204
76files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/ac59f6e3-5cf5-4557-94e5-3014030b5dbe/hashstates/sha256/40285441
77files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/b8917150-c2c8-47fc-933c-6546b8e5e14d/data
78files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/bda2e41e-b339-40d3-8fa9-73d5c0f80b44/startedat
79files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/fbbfb3ae-0187-4719-a1e7-c42051023172/data
80files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/17dac947-80db-4afc-88fd-078d8c3eb115/hashstates/sha256/0
81files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/19416d03-3ebb-4dcc-bfa1-65ee65d59fa0/startedat
82files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/26133e00-adb8-4514-827b-eb4c07e16a94/hashstates/sha256/0
83files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/2e040bfb-435d-4c0f-86b4-fa31122565c0/hashstates/sha256/16417
84files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/4ffa0ae9-f50d-4bd9-878e-52b4ce5187d9/hashstates/sha256/18480
85files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/67ac9c4b-16b0-4602-9d7d-cd9bf4d69753/hashstates/sha256/0
86files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/692d9f06-1198-4bc4-9eb8-3faaa7c65400/data
87files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/7c281cfa-6620-40e5-a6d8-aba84a6bb812/data
88files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/9cd255ae-4b8b-4d30-bb2c-1e660ef99474/hashstates/sha256/15744
89files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/ae7278ce-3485-4d77-b6f2-80e5ecb10a49/data
90files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/bb4a2a6b-f63b-4569-8a68-aa462ec27827/hashstates/sha256/0
91files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/02255485-604c-4ea7-98b2-927feaaa136a/data
92files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/097e6b87-e3b7-4cf2-b406-42d838b0b646/data
93files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/0eb89240-9dde-44e5-a7eb-cf49a9f362f4/hashstates/sha256/0
94files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/160b45af-90d2-4218-8215-1e6a931b0c2e/startedat
95files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/2f47b04e-875b-41c1-8fbe-1e1af8758193/hashstates/sha256/0
96files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/2fcdea47-d7cf-453e-9150-1a393470889e/hashstates/sha256/14969996
97files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/3108fdb1-d8ec-465f-ab34-18809303196e/hashstates/sha256/0
98files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/331f6d84-0aa8-46a7-8df7-ed42366129ae/data
99files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/44ed0f29-26cf-43f5-a24d-d61d7cb26eb6/hashstates/sha256/14362
100files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/4cf08b59-e063-4a0d-996e-2dd9ba11e484/hashstates/sha256/479
101files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/57636755-d856-466a-af89-a72e66cc2a52/data
102files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/64d5a418-4750-42a6-af46-2edd79698d84/hashstates/sha256/0
103files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/77e18cdf-6755-4538-ba29-ecc0d32f9b61/hashstates/sha256/120338
104files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/7f542620-aa2b-40cc-a2e6-6cb9722ac2d0/data
105files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/993915c1-3b97-46c3-8793-b0eef677f0df/data
106files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/9bddc9da-d904-49e5-aa00-f5dd8d339ec0/data
107files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/bbeecd77-0452-41eb-ac47-f51dab3b0b91/hashstates/sha256/0
108files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/c5f80786-d9b7-4477-afa9-8ca886153714/hashstates/sha256/15653
109files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/d9b40320-2fdf-49a7-a81a-ecb0015a3412/hashstates/sha256/7738
110files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/ee881ee8-c236-4527-ab7d-224b0de06bb9/data
111files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/f134043c-2836-43e4-b415-c9bff0a955dc/hashstates/sha256/0
112files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/fbbd58db-1362-4d4c-8ca3-4f5271077c66/hashstates/sha256/13378
113files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/ff21da74-817b-4757-97a0-fc393012c88f/startedat
114files/docker/registry/v2/repositories/restricted/mediawiki-webserver/_uploads/3358c059-2b89-4679-9544-9800396dbd9f/data
115files/docker/registry/v2/repositories/rsyslog/_uploads/eeef6437-307a-404a-9d7c-affe779819cd/hashstates/sha256/2503726
116files/docker/registry/v2/repositories/wikimedia/labs-codesearch/_uploads/ee61ca79-5b6f-4e16-bbc6-e0638f33088f/data
117files/docker/registry/v2/repositories/wikimedia/labs-striker/_uploads/049eec7d-1a1f-40c0-8e30-eeb4d60f5f4b/hashstates/sha256/274
118files/docker/registry/v2/repositories/wikimedia/machinelearning-liftwing-inference-services-edit-check/_uploads/3982b64e-b242-4b7b-bb3f-5307d565db43/hashstates/sha256/8952
119files/docker/registry/v2/repositories/wikimedia/mediawiki-libs-shellbox/_uploads/38cf3056-e4a6-477f-8e05-c7d5ca742f08/data
120files/docker/registry/v2/repositories/wikimedia/mediawiki-libs-shellbox/_uploads/9e8fe6f7-04b0-4e79-9daa-36bdaa693654/startedat
121files/docker/registry/v2/repositories/wikimedia/mediawiki-libs-shellbox/_uploads/ac50f642-0e1a-4ea7-89de-7c05a04b444b/data
122files/docker/registry/v2/repositories/wikimedia/mediawiki-services-chromium-render/_uploads/81a6fe90-910e-48d4-bec4-0fbc92291ef2/data
123files/docker/registry/v2/repositories/wikimedia/mediawiki-services-chromium-render/_uploads/f177e4b6-fe58-4020-9ebb-bce667ad59a9/hashstates/sha256/3573
124files/docker/registry/v2/repositories/wikimedia/operations-software-bitu/_uploads/48457049-8af8-48a6-af0b-0558e7d1a4cf/data
125files/docker/registry/v2/repositories/wikimedia/operations-software-bitu/_uploads/a54eee8f-214c-46c8-a5fe-91929b5df14b/data
126files/docker/registry/v2/repositories/wikimedia/operations-software-bitu/_uploads/c6afe58f-0aac-41bf-9497-f0f02b4fe9aa/startedat
127files/docker/registry/v2/repositories/wikimedia/wikimedia-developer-portal/_uploads/0207a0dd-2a1a-4d84-9ad5-8135244dbf39/hashstates/sha256/2432905
128files/docker/registry/v2/repositories/wikimedia/wikimedia-toolhub/_uploads/1b2872c1-b9a0-4018-a8d2-860cce887608/hashstates/sha256/0
129segments/2f6/46f636b65722f72656769737472792f76322f7265706f7369746f726965732f7265706f732f77696b696d656469612f6d6564696177696b692d6d756c746976657273696f6e2f5f75706c6f6164732f33616439393064322d376361312d343561652d393431352d3562656231343133633465312f6461746178c6d20dce7bd5e002514d05bf650816ff790545e6714b51376fcba3d7ae04c3da39a3ee5e6b4b0d3255bfef95601890afd80709/0000000000000040
130segments/2f6/46f636b65722f72656769737472792f76322f7265706f7369746f726965732f7265706f732f77696b696d656469612f6d6564696177696b692d6d756c746976657273696f6e2f5f75706c6f6164732f35393463353336362d386230362d343530372d386337322d6334633362323338323763382f64617461e5f13717009b740e9c9dc3bb0c69d26003001c1019af1fad4fd0112baa0cb645da39a3ee5e6b4b0d3255bfef95601890afd80709/0000000000000002
131segments/2f6/46f636b65722f72656769737472792f76322f7265706f7369746f726965732f7265706f732f77696b696d656469612f6d6564696177696b692d6d756c746976657273696f6e2f5f75706c6f6164732f36646463396531302d383230312d346237662d386532632d3635393066656263623631322f64617461a3416fd51689d24dd8b40c49a19381acf1d04d485935f30867f67234fbdf891dda39a3ee5e6b4b0d3255bfef95601890afd80709/0000000000000013
132segments/2f6/46f636b65722f72656769737472792f76322f7265706f7369746f726965732f7265706f732f77696b696d656469612f6d6564696177696b692d6d756c746976657273696f6e2f5f75706c6f6164732f37653766333966622d353636392d343138312d386534322d3662303134373864623361302f64617461ab718ca56a65a87ec882a5a2b390e4fcda0a896d3c7022684329576e2f0fd316da39a3ee5e6b4b0d3255bfef95601890afd80709/0000000000000042
133segments/2f6/46f636b65722f72656769737472792f76322f7265706f7369746f726965732f7265706f732f77696b696d656469612f6d6564696177696b692d6d756c746976657273696f6e2f5f75706c6f6164732f61303165646564332d313235302d346563322d383863662d6430373162663761363565352f646174610fa04935262a6a3a68c30dea79c9f6419443dd95fe2727b778f795e626ade291da39a3ee5e6b4b0d3255bfef95601890afd80709/0000000000000003
134segments/2f6/46f636b65722f72656769737472792f76322f7265706f7369746f726965732f7265706f732f77696b696d656469612f6d6564696177696b692d6d756c746976657273696f6e2f5f75706c6f6164732f66653363663137662d373839632d343661332d613261312d3036306639356635383538662f6461746114f607b1cd43720bea2ac8d1c91576521af24e42292497f86d8f151b686cda54da39a3ee5e6b4b0d3255bfef95601890afd80709/0000000000000038

Earlier, we tested an approach (used before with ghost swift objects cf T327253) of deleting one such bad object (files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/0ac43c8d-5203-4cbb-9b28-a9a3cec7d60f/hashstates/sha256/453267) which did work (after a couple of minutes).

So we could feed this list (or the pipeline) to something like:

if swift stat docker_registry_codfw objectname 2>&1 | grep -q '404 Not Found'
  then swift delete docker_registry_codfw objectname 2>&1 | grep -q '404 Not Found'
fi

which is what the remove ghost objects cookbook does (we can't use that cookbook because it's solving a different but related problem).

A few other notes (beyond "we should stop using swift_container_sync already"):
Locate the container DB files with swift-get-nodes /etc/swift/container.ring.gz AUTH_docker docker_registry_codfw, which tells us:

/srv/swift-storage/accounts1/containers/19492/375/4c244b8ad285838b1df91b5193ff8375 on ms-be2089,
/srv/swift-storage/accounts1/containers/19492/375/4c244b8ad285838b1df91b5193ff8375 on ms-be2081, and
/srv/swift-storage//accounts0/containers/19492/375/4c244b8ad285838b1df91b5193ff8375 on ms-be2083

And have a quick check for consistent-count with sudo sqlite3 --readonly [path] "SELECT COUNT(*) FROM object WHERE deleted == 0", we had two containers with 1963748, one with 1963747, which I don't propose to worry about.

I did kick off a shell fragment to do a comprehensive check of the container, but it's going to take Quite A While, as it has to stat 2million objects:

sad=0
happy=0
for obj in $(swift list docker_registry_codfw) ; do
  if swift stat docker_registry_codfw "$obj" 2>&1 | grep -q '404 Not Found'
  then echo "$obj" >> /home/mvernon/sadobjs
  let sad++
  else let happy++
  fi
done

I think the pragmatic next step is to delete the 134 objects in P86731 (iff they still 404), and wait a bit.

I think the pragmatic next step is to delete the 134 objects in P86731 (iff they still 404), and wait a bit.

+1, let's do it. Should I kick it off?

Many thanks for investigating this @MatthewVernon and @elukey.

It's interesting how _uploads paths dominate the set of bad objects, since it suggests there's something about how the registry's swift driver implements push storage that tickles something odd in swift. While I doubt there's anything we can take specifically from that observation to make this less likely to recur in the future (though it's questionable whether upload storage should be replicated at all), it's still notable.

In any case, I'm happy to take on adding an alert for this - e.g., based on cross-cluster swift_account_stats_bytes_total drift.

I've executed the following from ms-fe2009, deleting the objects that Matthew highlighted above:

while read object; do if swift stat docker_registry_codfw $object 2>&1 | grep -q  '404 Not Found'; then swift delete docker_registry_codfw $object; fi; done < ghost_objects.txt

I got 404 Not Found for all Deletes.

My unfounded suspicion is that the bad objects were trying to be uploaded during an incident affecting ms swift (commons scraping, DDoS, etc.)

After the container-sync restart on ms-be2081, I noticed the following errors and I tried to safely delete them too:

files/docker/registry/v2/repositories/amd-gpu-tester/_uploads/f0f238f5-4ac9-4b33-97d3-02343642e0c4/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_layers/sha256/00a1bf442834e61efe15d7a9f88e30fa89858e336ce7672547367098e790d57f/link
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion/_uploads/6ff59f3d-de7d-4bc7-9368-ebba76896db3/hashstates/sha256/53349
files/docker/registry/v2/repositories/wikimedia/operations-software-bitu/_uploads/75c0b003-8b9f-4c25-bb17-acde65da8fa6/hashstates/sha256/0
files/docker/registry/v2/repositories/mediawiki-httpd/_uploads/f527d720-0e7a-4829-a457-02473b8c86d6/startedat
root@ms-fe1009:~# swift stat docker_registry_codfw
               Account: AUTH_docker
             Container: docker_registry_codfw
               Objects: 1514864

The number of objects is already higher than earlier on, and we don't see any error now in the contaiener sync logs. What we did was picking up the object files from the container-sync logs erroring out, and trying to delete them if swift stat already returned HTTP 404 not found. This seems to propagate the DELETE to all the three nodes handling the db sync files (at least, this is my understanding).

Let's wait some time to see if the metrics show some improvement as well. The sync process is very slow so let's be patient :)

Yes, I think we're at "give it some time", but I think we've unblocked replication codfw->eqiad now.

Dec 18 14:36:26 ms-be2081 container-sync: Since Thu Dec 18 13:36:25 2025: 12 synced [0 deletes, 0 puts], 0 skipped, 1559 failed (txn: tx37e5caaaa6a247a498cbd-0069441160)
Dec 18 16:24:39 ms-be2081 container-sync: Since Thu Dec 18 15:24:26 2025: 12 synced [0 deletes, 2890 puts], 0 skipped, 550 failed (txn: txde00e43295194486b58d0-0069442ac7)
Dec 18 17:24:44 ms-be2081 container-sync: Since Thu Dec 18 16:24:39 2025: 12 synced [0 deletes, 520 puts], 0 skipped, 1176 failed (txn: txa2608cc82361456586343-00694438db)

Not totally ideal.

Found some more with journalctl -o cat -u swift-container-sync.service -g 'Unknown exception trying to GET' -S 15:33 | sed -e "s/.* 'name': '\([^']*\)'.*/\1/" | sort -u (another 99), which are
P86733

I'll remove them as before.

Dec 18 18:24:54 ms-be2081 container-sync: Since Thu Dec 18 17:24:44 2025: 12 synced [0 deletes, 1901 puts], 0 skipped, 285 failed (txn: tx42793638805744b7be84e-00694446f6)

This morning, there are 1519692 objects in docker_registry_codfw in eqiad, most recent sync from ms-be2081:

Dec 19 08:25:29 ms-be2081 container-sync: Since Fri Dec 19 07:25:28 2025: 12 synced [0 deletes, 0 puts], 0 skipped, 55 failed (txn: tx53474ae789ac4f3e87e02-0069450acd)

Since 17:33 yesterday, 4 more bad objects from ms-be2081:

mvernon@ms-be2081:/var/log/swift$ journalctl -o cat -u swift-container-sync.service -g 'Unknown exception trying to GET' -S "2025-12-18 17:33" | sed -e "s/.* 'name': '\([^']*\)'.*/\1/" | sort -u 
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/643ba817-e0f6-4ef8-8be4-40d09c7f6f51/startedat
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-cli/_uploads/f4358af0-819e-4825-a919-a1b07995fc34/data
files/docker/registry/v2/repositories/restricted/mediawiki-multiversion-debug/_uploads/48436a83-d25f-42ee-8a04-1cacb1beb793/hashstates/sha256/0
files/docker/registry/v2/repositories/restricted/mediawiki-webserver/_uploads/45704fdf-6da9-4987-bfd3-9a64980e8e4b/hashstates/sha256/0

I will do the delete-if-still-404 operation on those 4.

Dec 19 10:25:35 ms-be2081 container-sync: Since Fri Dec 19 09:25:31 2025: 12 synced [0 deletes, 3855 puts], 0 skipped, 5 failed (txn: tx3dc9763b5b7b43baa458e-006945281e)

and 1531266 objects

This has continued to proceed today:

Dec 19 17:26:37 ms-be2081 container-sync: Since Fri Dec 19 16:26:33 2025: 12 synced [0 deletes, 4154 puts], 0 skipped, 2 failed (txn: tx30b3c67d1a084f869d3cd-0069458acc)

And the container now has 1575546 objects in. At a rough rate of 6000 objects/hour (what we've seen today), we'd hope to have eqiad caught up to codfw around Monday lunchtime...

The sync seems now complete! Nice work :)

Next steps before closing: update documentation in Wikitech and write a summary here for posterity.

I think we're almost-but-not-quite-entirely caught up, but yes, I think the reported issue is done; If the follow-ups aren't going to be finished before year-end, can we close this task and make another for them?

elukey claimed this task.

Added https://wikitech.wikimedia.org/wiki/Docker-registry/Runbook#The_replication_between_Swift_codfw_and_eqiad_is_not_working.

Summary:

The Docker Registry is the only Swift client that uses the native container-sync replication to mirror codfw images to eqiad. For some reason that we didn't get, the 3 swift-container-sync replicas running on ms-be2* hosts that are/were handling the Registry's container replication got into an inconsistent state, and they started to report problems while mirroring to eqiad. We discovered that all the errors reported in container-sync logs were related to Docker images/layers already deleted, so we got all the file/object names listed in the logs and we re-issued DELETE swift requests for all of those. This seemed to have forced the 3 replicas to get into a consistent state, and as a consequence they restarted to mirror to eqiad without issues. The backlog caught up in a few days.