)]}'
{"id":"openstack%2Fswift~991519","triplet_id":"openstack%2Fswift~master~I35b689717c01b1649e9205f67d46958d3d5c16d2","project":"openstack/swift","branch":"master","topic":"quarantine-damaged-dbs","attention_set":{"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2026-09-16 20:59:42.000000000","reason":"Reviewer was added"}},"removed_from_attention_set":{"7233":{"account":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"last_update":"2026-07-10 07:13:27.000000000","reason":"removed on reply"},"39164":{"account":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"last_update":"2026-09-17 16:01:34.000000000","reason":"\u003cGERRIT_ACCOUNT_39164\u003e replied on the change","reason_account":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"}}},"hashtags":[],"change_id":"I35b689717c01b1649e9205f67d46958d3d5c16d2","subject":"account: Consolidate the expected stat row check","status":"NEW","created":"2026-06-04 00:07:11.000000000","updated":"2026-09-17 21:56:33.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":39,"unresolved_comment_count":2,"has_review_started":true,"meta_rev_id":"86583017f2d981815069c427b3df6ed5efdca149","_number":991519,"virtual_id_number":991519,"owner":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-17 21:56:33.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-04 01:13:14.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-06-04 09:16:07.000000000","updated_by":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"reviewer":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"state":"CC"},{"updated":"2026-06-04 18:49:24.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"CC"},{"updated":"2026-06-10 23:49:29.000000000","updated_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"reviewer":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"state":"REVIEWER"},{"updated":"2026-09-16 20:59:42.000000000","updated_by":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"}],"messages":[{"id":"4a6b423dfbade44ea7be59466edf9fbca79fd186","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-06-04 00:07:11.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"6d21f43e2c3e70f4aaf2b89ae737e0a43b9cf50f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-04 01:13:14.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/9b5269c404ff4268995fc00404b39427\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/148305dfc2a04dbe9196c8ea33abf75d : SUCCESS in 5m 37s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/77b3b5b9d9c44bb294483bfa715d8e58 : SUCCESS in 3m 29s\n- grenade https://zuul.opendev.org/t/openstack/build/b91c8e6220f24aa1b53931ee815ab1c5 : SUCCESS in 30m 47s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0599731553ba4d03a62398d152d1fac5 : SUCCESS in 32m 50s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/fdf70ebc75ea461e95c7cddfc648107e : SUCCESS in 30m 31s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/54cf144f34dc45c6883879bf891bb379 : SUCCESS in 53m 48s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b2a2a6a2ce084b968dddfbe1a114321f : SUCCESS in 19m 50s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a08d7bd1f8ee45aa8eb6830637e42710 : SUCCESS in 10m 24s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c3e979b9616d4a4e87273c4628583b0f : SUCCESS in 12m 00s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/51074fcef1e044b69595a0254e59ce13 : SUCCESS in 7m 16s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/ca705fd45cc9444f8a492d87b6207ac9 : SUCCESS in 11m 39s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/bba2a9b387df4b889526a19e429acafb : SUCCESS in 22m 12s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/5ef50328a7e84a1280df156bec433d9a : SUCCESS in 32m 39s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/ad8f092f85e74a239f6e12db9aa0267c : SUCCESS in 21m 54s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/33068a9f02034d1ea908a9a35947eff8 : SUCCESS in 8m 15s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/6566a7b77332434daa69be2a2947e3ea : SUCCESS in 9m 00s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/fa51cc27c2b54f5eb09dd0458b21f099 : SUCCESS in 15m 36s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/0a3b73d02d6749cb881194929e323b99 : SUCCESS in 6m 06s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/70353b0230c2469d98ae9dedb4cffd7b : SUCCESS in 9m 12s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/7157b3beefb549a9b5cd62c43f5dd8e0 : SUCCESS in 7m 55s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/fbfd08ec6e1642ec8acd129ab83d52d2 : SUCCESS in 1h 00m 35s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c80b2a676c45413fb1ff2a2e731f2b69 : SUCCESS in 26m 16s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/43e7c26e4f28403c913ca7f35f77393b : SUCCESS in 25m 13s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/9ec581500e454b38b9e068cfcca283a7 : SUCCESS in 28m 54s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c4ce379ae15c4826aab15dea2d7697b7 : SUCCESS in 2m 15s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/7de3952e613e40bfa4ec940542c85992 : FAILURE in 22m 51s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0e9726c9bea24329a2279d1d3daf44c8 : SUCCESS in 59m 46s","accounts_in_message":[],"_revision_number":1},{"id":"69239796c914ec12d9082619911a04c69073f553","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-04 02:35:42.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a151af40027a4a1dab85e7e3d944c12a\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8c55e2582ccf4c51b82fd48e506c3671 : SUCCESS in 1h 15m 33s","accounts_in_message":[],"_revision_number":1},{"id":"0da742c349dc1710e65a044add9a68c882eee0b8","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-06-04 09:16:07.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"70de2d609246249c8eec3a51867db22f16503733","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-04 10:20:58.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6ccb2e3fc3164711afd5dfdc1089415d\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/0064d1de282e442cbcf6dbc9e63a038b : SUCCESS in 55m 30s","accounts_in_message":[],"_revision_number":1},{"id":"4366782d3b5a11e70803560283a6278d99109b77","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-04 10:34:32.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/eca044e976a44d159f5d1a2bff96f4c9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b5d1c0c5203d4a23a91c886aace6a6b8 : SUCCESS in 13m 03s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8708d16ac40f41ef9a19d8953675e4ed : SUCCESS in 6m 23s\n- grenade https://zuul.opendev.org/t/openstack/build/b0649c587433414e98eca6f4df43f9b3 : SUCCESS in 1h 16m 32s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/4c069a6127614c3e9e5d88727241a7b1 : SUCCESS in 53m 24s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/c385983c0ad94d3097377878d28439a4 : SUCCESS in 50m 47s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/99c7652d93b546b695576cf82e391f18 : SUCCESS in 1h 06m 43s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/178c5f39b0a04c599c785aea1642340a : SUCCESS in 17m 45s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/84fe4904ed4b4bdc83dc7a17cb095180 : SUCCESS in 19m 48s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/053a97a77929446f9616257e8652b591 : SUCCESS in 21m 43s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/151cf75223484194b83ba793126f1631 : SUCCESS in 6m 32s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/324b2c9072f44bc9883685badc3b5231 : SUCCESS in 28m 07s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/7d9674f9e9314e89a8ef7997933db737 : SUCCESS in 23m 30s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/60e906b3cfd847b293761510610d227f : SUCCESS in 18m 05s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/4de9b7e756034d75a896198f4f83118f : SUCCESS in 21m 01s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/b708b6eb262c4211b3fdc2b4d0d62541 : SUCCESS in 14m 51s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/002c7b93b16c4301b6b6df837ea281d4 : SUCCESS in 15m 10s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/a49b2e9c91f14639b92e7082a61f6b19 : SUCCESS in 16m 39s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/31fd5e0783cc4c6a9abddadb0a8efee8 : SUCCESS in 5m 28s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/54b9cd09c10f428e98e0608ae01a2156 : SUCCESS in 20m 32s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/c517e351f4ba468cbaaacfbfe2a0329a : SUCCESS in 8m 18s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/ca535907130942bf8850f63904f8caba : SUCCESS in 1h 03m 44s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d6dbfe7366af4be5a0a3eb0746db4089 : SUCCESS in 58m 32s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/aa95418751a94b9c925ac0513d6e2038 : SUCCESS in 1h 09m 32s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/badfd569257f4ff9860e41cb8f685032 : SUCCESS in 28m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/34a0dca13b0f45ac8735a7510ad9d2a4 : SUCCESS in 4m 57s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/077ae614259648e0bc93bd6c2897fb1c : SUCCESS in 25m 28s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0aa86e326c604ba3aad436d7d3a65634 : SUCCESS in 1h 11m 16s","accounts_in_message":[],"_revision_number":1},{"id":"bd745d5986b4f95dcdff3c7fa56508146f145e41","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-06-04 18:49:24.000000000","message":"Patch Set 1:\n\n(6 comments)","accounts_in_message":[],"_revision_number":1},{"id":"acb2b73343c8623d4a66fe4048caf666683036fd","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-06-10 23:49:29.000000000","message":"Patch Set 1: Code-Review-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":1},{"id":"32b3fa15f4261f31c95a4bace7b18bdc7bafd343","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-06-26 00:01:13.000000000","message":"Patch Set 1:\n\n(5 comments)","accounts_in_message":[],"_revision_number":1},{"id":"86866a68e1cf5bf0d76175b65ea3243b098583ef","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-06-28 00:15:40.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"07782cd719dfb7700c32dca49b1019e90d764b40","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-06-28 00:17:06.000000000","message":"Patch Set 2:\n\n(6 comments)","accounts_in_message":[],"_revision_number":2},{"id":"104c460b93d84f6fb0373c1f2d9dd9a2fa32a4b0","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-28 00:52:20.000000000","message":"Patch Set 2:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f69334af21b04b69bc0c89c0c6b80c3b\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/da463317076142419c402fa49f8c4dcf : FAILURE in 34m 55s","accounts_in_message":[],"_revision_number":2},{"id":"f698e164e7ec1a9a603985a813b7a29e98fd5fcd","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-28 01:28:03.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/a4ec0150c4d843cf8d30136b4972adc3\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cb91b1ce2ca842b2854104fdc7fcacfd : SUCCESS in 8m 40s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9f903c649ce24f25989eb98b1698a1dc : SUCCESS in 7m 16s\n- grenade https://zuul.opendev.org/t/openstack/build/9113583ab8804107babb37b391619c66 : SUCCESS in 1h 00m 40s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/b953be2c980a47b8a34eabb6b66083b2 : SUCCESS in 42m 03s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/c14fab0506c843f7a6537acdc789b4df : SUCCESS in 1h 04m 32s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/07f048d324ec431dba34001fc9d9fe0a : SUCCESS in 45m 57s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a189719eb5f84fdea3e0bcb366fe0675 : SUCCESS in 10m 17s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/561bc60d688f4534942f9f2ab0f6b2fe : SUCCESS in 19m 35s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8df24ab85d1644879a9832e5a7cf479a : SUCCESS in 18m 02s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a1d56866072440b195d142f5534a2f2c : SUCCESS in 5m 17s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/4686e875e2ca4783912525a8c3ea5812 : FAILURE in 12m 30s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/06a8478da18548beb369cc76427019eb : FAILURE in 17m 51s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/1ceef6f13e1b4e079423b4588bbb4cb0 : FAILURE in 20m 34s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/6bed4ab3a5ab429490a28fbb2030b816 : FAILURE in 15m 42s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/46773b281d934264b7438a0941f670ed : SUCCESS in 8m 55s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/7565ea893751487dbff1e2eadd076f80 : SUCCESS in 14m 42s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/4e704f6e79a645749004ada72efd1224 : SUCCESS in 15m 53s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/72c496b81b324f2ca97bc27ab7880c42 : SUCCESS in 6m 09s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/1167ab4eb55b497fae3b560ecd832074 : SUCCESS in 18m 03s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/f4408024f5c9463aad84c9ea5e69f052 : SUCCESS in 7m 47s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/d58b84a809e242c7a281bde2baf12ed0 : SUCCESS in 1h 01m 14s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7b84696a7c35496b915e3a4a0b1dbf2c : SUCCESS in 51m 03s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/47535a080bc849edb869cbcfe26a4dc9 : SUCCESS in 25m 00s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8859325b146d4227892de89a279493ca : FAILURE in 12m 50s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5586b4ca677b462cbd3841b774738dbe : SUCCESS in 4m 05s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/8887721526d24f8593da6938b884ea97 : SUCCESS in 10m 08s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/c7b25ca834404a708ab268b0b183647b : SUCCESS in 1h 01m 10s\n\nWarning:\n  File .docker/config.json found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/docker-image/run.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .docker/config.json found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/buildset-registry/post.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .local/share/containers/cache/blob-info-cache-v1.sqlite found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .docker/config.json found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .local/share/containers/cache/blob-info-cache-v1.sqlite found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .docker/config.json found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .local/share/containers/cache/blob-info-cache-v1.sqlite found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .docker/config.json found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":2},{"id":"d51157fe885bc9be89643b47b02c187f20cc6b4c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-07-06 21:29:45.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"43a5dd2a1272d4f6b48de1a9a7e173f054d739e4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 22:55:46.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/59bf112b176f4aeaae302a0d325ef3d9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/263ee4e262f24b81819fde0225e026c2 : SUCCESS in 10m 47s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a3a86ef905cc472b807fe284a16801b9 : SUCCESS in 8m 47s\n- grenade https://zuul.opendev.org/t/openstack/build/44fe6915294b4164a53470d88225079d : SUCCESS in 1h 07m 59s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0dab526ec71d475d89eb97f54664c494 : SUCCESS in 1h 19m 51s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f543d66082d844ff9848c579218d989f : SUCCESS in 52m 44s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/feba81e63d1548b6bf136ccbe88cfa0e : SUCCESS in 1h 08m 45s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6deea37c2d50461fba6f54bc2dcab25d : SUCCESS in 18m 55s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1086aa9f8edc4d47b71726dbfa925270 : SUCCESS in 20m 39s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/850f1afbe52743a4a2ed5b9659677984 : SUCCESS in 20m 32s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/bb2d276bac8d4a1da09860dd45a35077 : SUCCESS in 6m 58s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/62fb4eabd788493ebda6fc782732d243 : SUCCESS in 17m 37s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/3f037349049148aeadba832b94e3e417 : SUCCESS in 22m 16s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/53dfb8ea98f24f21841c1f69b9869159 : SUCCESS in 31m 10s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/c9177827d308493794bb718a7b3abb53 : SUCCESS in 11m 56s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/5f2489e113864120bd972b0427bea754 : SUCCESS in 14m 52s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/c2991d97816b44ad81e6d63fc46ae0a1 : SUCCESS in 16m 20s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/5f897de20bf446c49bc6c7acf607e1a5 : SUCCESS in 15m 59s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/62fe1b907174492c960f330aef2d3c91 : RETRY_LIMIT in 4m 08s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/dd86c6e633b34de69a8dbf6cfd4b7d24 : SUCCESS in 21m 48s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/42b8013287cb4c629b0eac1407609988 : SUCCESS in 8m 20s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/34d8f1385f074e138085ee433c63ef64 : SUCCESS in 42m 12s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/423ffb08a4c14791a8b7db7407916cb4 : SUCCESS in 54m 22s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/98ecb1ce9e23419d8157d56db6ac1a44 : SUCCESS in 51m 02s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/2353a3f86d6b4cd0a5b4ed8ce15ff730 : SUCCESS in 21m 04s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b7e99bd9f6e2428daaada78079b5896c : SUCCESS in 4m 56s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/616c53031d904de29225775b1577f23c : SUCCESS in 11m 21s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e845ce4c081d49579d78c43bcd9158f2 : SUCCESS in 1h 00m 14s\n\nWarning:\n  File .docker/config.json found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-build-image.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .docker/config.json found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-build-image.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .docker/config.json found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-build-image.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":3},{"id":"100d3ccef00414c948103d0b90ef86adca389a63","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-07 02:42:57.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/05eb99146d614a749447f8f08434f91d\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/d991df38b2964146b9ef68267d2dd8c3 : SUCCESS in 1h 11m 57s","accounts_in_message":[],"_revision_number":3},{"id":"2f74816accafe7576dccb82594755d340c69ba2d","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-07-10 07:13:27.000000000","message":"Patch Set 1:\n\n(3 comments)\n\n-1 about the other areas that might need the quarantine.\n\nI do wonder if we need an end-to-end test with a trucated DB? I wonder how that would work? Create a db and clear the account_stat file, and make sure it\u0027s quarantined? a probe test maybe? Not a blocker, just thinking out loud.","accounts_in_message":[],"_revision_number":1},{"id":"cb61686888e7fdf49ee46f8492fcc25932702546","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-07-20 15:46:18.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"90d35679bc968939ada4154c73f687c19f684e16","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-20 16:56:21.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/036114331e6e4917bb1bcd7aacbd532a\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/2aab0c3f43d343a0b511237f34ffc8da : SUCCESS in 57m 34s","accounts_in_message":[],"_revision_number":4},{"id":"1810fd359c1e02457c1f8a635be1acd21744e878","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-20 17:01:39.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f0b95ee1309a4643a5fdf4513ed456ab\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d793dc60f9b3497d80e4a81ca6042b1c : SUCCESS in 10m 11s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3bc85d419db94f7db1796a3553e000fb : SUCCESS in 11m 31s\n- grenade https://zuul.opendev.org/t/openstack/build/72658927b1844542b711904da79a8a5f : SUCCESS in 1h 04m 12s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/fa6e434f9a3a43679b6ca77b709f5cc0 : SUCCESS in 1h 08m 15s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/22a31794a87240d38267e192270d9a5d : SUCCESS in 33m 05s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b995673523fd49ecafd6454f5e9004a0 : SUCCESS in 1h 00m 17s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/10209942660b4d35a5b10f629f4e6f39 : SUCCESS in 16m 50s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/dd8b0dde6f7548db9d90d527aec45035 : SUCCESS in 20m 35s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/037b7fffb8254fecbe5a3fd2aa448050 : SUCCESS in 21m 01s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a6152edff1ab4d9ebc5a4018321b5960 : SUCCESS in 7m 10s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/3cb850ff806949fe9120f3e3cae4f9d6 : SUCCESS in 28m 16s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/fb54efd7103a46de8a6b92ad82bfbdee : SUCCESS in 23m 59s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/cdba83d1f20a4a13b515637f3e0e6d85 : SUCCESS in 14m 24s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/7bacda6e84494a08b8075ed0d594f5e4 : SUCCESS in 16m 57s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/a7f36c070dc64b6ba1c5f2dc086252aa : SUCCESS in 15m 05s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d2edcf6fc4c04da09f36324b5826a411 : SUCCESS in 12m 16s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/6a535200bcbb4a5084202e7a194d55c5 : SUCCESS in 10m 32s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/21b22162ac4f4675a4799041ecf30bac : SUCCESS in 6m 41s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/c4e8d27b126f424bbbc4beb01bf446c3 : FAILURE in 7m 15s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/601230262d734389872d263faf1c5a3c : SUCCESS in 8m 51s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/4e9d8bb672f74a01bdb3fee9f8c7d352 : SUCCESS in 1h 02m 08s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/f46ddb7cb1f744ccb3d4ea8f846a09b7 : SUCCESS in 53m 55s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8675dc1efe97421f870028b695ece81b : SUCCESS in 28m 25s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/11f0cc9580cb46adb609e4128603b55e : SUCCESS in 32m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/40f1d8742e2b4965845bc05212d2413a : SUCCESS in 4m 31s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/2a3c8062a0ca4c6c8f5577225823dd08 : SUCCESS in 18m 42s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4dcef4abbe4f4a50b00251ad2422399a : SUCCESS in 1h 04m 26s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":4},{"id":"80855bab1f2a1dd928c61865838f88581101330e","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-08-21 07:19:23.000000000","message":"Patch Set 4:\n\n(7 comments)","accounts_in_message":[],"_revision_number":4},{"id":"3ac4744587e53125c33607453ab9633d7e799f65","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-09-16 20:59:42.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"4a05f2ccefe56f34e1a4d0a26015f14bf89c5192","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-09-16 21:04:42.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased. Commit message was updated.","accounts_in_message":[],"_revision_number":6},{"id":"909b66eacec5c89c8f4ce6adf42f5dbd3ac5cca9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-16 22:17:47.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d5718a60f8ea4d43bf94e2ab5676ffc1\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/59f0e30a646e43ec88b7c3ec1e40fe4a : SUCCESS in 8m 53s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9b73190cc219479d9d061b4ed8a9c313 : SUCCESS in 10m 38s\n- grenade https://zuul.opendev.org/t/openstack/build/65d02bf1f9c64c67b78cab98f057cbf4 : SUCCESS in 1h 08m 56s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/1cfdc12825ea46719a74221f7556be36 : SUCCESS in 39m 53s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/b55532bb9ccc4c6d841be690f04cc4c8 : SUCCESS in 37m 34s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d61788de2504410588a0e11c8b16b1c0 : SUCCESS in 1h 03m 48s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b77712523a31415ca3f3b85a1a1d1480 : SUCCESS in 22m 08s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/823d0b09a01c464eada1848fc2b15656 : SUCCESS in 20m 54s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9f3a91ac661443d3a657c9dbb987d73f : SUCCESS in 17m 57s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6eb8447f19944a96b992ba27db85469c : SUCCESS in 5m 34s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/42b6d5516bfc45ba89f4a6969c472c6f : SUCCESS in 23m 57s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/6c56545751034a2890e6999266eb95f4 : SUCCESS in 20m 39s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/21f484b958b747f38ead88c172b7ec31 : SUCCESS in 32m 46s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/f129c9e6afe8472790a73ee638c5b270 : SUCCESS in 20m 26s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/cd5d8203e78342abbaaad3ecbc37f4bb : SUCCESS in 14m 27s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/332750d383414ce085a19406c658fed6 : SUCCESS in 15m 11s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/cf2e8e1b9c3448e78f14cf0b42c540fc : SUCCESS in 13m 45s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/97fb91b474c74cb08350ea4a8d769a54 : SUCCESS in 17m 26s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/0917ffa7947c4cd8a45483a527651b4b : SUCCESS in 6m 44s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/0c895eec238f44f28a11102cdd9f1a3f : SUCCESS in 9m 02s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/27d2c93a9aee47edbc8352350d9edbe4 : SUCCESS in 1h 02m 24s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b1ab481312c74021ae2b7c67f403bf3a : SUCCESS in 58m 35s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4ec9c9261a3e4e20826149d8a43f2c86 : SUCCESS in 52m 08s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/30e3c051f2194cd88af51d0d49f7624a : SUCCESS in 14m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/86811f7c817f45b4b233de7cbf4d2b40 : SUCCESS in 4m 33s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/741811780dd3450a8db0d36fddf3a2c0 : SUCCESS in 18m 44s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ddf9bd88b3e148fab810c76bc7a16a86 : SUCCESS in 37m 54s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":6},{"id":"d52ef70eafd5c61cabf2d02064fcd7602eac6fa8","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-16 22:54:56.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/116444b5d67a4848ad9446d59ac4af00\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/347a15f60f9f4caaa6faaab8a8467348 : SUCCESS in 39m 32s","accounts_in_message":[],"_revision_number":6},{"id":"a0f1f92d570474b0320b8833164c2dd26b6794e4","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-09-17 16:01:34.000000000","message":"Patch Set 6:\n\n(8 comments)","accounts_in_message":[],"_revision_number":6},{"id":"91a89532d593db6d61d4708fac2e06e507aeaa33","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"date":"2026-09-17 20:44:10.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"f6632bed1c4eafd06bf201f8d756edddc73c7e65","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-17 21:50:19.000000000","message":"Patch Set 7:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/722c63a0dafd46a7b99f7c9616f0e6e7\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/d914dbc18abe430eaf803f708a1e137a : SUCCESS in 1h 03m 44s","accounts_in_message":[],"_revision_number":7},{"id":"86583017f2d981815069c427b3df6ed5efdca149","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-17 21:56:33.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/24ae3b0684d5416285951164d88bacb9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/47f4fc28858240fcb280ed1b16bff05d : SUCCESS in 10m 35s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/93bb2dd67b08499f9dd44c1a1a6d0e9b : SUCCESS in 11m 27s\n- grenade https://zuul.opendev.org/t/openstack/build/3d4645bb33ba47f7878629838cb077e4 : SUCCESS in 1h 05m 07s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0c0c11dbf1e24a8ab688b751137b1660 : SUCCESS in 32m 12s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/5d9e26aec9fa44f7aed5be800cce7a7b : SUCCESS in 53m 24s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4de0472cfc27414ea285576fa5e87ff5 : SUCCESS in 28m 52s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/80974438596d4d678de6fac06b2be77c : SUCCESS in 19m 53s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/73a940c4ef9c4604a559abdc656097f5 : SUCCESS in 21m 22s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ea45c164ea1e4d9b8472762a1ac5510c : SUCCESS in 22m 10s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/4324e83a053247d2abd8187bce60405d : SUCCESS in 7m 32s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/65405990658f4099abc131cbe3dae00a : SUCCESS in 25m 30s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/0376685f26444b9e87c7fda63769de11 : SUCCESS in 19m 50s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/f89151d74ce04a1e84d871871a5dbc82 : SUCCESS in 33m 30s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/f63b3e84d5f74d88bf42988955c851fa : SUCCESS in 20m 53s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/9a4e062b033c4324ac14670759e3cd91 : SUCCESS in 9m 20s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/2f478ecf0eac449f8ad93ebcd17767a8 : SUCCESS in 14m 19s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/7e786f983fb04567becb75c04b071fa2 : SUCCESS in 9m 04s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/e8e12c9832974c4e8ef7ba9d87ac212b : SUCCESS in 10m 11s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/ea66d55106514a68a13ba5dc58593c9e : SUCCESS in 6m 26s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/cba8d334c9434acfa321b2be5ed13cd1 : SUCCESS in 5m 38s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/ae16b74796674e8c9a8af97e28dcfbfc : SUCCESS in 1h 03m 37s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/ed8b59e4c5fb4d3eade5c075c85f8711 : SUCCESS in 58m 03s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/bc6be8c3065741b3bdeeeb774623a996 : SUCCESS in 52m 27s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/73f350bfeb1740ab9b1985b2624aac6f : SUCCESS in 29m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a5b6c3cb412148e5900dc76707ff069a : SUCCESS in 4m 06s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a8ba517478b8469bb50b44e38037c983 : SUCCESS in 10m 01s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/6f9b56d5d3c54708bdc85a3c5ae589b0 : SUCCESS in 54m 56s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"f00534bbbb8bc217b51e950be6d9c9c72a5298a2","revisions":{"4e2c5fb6c1cbe5ae636afa097c4f643fc0ce2536":{"kind":"REWORK","_number":1,"created":"2026-06-04 00:07:11.000000000","uploader":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"ref":"refs/changes/19/991519/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/19/991519/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/19/991519/1"}}},"commit":{"parents":[{"commit":"ca8749f344168ad1c4e07fdfd24e68ca04c57eae","subject":"test_sharder.py: pass timestamp strings to put_object","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ca8749f344168ad1c4e07fdfd24e68ca04c57eae"}]}],"author":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-06-02 22:35:17.000000000","tz":-420},"committer":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-06-04 00:06:53.000000000","tz":-420},"subject":"account: Quarantine truncated DBs","message":"account: Quarantine truncated DBs\n\nWhile exercising the account-auditor in a SAIO, we observed that\nmanually truncating an account database did not cause it to be\nquarantined on the next audit pass -- the auditor logged a generic\nfailure and left the DB in place to be re-audited indefinitely.\nInvestigating turned up the following:\n\nAccountBroker.get_info() and _is_deleted() both SELECT the singleton\naccount_stat row and assume it exists -- get_info() passes the result\nstraight into dict(), and _is_deleted() splats it into\n_is_deleted_info(). When the row is missing (the truncation case),\nboth raise TypeError, which the auditor\u0027s catch-all logs without\ntaking any further action.\n\nMirror the pattern already used by get_raw_metadata(),\nupdate_metadata(), and _reclaim_metadata(): if the stat-table fetch\nreturns no row, quarantine the DB with \"missing row in account_stat\ntable\". The auditor sees the resulting sqlite3.DatabaseError and the\ntruncated DB is moved to quarantined/accounts/.\n\nThis intentionally narrows the quarantine trigger to a definitively-\nmissing row rather than broadening the OperationalError catch, which\nwould risk spurious quarantines on transient SQLITE_BUSY or\npre-migration \"no such column\" errors.\n\nChange-Id: I35b689717c01b1649e9205f67d46958d3d5c16d2\nSigned-off-by: Matthew Allen \u003cmaallen@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4e2c5fb6c1cbe5ae636afa097c4f643fc0ce2536"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4e2c5fb6c1cbe5ae636afa097c4f643fc0ce2536"}]},"branch":"refs/heads/master"},"4be4ff86e58898f72c958fad5fa7670dd09929ac":{"kind":"REWORK","_number":2,"created":"2026-06-28 00:15:40.000000000","uploader":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"ref":"refs/changes/19/991519/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/19/991519/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/19/991519/2"}}},"commit":{"parents":[{"commit":"667b0461361712ae4e9bbc3aea2dec89a0fedafb","subject":"Merge \"Close DB connections in metadata servers\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/667b0461361712ae4e9bbc3aea2dec89a0fedafb"}]}],"author":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-06-02 22:35:17.000000000","tz":-420},"committer":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-06-28 00:12:08.000000000","tz":-420},"subject":"account: Quarantine damaged DBs","message":"account: Quarantine damaged DBs\n\nWhile exercising the account-auditor in a SAIO, we observed that\nmanually truncating an account database did not cause it to be\nquarantined on the next audit pass -- the auditor logged a generic\nfailure and left the DB in place to be re-audited indefinitely.\nInvestigating turned up two distinct failure shapes, depending on how\nmuch of the file survives:\n\n1. The file is truncated to (near) empty. The schema is gone, so the\n   first read raises \"no such table: account_stat\" -- an\n   OperationalError that possibly_quarantine() did not recognise, so it\n   was re-raised and merely logged.\n\n2. The file keeps its schema but loses the singleton account_stat row\n   (e.g. a partial truncation that empties the table, or row loss via\n   some other path). get_info(), _is_deleted(), empty() and\n   is_status_deleted() all SELECT that row and assume it exists --\n   dict(None) / row[...] then raise TypeError, again only logged.\n\n(The in-between case -- a partial truncation that corrupts pages --\nalready quarantines today via possibly_quarantine()\u0027s \"malformed\" /\n\"is not a database\" handling.)\n\nAddress both gaps with the existing quarantine convention:\n\n  * possibly_quarantine() now treats \"no such table: \u003cdb_type\u003e_stat\" as\n    a quarantine trigger (\"missing account_stat table\"), covering the\n    empty-file case for both account and container brokers.\n  * get_info(), _is_deleted(), empty() and is_status_deleted() now\n    quarantine with \"missing row in account_stat table\" when the\n    stat-table fetch returns no row, mirroring get_raw_metadata(),\n    update_metadata() and _reclaim_metadata() in swift/common/db.py.\n\nThe auditor sees the resulting sqlite3.DatabaseError and the truncated\nDB is moved to quarantined/accounts/.\n\nThese triggers stay narrow on purpose -- a definitively-missing table\nor row -- rather than broadening the OperationalError catch, which\nwould risk spurious quarantines on transient SQLITE_BUSY or\npre-migration \"no such column\" errors.\n\nAdd broker-level tests for each guarded method, real file-truncation\ntests (empty and partial), and an auditor-level test asserting a\ntruncated DB is moved to quarantined/accounts/ on the audit pass.\n\nChange-Id: I35b689717c01b1649e9205f67d46958d3d5c16d2\nSigned-off-by: Matthew Allen \u003cmaallen@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4be4ff86e58898f72c958fad5fa7670dd09929ac"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4be4ff86e58898f72c958fad5fa7670dd09929ac"}]},"branch":"refs/heads/master"},"197ad6d645cc186d46fe4a133b352f7c9d59b223":{"kind":"REWORK","_number":3,"created":"2026-07-06 21:29:45.000000000","uploader":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"ref":"refs/changes/19/991519/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/19/991519/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/19/991519/3"}}},"commit":{"parents":[{"commit":"667b0461361712ae4e9bbc3aea2dec89a0fedafb","subject":"Merge \"Close DB connections in metadata servers\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/667b0461361712ae4e9bbc3aea2dec89a0fedafb"}]}],"author":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-06-02 22:35:17.000000000","tz":-420},"committer":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-07-06 17:45:38.000000000","tz":-420},"subject":"account: Quarantine damaged DBs","message":"account: Quarantine damaged DBs\n\nWhile exercising the account-auditor in a SAIO, we observed that\nmanually truncating an account database did not cause it to be\nquarantined on the next audit pass -- the auditor logged a generic\nfailure and left the DB in place to be re-audited indefinitely.\nInvestigating turned up two distinct failure shapes, depending on how\nmuch of the file survives:\n\n1. The file is truncated to (near) empty. The schema is gone, so the\n   first read raises \"no such table: account_stat\" -- an\n   OperationalError that possibly_quarantine() did not recognise, so it\n   was re-raised and merely logged.\n\n2. The file keeps its schema but loses the singleton account_stat row\n   (e.g. a partial truncation that empties the table, or row loss via\n   some other path). get_info(), _is_deleted(), empty() and\n   is_status_deleted() all SELECT that row and assume it exists --\n   dict(None) / row[...] then raise TypeError, again only logged.\n\n(The in-between case -- a partial truncation that corrupts pages --\nalready quarantines today via possibly_quarantine()\u0027s \"malformed\" /\n\"is not a database\" handling.)\n\nAddress both gaps with the existing quarantine convention:\n\n  * possibly_quarantine() now treats \"no such table: \u003cdb_type\u003e_stat\" as\n    a quarantine trigger (\"missing account_stat table\"), covering the\n    empty-file case for both account and container brokers.\n  * get_info(), _is_deleted(), empty() and is_status_deleted() now\n    quarantine with \"missing row in account_stat table\" when the\n    stat-table fetch returns no row, mirroring get_raw_metadata(),\n    update_metadata() and _reclaim_metadata() in swift/common/db.py.\n\nThe auditor sees the resulting sqlite3.DatabaseError and the truncated\nDB is moved to quarantined/accounts/.\n\nThese triggers stay narrow on purpose -- a definitively-missing table\nor row -- rather than broadening the OperationalError catch, which\nwould risk spurious quarantines on transient SQLITE_BUSY or\npre-migration \"no such column\" errors.\n\nAdd broker-level tests for each guarded method, real file-truncation\ntests (empty and partial), and an auditor-level test asserting a\ntruncated DB is moved to quarantined/accounts/ on the audit pass.\n\nChange-Id: I35b689717c01b1649e9205f67d46958d3d5c16d2\nSigned-off-by: Matthew Allen \u003cmaallen@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/197ad6d645cc186d46fe4a133b352f7c9d59b223"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/197ad6d645cc186d46fe4a133b352f7c9d59b223"}]},"branch":"refs/heads/master"},"82a1607838e555d160901de6c7a6f5841070f6ad":{"kind":"REWORK","_number":4,"created":"2026-07-20 15:46:18.000000000","uploader":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"ref":"refs/changes/19/991519/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/19/991519/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/19/991519/4"}}},"commit":{"parents":[{"commit":"b3866f31652e8df6f823aeb1addc1051d8bc7a40","subject":"trivial: Say version-id, not version_id in comment","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b3866f31652e8df6f823aeb1addc1051d8bc7a40"}]}],"author":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-06-02 22:35:17.000000000","tz":-420},"committer":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-07-15 23:10:05.000000000","tz":-420},"subject":"account: Quarantine damaged DBs","message":"account: Quarantine damaged DBs\n\nWhile exercising the account-auditor in a SAIO, we observed that\nmanually truncating an account database did not cause it to be\nquarantined on the next audit pass -- the auditor logged a generic\nfailure and left the DB in place to be re-audited indefinitely.\nInvestigating turned up two distinct failure shapes, depending on how\nmuch of the file survives:\n\n1. The file is truncated to (near) empty. The schema is gone, so the\n   first read raises \"no such table: account_stat\" -- an\n   OperationalError that possibly_quarantine() did not recognise, so it\n   was re-raised and merely logged.\n\n2. The file keeps its schema but loses the singleton account_stat row\n   (e.g. a partial truncation that empties the table, or row loss via\n   some other path). get_info(), _is_deleted(), empty() and\n   is_status_deleted() all SELECT that row and assume it exists --\n   dict(None) / row[...] then raise TypeError, again only logged.\n\n(The in-between case -- a partial truncation that corrupts pages --\nalready quarantines today via possibly_quarantine()\u0027s \"malformed\" /\n\"is not a database\" handling.)\n\nAddress both gaps with the existing quarantine convention:\n\n  * possibly_quarantine() now treats \"no such table: \u003cdb_type\u003e_stat\" as\n    a quarantine trigger (\"missing account_stat table\"), covering the\n    empty-file case for both account and container brokers.\n  * A new DatabaseBroker.fetch_expected_row() helper runs a stat-table\n    SELECT and quarantines with \"missing row in \u003cdb_type\u003e_stat table\"\n    when the fetch returns no row. get_info(), _is_deleted(), empty()\n    and is_status_deleted() now read their singleton account_stat row\n    through it.\n\nfetch_expected_row() also consolidates the identical \"expected singleton\nrow\" check that get_raw_metadata(), update_metadata() and\n_reclaim_metadata() in swift/common/db.py already open-coded, so the\npattern now lives in one place and is harder to omit at future call\nsites.\n\nThe auditor sees the resulting sqlite3.DatabaseError and the truncated\nDB is moved to quarantined/accounts/.\n\nThese triggers stay narrow on purpose -- a definitively-missing table\nor row -- rather than broadening the OperationalError catch, which\nwould risk spurious quarantines on transient SQLITE_BUSY or\npre-migration \"no such column\" errors.\n\nAdd broker-level tests for each guarded method, real file-truncation\ntests (empty and partial), and an auditor-level test asserting a\ntruncated DB is moved to quarantined/accounts/ on the audit pass.\n\nChange-Id: I35b689717c01b1649e9205f67d46958d3d5c16d2\nSigned-off-by: Matthew Allen \u003cmaallen@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/82a1607838e555d160901de6c7a6f5841070f6ad"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/82a1607838e555d160901de6c7a6f5841070f6ad"}]},"branch":"refs/heads/master"},"3958b5cf65624937763e31f141f825e3dbc7e318":{"kind":"REWORK","_number":5,"created":"2026-09-16 20:59:42.000000000","uploader":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"ref":"refs/changes/19/991519/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/19/991519/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/19/991519/5"}}},"commit":{"parents":[{"commit":"30deb1ef3e6f2fd1f88a006860abf9d124045fd4","subject":"tests: Probe quarantine and recovery of damaged DBs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/30deb1ef3e6f2fd1f88a006860abf9d124045fd4"}]}],"author":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-09-03 17:39:07.000000000","tz":-420},"committer":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-09-16 16:45:15.000000000","tz":-420},"subject":"account: Consolidate the \"expected stat row\" check","message":"account: Consolidate the \"expected stat row\" check\n\nThe \u003cdb_type\u003e_stat relation is created with exactly one row by initialize()\nand no production code path deletes from it, so a missing row means the DB is\ndamaged. common/db.py already open-coded that check in three locations, but\nit was missing in four others. These seven reads are all now routed through\nDatabaseBroker.get_stat_row(), which builds the query itself rather than\naccepting one.\n\nA new stat_table class attribute names the relation that stores the row for\nreporting purposes: account_stat on AccountBroker, and container_info on\nContainerBroker. Only the declaration is added to ContainerBroker here,\nconverting its own stat reads is left to a future change. NB: A container DB\npredating _migrate_add_storage_policy() still stores the row in\ncontainer_stat, so for that shape the reason names a relation the operator\nwill not find before an object update migrates the schema.\n\nTests assert that each of those four reads quarantines when the account_stat\nrow is deleted, that a container DB\u0027s get_raw_metadata() reason names\ncontainer_info, and that get_stat_row() covers the row present and absent.\n\nAssisted-By: Claude:opus-5\nChange-Id: I35b689717c01b1649e9205f67d46958d3d5c16d2\nSigned-off-by: Matthew Allen \u003cmaallen@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3958b5cf65624937763e31f141f825e3dbc7e318"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3958b5cf65624937763e31f141f825e3dbc7e318"}]},"branch":"refs/heads/master"},"7dab491923df834382471c04ac28429c3777e8b0":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":6,"created":"2026-09-16 21:04:42.000000000","uploader":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"ref":"refs/changes/19/991519/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/19/991519/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/19/991519/6"}}},"commit":{"parents":[{"commit":"4231a034b87bb818fa0d5bc83251fbe66ac89fc4","subject":"tests: Probe quarantine and recovery of damaged DBs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4231a034b87bb818fa0d5bc83251fbe66ac89fc4"}]}],"author":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-09-03 17:39:07.000000000","tz":-420},"committer":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-09-16 21:03:29.000000000","tz":-420},"subject":"account: Consolidate the \"expected stat row\" check","message":"account: Consolidate the \"expected stat row\" check\n\nThe \u003cdb_type\u003e_stat relation is created with exactly one row by\ninitialize() and no production code path deletes from it, so a missing\nrow means the DB is damaged. common/db.py already open-coded that check\nin three locations, but it was missing in four others. These seven reads\nare all now routed through DatabaseBroker.get_stat_row(), which builds\nthe query itself rather than accepting one.\n\nA new stat_table class attribute names the relation that stores the row\nfor reporting purposes: account_stat on AccountBroker, and\ncontainer_info on ContainerBroker. Only the declaration is added to\nContainerBroker here, converting its own stat reads is left to a future\nchange. NB: A container DB predating _migrate_add_storage_policy() still\nstores the row in container_stat, so for that shape the reason names a\nrelation the operator will not find before an object update migrates the\nschema.\n\nTests assert that each of those four reads quarantines when the\naccount_stat row is deleted, that a container DB\u0027s get_raw_metadata()\nreason names container_info, and that get_stat_row() covers the row\npresent and absent.\n\nAssisted-By: Claude:opus-5\nChange-Id: I35b689717c01b1649e9205f67d46958d3d5c16d2\nSigned-off-by: Matthew Allen \u003cmaallen@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7dab491923df834382471c04ac28429c3777e8b0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7dab491923df834382471c04ac28429c3777e8b0"}]},"branch":"refs/heads/master"},"f00534bbbb8bc217b51e950be6d9c9c72a5298a2":{"kind":"REWORK","_number":7,"created":"2026-09-17 20:44:10.000000000","uploader":{"_account_id":39164,"name":"Matthew Allen","display_name":"Matthew Allen","email":"maallen@nvidia.com","username":"matthewallen"},"ref":"refs/changes/19/991519/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/19/991519/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/19/991519/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/19/991519/7"}}},"commit":{"parents":[{"commit":"d318d28223ee7ae9dd39c6ae91727765ea150d60","subject":"tests: Probe DB quarantine and recovery","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d318d28223ee7ae9dd39c6ae91727765ea150d60"}]}],"author":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-09-03 17:39:07.000000000","tz":-420},"committer":{"name":"Matthew Allen","email":"maallen@nvidia.com","date":"2026-09-17 17:24:04.000000000","tz":-420},"subject":"account: Consolidate the expected stat row check","message":"account: Consolidate the expected stat row check\n\nThe \u003cdb_type\u003e_stat relation is created with exactly one row by\ninitialize() and no production code path deletes from it, so a missing\nrow means the DB is damaged. common/db.py already open-coded that check\nin three locations, but it was missing in four others. These seven reads\nare all now routed through DatabaseBroker.get_stat_row(), which builds\nthe query itself rather than accepting one.\n\nA new stat_table class attribute names the relation that stores the row\nfor reporting purposes: account_stat on AccountBroker, and\ncontainer_info on ContainerBroker. Only the declaration is added to\nContainerBroker here, converting its own stat reads is left to a future\nchange. NB: A container DB predating _migrate_add_storage_policy() still\nstores the row in container_stat, so for that shape the reason names a\nrelation the operator will not find before an object update migrates the\nschema.\n\nTests assert that each of those four reads quarantines when the\naccount_stat row is deleted, that a container DB\u0027s get_raw_metadata()\nreason names container_info, and that get_stat_row() covers the row\npresent and absent.\n\nAssisted-By: Claude:opus-5\nChange-Id: I35b689717c01b1649e9205f67d46958d3d5c16d2\nSigned-off-by: Matthew Allen \u003cmaallen@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f00534bbbb8bc217b51e950be6d9c9c72a5298a2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f00534bbbb8bc217b51e950be6d9c9c72a5298a2"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
