)]}'
{"id":"openstack%2Fswift~991130","triplet_id":"openstack%2Fswift~master~I0f2480d3cd005d463eca8a9ea95f457497375082","project":"openstack/swift","branch":"master","topic":"ring-history","attention_set":{"38496":{"account":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"last_update":"2026-09-04 13:52:25.000000000","reason":"Vote got outdated and was removed: Code-Review+1"},"7233":{"account":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"last_update":"2026-09-18 17:25:22.000000000","reason":"\u003cGERRIT_ACCOUNT_6968\u003e mentioned you in a comment","reason_account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}}},"removed_from_attention_set":{"6968":{"account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"last_update":"2026-09-18 17:25:22.000000000","reason":"\u003cGERRIT_ACCOUNT_6968\u003e replied on the change","reason_account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}}},"hashtags":[],"change_id":"I0f2480d3cd005d463eca8a9ea95f457497375082","subject":"ring: track and store placement history","status":"NEW","created":"2026-06-02 15:18:21.000000000","updated":"2026-09-18 17:25:22.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":16,"unresolved_comment_count":2,"has_review_started":true,"meta_rev_id":"b1ef9202d682fb0f5892510c7e3c58be27781790","_number":991130,"virtual_id_number":991130,"owner":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-15 13:28:19.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":-1,"max":1},"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},{"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":-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":[{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_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":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-02 16:42:56.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-07-02 00:30:25.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-07-28 14:03:19.000000000","updated_by":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"reviewer":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"state":"REVIEWER"}],"messages":[{"id":"d7e5eb626740344c12ce50fbd4cbe6716a02c001","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-06-02 15:18:21.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"aad3750af667f225ab66a4055d4c439c04bb2ade","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-02 16:42:56.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/ac743dc697f94c608ce499e99d92fce1\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b688dbea3d9d4085a7de41279285d105 : SUCCESS in 6m 20s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f62f85ec3a7444d8ad379e42e8187960 : SUCCESS in 4m 15s\n- grenade https://zuul.opendev.org/t/openstack/build/16ba7ace4d2d4f5494a04c8c71b0f4fa : SUCCESS in 1h 12m 47s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/9cf1af7bf65a4dd08bdc404827d6b1ff : SUCCESS in 1h 05m 55s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/c23f3cc012ee4d90948f48dbeb471be2 : SUCCESS in 58m 22s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/af0ed4735c274fab9ade614fa6c57ca0 : FAILURE in 48m 36s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1c4abc9ff5054742a51f26592ac5bf83 : SUCCESS in 15m 06s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/369e09c6b88442a5bc70fa9627620225 : SUCCESS in 20m 22s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cddcc6625ca84af9b463b8e6f89ff150 : SUCCESS in 24m 40s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/deedfca195a74dfd981b0a71191f19de : SUCCESS in 9m 10s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9ebd74e910ce47999ff4e12f933659fa : SUCCESS in 19m 09s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/c6eae51d3427477d8b0b4c7f3b34336a : SUCCESS in 26m 07s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/6f46ce37cc2546bb9707260a7af15989 : SUCCESS in 33m 35s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/2fc097c0ba3145daabc39b7c06c5b2a2 : SUCCESS in 11m 29s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/9c9443d77dd040f09f19a0d94ae8e741 : SUCCESS in 16m 23s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/bb22aa7eb4f644bdb8a834e4d42d4cce : SUCCESS in 17m 15s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/8c321c9ca2cb4e249b31496dcbe71e38 : SUCCESS in 18m 53s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c2ae6f877d0e469f929a723616c0291e : SUCCESS in 7m 42s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/ba10d399fcd649bcbfb7c1cc1a95a78b : SUCCESS in 21m 15s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a3b0bfc225ac45d98554c59844051887 : SUCCESS in 5m 57s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/2f2e0943bee74163b548ca8bffbf5e22 : SUCCESS in 58m 25s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/988f24af2c2e433fb95aed875d7ff495 : SUCCESS in 24m 53s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/6332ac81aa4a4e3fa2f7520532e7458e : SUCCESS in 56m 30s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/421b5960a7c44c4dac29e635c9fb5142 : SUCCESS in 29m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2919a8bc9fdf4d2ab14426b9fd3487ec : SUCCESS in 3m 24s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/c6460cada7504ce0b50de8906c079705 : SUCCESS in 20m 53s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/fa8fc700f28f4606b6e7b2996e4ed965 : SUCCESS in 1h 10m 00s","accounts_in_message":[],"_revision_number":1},{"id":"4c9270354af4943ce9bc6d670cda99390709c006","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-02 22:51:35.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/91126e3cd7804d068900f986aec6ce5a\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/a41befc1c84e45e8b43354c37bf0e964 : SUCCESS in 1h 02m 19s","accounts_in_message":[],"_revision_number":1},{"id":"569ba778442e2147d2752014e54b7abcdaba115b","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-06-03 05:47:26.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"b0a1af873f62b56f3ea9417ae86e10b51b465b0c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-03 06:59:51.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2ecb7fa99e4a45faac261bfaef864f61\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/00409b3630564d2ea60d960097d750e4 : SUCCESS in 5m 58s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ea8fbdb5532843fb93b56a7f516ee5f7 : SUCCESS in 9m 54s\n- grenade https://zuul.opendev.org/t/openstack/build/ea40a0252b294cf4b12df672a8d8a8a9 : SUCCESS in 38m 35s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/74b44fe9153b458a80e665e42ad31d71 : SUCCESS in 1h 04m 32s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8b0b22735fa04768b84c5ef08e6bc9b3 : SUCCESS in 57m 56s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e652bf4901cf4f3c83e350979bf7332c : SUCCESS in 34m 22s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0a4fd431e2654cb5a1cd7a501bd140a8 : SUCCESS in 21m 16s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c4c625e7fba44fcea031f17d7f220c19 : SUCCESS in 22m 12s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4aa78a29b584467784cc68a134a75e56 : SUCCESS in 10m 40s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/ea875c067835470e9891c5eb6574173a : SUCCESS in 6m 23s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/ce1b1f2fadf04bcfa2c8085a815ec296 : SUCCESS in 13m 32s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/4c3513057be448dca6e7fa31832708a5 : SUCCESS in 18m 20s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/28819d594353437fbe79faba66ed5f85 : SUCCESS in 34m 09s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/a587f2ab18ec4ce891cf5541492b4465 : SUCCESS in 11m 23s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/46f290b57088404aa0b91020a2c21f9a : SUCCESS in 16m 14s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/f7b091070eec405fbfc9d833b636840d : SUCCESS in 14m 02s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/53bd4a51f3074ad6b0724dd1ff1a05ef : SUCCESS in 10m 39s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/301aabd493be4d90b5e1e8c5143d708f : SUCCESS in 7m 16s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/7e2bb74e3307465c86c6fd2e7fabb3db : SUCCESS in 18m 28s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/82f8cb8831ed4efb8e9cd947b90d9948 : SUCCESS in 5m 05s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/c20a577ca2c24c8cb93dcd78d10d16aa : SUCCESS in 41m 34s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/069f0046274c48ac8d3e0e4beb45bb02 : SUCCESS in 29m 12s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/2abdbc68565442a190c29e9c5c58b809 : SUCCESS in 39m 52s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/314e730df2234445b23f237cb6cd25e2 : SUCCESS in 23m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4aad47334f334373b29bf2e9bca54982 : SUCCESS in 2m 58s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a977f73d87aa40588fc8b37738460022 : SUCCESS in 18m 21s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4943ac5e8d814e639a8a3b281b72891d : SUCCESS in 46m 38s","accounts_in_message":[],"_revision_number":1},{"id":"bc1c537166cad774aa52c9b5c0788c97ab573c4f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-03 11:34:44.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/23d7920342184258b4eddcfe974d2b04\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3c7ae9ef59e14ac7b786040b9e8cdec0 : SUCCESS in 1h 04m 25s","accounts_in_message":[],"_revision_number":1},{"id":"92608ec008d5dd71e70da96e420c66d02cfae17e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-06-27 07:32:24.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"97ec3e37f705e4b6d3a95f944c72479e66f1bb63","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-27 08:06:42.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/414cf3c16cbb4eb6b1b819b0efb6108f\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/2519138da719456a8d51551da7257693 : SUCCESS in 31m 38s","accounts_in_message":[],"_revision_number":2},{"id":"47882e6edba4ec275154cc26124e32fb73156110","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-27 09:09:23.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1ab17307359842e889dc4d801855b181\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5177fd78b2d543b0ab139fe7663dbe30 : SUCCESS in 10m 11s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/bb232e3e99b4466290bc06b27701f380 : SUCCESS in 9m 13s\n- grenade https://zuul.opendev.org/t/openstack/build/bf4d4710a6ac4b129f0f7a15022527ec : SUCCESS in 1h 28m 19s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/cd6b3b34f02e4b79b640550b05afac08 : SUCCESS in 1h 03m 44s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8116d358966547e0995ea34e1dbe8682 : SUCCESS in 57m 43s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/0fefcb0afecf4784b47bfcc6d3dae48c : SUCCESS in 1h 04m 04s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e057035e24ec4104aa51234ee87b3657 : SUCCESS in 19m 08s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1232fbc90f684aa696f158485044f581 : SUCCESS in 11m 42s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d946847167a7480fb30d13d3f78aed43 : SUCCESS in 20m 19s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/73104894031841c6b8501251d2acea6e : SUCCESS in 6m 37s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b0e039c8d35d4143a7694eb6fa4a0f60 : SUCCESS in 16m 58s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/191e728ea2624ee4ae658bc056f0c7a5 : SUCCESS in 21m 55s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/e61a0f652f43442db9a4c8bac8e8c424 : SUCCESS in 46m 50s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/839f312543504565859a12d5a7c1e547 : SUCCESS in 15m 00s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/5ee06995d98942e1b632cc9db40242ed : SUCCESS in 8m 02s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/885610cf5de94196890bb762603c1de1 : SUCCESS in 14m 48s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/c4d5e3b40734423aa5a292b6dd808887 : SUCCESS in 15m 14s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/6b4f71f75284475890381ac5c8f7a787 : SUCCESS in 6m 50s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/02f8112022be4e7eb7b924d4d8f223d7 : SUCCESS in 17m 12s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1a2e39a697a84fd8b21bea11bd14b79f : SUCCESS in 8m 21s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/603bcf4e8ee64e18875a175c06a8ee95 : SUCCESS in 1h 01m 25s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6dd4bb6013084d3796ee69249b261690 : SUCCESS in 22m 22s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/0b03ab04e0554695ac952e7e9881100e : SUCCESS in 58m 59s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/91e4b25185124598bfec945bd61cfedc : SUCCESS in 12m 02s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fad0d5981373460ca3d3dd9a63419c5f : SUCCESS in 4m 34s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/3a08d2edf9a04bb7a9e1512e52fbe201 : SUCCESS in 18m 58s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e05246f7516c44a08f9d191720440394 : SUCCESS in 1h 01m 26s\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 .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/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/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/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/post-logs.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 .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":"dcdd1222bbf4dcca41619601ff4a6f60f1cff01b","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-07-02 00:30:25.000000000","message":"Patch Set 2: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"548f24e75ed36d2810e70d227e99a315136610a9","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-07-24 09:24:47.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"97072300f890fe7a208d045df4cc893898fd3260","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-07-24 11:29:00.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"e5019e2db727e12e5619f1a30dd042a64f104f21","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-24 12:43:05.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0b324fed31a247448d9aa26cc53c0db9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/435e8b5859534bd4903f6e6bc1f0cf07 : SUCCESS in 9m 37s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d4f09ce821f24a21b97e86f2209577d9 : SUCCESS in 10m 23s\n- grenade https://zuul.opendev.org/t/openstack/build/b56e6d5bb7004f07bc7e8502eb9fb0c2 : SUCCESS in 31m 24s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/4b812c124eb547ccb35e74f1120c35ce : SUCCESS in 1h 03m 26s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/ab9c51f4994b4cbaa18fcb6e181cf5e6 : SUCCESS in 1h 06m 27s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/2d8a37ac089e40e3aed60ec930c45a17 : SUCCESS in 56m 16s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d35f827d93464b74afa2d236e726a9ec : SUCCESS in 21m 24s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e1ce07da9a054e8583caac597e3d89c1 : SUCCESS in 21m 45s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/27cd3f083f2a48cf89d32dd34e3cdff1 : SUCCESS in 14m 36s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/0dfb4603098d4f1abd7e8145455875bc : SUCCESS in 7m 41s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/62b9f6b5b72d40b9aa9075f8ecb49c5e : SUCCESS in 25m 17s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/72128d3099324a98ad0f4ea66fb65190 : SUCCESS in 16m 12s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/f6159626375e46db9503e5778dd0b728 : SUCCESS in 24m 23s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/6cfe46b5b3004c84b90f420d7de240cd : SUCCESS in 22m 48s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/3f0ff890b3864693b3c972edfd73ca60 : SUCCESS in 18m 57s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/ccc84f2f96c4424a84e9cf983d42e247 : SUCCESS in 17m 29s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/64ee998a293d4011bbbd0afa2214aa72 : SUCCESS in 16m 03s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/3e1fb6150d694a43b648ad5c29b6a719 : SUCCESS in 9m 38s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/1230082e0d8749be8a74e93a6ddfb1ee : SUCCESS in 7m 42s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/25d2f2b0354542c5a35638e2b3dc0e7a : FAILURE in 9m 38s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/df4ca3e90a54461a9f23c34614c7ac0c : SUCCESS in 9m 51s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/adf9cc663b3b4eaa8709d3fe9bc397ab : SUCCESS in 1h 02m 41s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a23830eb9a0f4f27bcdc1b88c833cbee : SUCCESS in 54m 53s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/065e085d3cef4b729a6e79828a30ddb1 : SUCCESS in 56m 40s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/bc462c12b59a415a865324366c1a43f3 : SUCCESS in 30m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8ab25a7e6cff494bbb2a0ba781cb301e : SUCCESS in 4m 42s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/1283413f157b43b6947890168c006b5e : SUCCESS in 19m 30s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/fb91b55de9024be59635d542d2771c7a : SUCCESS in 34m 44s\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-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.","accounts_in_message":[],"_revision_number":3},{"id":"5d7b6fc0ab13d2cfedd91b9ae49b8664362b60b8","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-24 12:46:15.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/346280f0a96c4be2b4ca5a42f471d1d9\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8df68c0c8aeb443e9d46ea96c781a457 : SUCCESS in 54m 28s","accounts_in_message":[],"_revision_number":3},{"id":"d9a4910dc11f4ddb6cfc9d6d41f59f7483c70afb","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-07-27 05:03:05.000000000","message":"Patch Set 3: -Code-Review\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"1b30b432d51c25546705a81d8503be6e2fdc54e9","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-07-27 07:50:27.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"3185ef5e3884e703340b4b6e75a06c7555fd5162","author":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"date":"2026-07-28 14:03:19.000000000","message":"Patch Set 3: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"97493a4af0f274891fa2709bb3dfa387b6e8a66f","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-09-03 09:51:05.000000000","message":"Patch Set 3:\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"ba418fac3a5cdb0d60e32a7a399030915925d021","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-09-04 13:52:25.000000000","message":"Uploaded patch set 4.\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":4},{"id":"269b83e36a6a1df4fbf338d44d364e74fc2c293f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-04 15:01:09.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b5595e76bc63471fad97f2264dc335fd\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/90523cb7576f46a6ab5ad2be3fc24299 : SUCCESS in 59m 10s","accounts_in_message":[],"_revision_number":4},{"id":"6dce502fe2bc973f846f96be65aaa1d66ad0eac7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-04 15:02:31.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a3cc21d549704b4c88d11f3258e1ee95\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8e157274343b4013ad8e7d1bf788d14e : SUCCESS in 9m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/db01bc9cf1da404a9bf89775f77dff1c : SUCCESS in 10m 59s\n- grenade https://zuul.opendev.org/t/openstack/build/dc0db5ec26cb422cb1f24d2c944897ba : SUCCESS in 1h 02m 14s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3001b7a3391540f0a4ae1553f0477a0b : SUCCESS in 31m 24s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8497a2b0ea2a41f6b6176b0f06eddda5 : SUCCESS in 51m 31s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5631e9a35cbf40269549e980df3f7d17 : SUCCESS in 29m 12s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6d22e3caba474fa3af3c8238656f6639 : SUCCESS in 17m 40s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9ad11ed2aa704df59a975d7e55e72080 : SUCCESS in 22m 50s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ddab729aaa4247e8a69996e54bbc21f5 : SUCCESS in 22m 24s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/2741fbc39e4b46acbc90d64d9c26f2a2 : SUCCESS in 5m 18s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9154be1e25bf43069a3f96e1494513c5 : SUCCESS in 10m 54s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/6d9718c721c64e10b3c987ce35bb9f10 : SUCCESS in 23m 28s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/cc766ab92d094986b79d8f91d821a755 : SUCCESS in 35m 30s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/8f91ba1514254ad2b4b1fe1265a6a0bb : SUCCESS in 9m 35s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/3b11ef86ecac45b9b9bcb3cf82e0d0b3 : SUCCESS in 15m 33s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/028e8727147240bf991ae61f5219db8d : SUCCESS in 12m 42s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/cd09f4808d154b66aa7f30b458fe9a7f : SUCCESS in 17m 06s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/2413b82c58c64f64b171c9cd81fdec31 : SUCCESS in 17m 32s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/67629ecb01d44a9d99603d1cc78d83dd : SUCCESS in 4m 25s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/deb5b110345f48b2bda906387a8b1099 : FAILURE in 30m 21s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/355e02b7cb554a6a809faf7452fe508b : SUCCESS in 5m 55s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/660d3bd7b6d344f4b5b79ff436550239 : SUCCESS in 1h 00m 43s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1f031ef755314ee6957d5b53369977a2 : SUCCESS in 1h 00m 56s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/3287ff4ea94d4df29d2a885a78e84a31 : SUCCESS in 50m 10s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/857ed98cd10842f2bcfd0e4aa52caee4 : SUCCESS in 22m 59s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c0122e8589614e53acf10871161d8230 : SUCCESS in 5m 46s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/2a341dbff4074d7aade87109d49c56b8 : SUCCESS in 10m 22s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4f5a7bd405994367bb6059d3e0aa58f3 : SUCCESS in 55m 27s\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-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.","accounts_in_message":[],"_revision_number":4},{"id":"6b467e1d420140089291f59bddcdbbf82bfd9365","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-09-15 07:11:03.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"7ce3b412e5b785cc3c8c2afed697cd3893d815a7","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-15 07:43:03.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/198e6200de034b20b0d4da0113ed33a7\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/f1c0d314fe614f8daf67a885cde2d381 : SUCCESS in 29m 30s","accounts_in_message":[],"_revision_number":5},{"id":"2d9a87776dcc13e54270da254752e77ea14e4639","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-15 08:17:39.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8ad3b4c67cc74be8aeb11045839c4cc5\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b8f8a6be25824acd903c592acfd30ab5 : SUCCESS in 11m 39s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6fd535dab78a4a4d80834bf3c7040f55 : SUCCESS in 8m 04s\n- grenade https://zuul.opendev.org/t/openstack/build/affd5ac354e44320a889c5ae4d69b92f : SUCCESS in 1h 02m 51s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/bf217a1f2841494896b35e16d329c16c : SUCCESS in 49m 59s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/100a830f79f44097b8167502280bb0f4 : SUCCESS in 49m 17s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/25748dca70de45a1808728f36ff603ef : SUCCESS in 46m 43s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/981e3703f7b0466e82fd71e4c05876af : SUCCESS in 21m 19s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cf1f73649eb54ad9bbc2c4f65caf0883 : SUCCESS in 13m 15s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8972b583b319421a8d711e3efb2a088d : SUCCESS in 19m 39s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/ea664cb9222d457db1cda4e26546ae01 : SUCCESS in 8m 02s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/2c6226ceba854a8ba6165ab604e86c0e : SUCCESS in 26m 36s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/c0e78a208664418c8a993c1194894b4f : SUCCESS in 19m 41s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/66b56e5844ed4ae5a53a27770ca9fda6 : SUCCESS in 23m 04s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/3534d5209d8d474ebfff039a899ec155 : SUCCESS in 13m 45s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/38e9ce9ceb7842dcb6887168662cf0a7 : SUCCESS in 12m 02s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/e76fae42fd604ef1af6139ea802e71d3 : SUCCESS in 15m 55s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/db09a70f1a8c4c6aaa7df0db5aa18dac : SUCCESS in 8m 52s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/8b95e52c8d8d400693f7775270754f5f : SUCCESS in 17m 49s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/bb5732dc7c7b4f329cf72804a37a9471 : SUCCESS in 9m 29s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/d2f30a4a82f949ba9f89ff64023ac8f7 : SUCCESS in 9m 48s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/664341e68bab4a6f8be6942ac529e0fa : SUCCESS in 57m 18s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/aa45db177c5641268819cd2446ce7dac : SUCCESS in 50m 44s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/380c1e833eef44e981e8dfbc70b60a14 : SUCCESS in 50m 54s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/02a3862d4a7446e6a4bfaeb53dae2a6b : SUCCESS in 21m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/37616bb4a0d343bca4b26a67983eb16c : SUCCESS in 4m 41s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/506d20d5449c4b23b868439fbb4f8d58 : SUCCESS in 9m 31s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/806d57f70e3a4e26b35296579a32a8fd : SUCCESS in 57m 44s\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-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.\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":5},{"id":"81354d97bf1df0d398435c7ac16d0335b82819da","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-09-15 12:12:22.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"1df09ef559207cea57ead4bd49b0a003070fc16c","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-15 13:04:21.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f7ee0eb2f51a48cab112fb546dcb54a3\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/296eeb4d8d234cf59d5f2c537247e8f4 : SUCCESS in 49m 09s","accounts_in_message":[],"_revision_number":6},{"id":"05f58d5648b16283d2ccbf3cde32e8c289ddda42","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-15 13:28:19.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5b7b18bd9de24c70a3c008892f6d870d\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4868a4c45d6b4d90948bb99d51b0f157 : SUCCESS in 10m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/438e84a15cd741199a7a297143326207 : SUCCESS in 8m 52s\n- grenade https://zuul.opendev.org/t/openstack/build/a55decc37d944521ab5e64be152150fe : SUCCESS in 1h 09m 13s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ba37806a92144278a867d38f16c95b2d : SUCCESS in 33m 57s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/7b4b3f4346d64fad830d450822ecd963 : SUCCESS in 55m 59s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/a6ac7cd087cc46d59951aedf19bce6e3 : SUCCESS in 58m 04s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c72e8840b61645dcb065a02d50a89e8a : SUCCESS in 18m 41s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9c8600ddfed34d99aefb7fb7b6264a8b : SUCCESS in 12m 42s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b7af8eeeab9a4c429752eacb912f655b : SUCCESS in 20m 08s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/3df897180b424d6db8c7e61ea08e28d7 : SUCCESS in 6m 27s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/4876248ebbdc4e829c659e97fe2a836f : SUCCESS in 10m 33s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/7ddb122ddc5d4e2d8b62d2b2fac3ff95 : SUCCESS in 25m 26s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2372a1d40c474d3c98e5c7c9fd1a1d03 : SUCCESS in 32m 29s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/47d12dab5bbd49fd8f1c4a13e574d1ae : SUCCESS in 11m 02s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/3bd62ce4e9f44ecdb15b838d30c80ca5 : SUCCESS in 9m 19s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/134b75a466c947499f373b4934cadc96 : SUCCESS in 9m 21s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/7c5fce12ac844a008cf861cf97714b1f : SUCCESS in 16m 02s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/32c8d467da184b97a1a56075afdf6323 : SUCCESS in 17m 35s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e7b3084e11964dfcaf90b91f1e822b47 : SUCCESS in 6m 23s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/53ca08ee3209445c8f64be6acad7d0fa : SUCCESS in 8m 58s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/a09118fab4d344258a9e9a856f57d21d : SUCCESS in 58m 07s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/cd9051e56cab448eba6d470264f912bf : SUCCESS in 28m 06s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/23a56c53a2ba4993a71891cecda25f29 : SUCCESS in 55m 38s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/af6f5c6367674fa8a367b810408a3df2 : SUCCESS in 11m 08s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/188ed7ed2f9b42ddac8c78be68b882bc : SUCCESS in 3m 06s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/188bcff90bdb433783bf2fcc5b8e9b01 : SUCCESS in 18m 47s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5bca87d2c0f242b08e8ee5fd14080f43 : SUCCESS in 44m 48s\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-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.\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":6},{"id":"0a096c7c2465f470c14c819a7cc22f9ad467948e","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-09-18 07:19:44.000000000","message":"Patch Set 4: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":4},{"id":"b1ef9202d682fb0f5892510c7e3c58be27781790","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-09-18 17:25:22.000000000","message":"Patch Set 6:\n\n(2 comments)","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"1bc7585850b96715392288d929a5fda3d160bc83","revisions":{"f9a15e3ac1c99e90b352259945c8b431bfd184f8":{"kind":"REWORK","_number":1,"created":"2026-06-02 15:18:21.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/30/991130/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/991130/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/991130/1"}}},"commit":{"parents":[{"commit":"f52988bb3f3bca035ea913643d71114d43ef43ac","subject":"Merge \"Reject oversized chunked S3 XML bodies\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f52988bb3f3bca035ea913643d71114d43ef43ac"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-06-02 09:52:45.000000000","tz":0},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-06-02 15:17:55.000000000","tz":120},"subject":"ring: add history tables and tuning knobs to RingBuilder","message":"ring: add history tables and tuning knobs to RingBuilder\n\nAllocate two builder tables alongside _replica2part2dev:\n_history_replica2part2dev (prior device per cell) and\n_replica2part2last_moved (uint8 age per cell). Both stay None on a\nfresh builder and grow, shrink, truncate, reslot under resize, and\nsplit under increase_partition_power in lockstep with the assignment\ntable.\n\nAdd the max_history_cycles (default 7) and failure_grace_cycles\n(default 1) knobs with range-checked setters and a shared post-load\nnormalizer covering both load paths. No CLI flags or consumers yet.\n\nChange-Id: I0f2480d3cd005d463eca8a9ea95f457497375082\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f9a15e3ac1c99e90b352259945c8b431bfd184f8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f9a15e3ac1c99e90b352259945c8b431bfd184f8"}]},"branch":"refs/heads/master"},"1fca45f3a163b469a6987b2c55f9a178f4bd7ee3":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-06-27 07:32:24.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/30/991130/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/991130/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/991130/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":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-06-02 09:52:45.000000000","tz":0},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-06-27 07:31:49.000000000","tz":120},"subject":"ring: add history tables and tuning knobs to RingBuilder","message":"ring: add history tables and tuning knobs to RingBuilder\n\nAllocate two builder tables alongside _replica2part2dev:\n_history_replica2part2dev (prior device per cell) and\n_replica2part2last_moved (uint8 age per cell). Both stay None on a\nfresh builder and grow, shrink, truncate, reslot under resize, and\nsplit under increase_partition_power in lockstep with the assignment\ntable.\n\nAdd the max_history_cycles (default 7) and failure_grace_cycles\n(default 1) knobs with range-checked setters and a shared post-load\nnormalizer covering both load paths. No CLI flags or consumers yet.\n\nChange-Id: I0f2480d3cd005d463eca8a9ea95f457497375082\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1fca45f3a163b469a6987b2c55f9a178f4bd7ee3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1fca45f3a163b469a6987b2c55f9a178f4bd7ee3"}]},"branch":"refs/heads/master"},"e09510e0a38365d2269db9bc4f5f3e9784650a17":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-07-24 11:29:00.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/30/991130/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/991130/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/991130/3"}}},"commit":{"parents":[{"commit":"b0f92bd978266f30c20cfc9b37c63f3df81a22a2","subject":"statsd: send None label values as an empty string","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b0f92bd978266f30c20cfc9b37c63f3df81a22a2"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-06-02 09:52:45.000000000","tz":0},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-07-24 11:28:46.000000000","tz":120},"subject":"ring: add history tables and tuning knobs to RingBuilder","message":"ring: add history tables and tuning knobs to RingBuilder\n\nAllocate two builder tables alongside _replica2part2dev:\n_history_replica2part2dev (prior device per cell) and\n_replica2part2last_moved (uint8 age per cell). Both stay None on a\nfresh builder and grow, shrink, truncate, reslot under resize, and\nsplit under increase_partition_power in lockstep with the assignment\ntable.\n\nAdd the max_history_cycles (default 7) and failure_grace_cycles\n(default 1) knobs with range-checked setters and a shared post-load\nnormalizer covering both load paths. No CLI flags or consumers yet.\n\nChange-Id: I0f2480d3cd005d463eca8a9ea95f457497375082\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e09510e0a38365d2269db9bc4f5f3e9784650a17"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e09510e0a38365d2269db9bc4f5f3e9784650a17"}]},"branch":"refs/heads/master"},"816a34b7da0942b9a1961ba0eb4c3d4503964f4e":{"kind":"REWORK","_number":4,"created":"2026-09-04 13:52:25.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/30/991130/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/991130/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/991130/4"}}},"commit":{"parents":[{"commit":"5cab258d88fd56fc341ec8768682f96be1e738ab","subject":"Merge \"trivial: Remove some py2 comments and validation\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5cab258d88fd56fc341ec8768682f96be1e738ab"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-09-04 13:27:51.000000000","tz":120},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-09-04 13:38:25.000000000","tz":120},"subject":"ring: track and store placement history","message":"ring: track and store placement history\n\nAfter a rebalance, the ring identifies only the current primaries. The\ndata stays on the former primary until replication is complete. If the\ncurrent nodes or disks are unavailable in this period, the proxy\ncannot try the former primary. The proxy then returns a 404, but the\ndata is still on the former primary. The ring keeps no record of the\nformer primary.\n\nThis patch adds that record. It changes only the ring, the builder and\nthe ring-builder CLI. Later patches use the record in the proxy, the\nreplicator and the reconstructor.\n\nRecord the previous device and the age of each replica-partition\nassignment. Keep this history when the replica count or the partition\npower changes. Record the moves that a failed device causes. Remove\nthe history after a number of min_part_hours cycles. You can set this\nnumber.\n\nDo not let a voluntary move happen if the history of the partition is\nrecent. This gives the replicator sufficient time to copy the data\nbefore the partition moves again. The gate stays partition-wide: only\none replica of a partition moves at a time, which is the rule the ring\nalready documents.\n\nA device that fails leaves none_dev_id in the history row. The row\nkeeps its age, so the age alone controls the release of the gate.\n\nStore the placement history in a v2 ring section. Add\nget_part_moved_replicas, which returns the replica rows that moved, and\nget_part_old_nodes, which returns the nodes that a consumer can try. A\ncomposite ring keeps the history of each component.\n\nThe history can change when no partition moves. Save these rebalance\npasses, because the consumers must get the new ages. The CLI writes the\nformat version that the operator asks for. A v1 ring has no history\nsection, so the CLI warns about the loss of the history.\n\nChange-Id: I0f2480d3cd005d463eca8a9ea95f457497375082\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/816a34b7da0942b9a1961ba0eb4c3d4503964f4e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/816a34b7da0942b9a1961ba0eb4c3d4503964f4e"}]},"branch":"refs/heads/master"},"9e1d6a2e1a826a0f3b5cb95e993c30492d5a1cfc":{"kind":"REWORK","_number":5,"created":"2026-09-15 07:11:03.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/30/991130/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/991130/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/991130/5"}}},"commit":{"parents":[{"commit":"9318950da879bd33b3b5216d0d0cfed4dea45d9c","subject":"Merge \"replicator: Quarantine suffixes we cannot delete\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9318950da879bd33b3b5216d0d0cfed4dea45d9c"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-09-04 13:27:51.000000000","tz":120},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-09-15 07:10:49.000000000","tz":120},"subject":"ring: track and store placement history","message":"ring: track and store placement history\n\nAfter a rebalance, the ring identifies only the current primaries. The\ndata stays on the former primary until replication is complete. If the\ncurrent nodes or disks are unavailable in this period, the proxy\ncannot try the former primary. The proxy then returns a 404, but the\ndata is still on the former primary. The ring keeps no record of the\nformer primary.\n\nThis patch adds that record. It changes only the ring, the builder and\nthe ring-builder CLI. Later patches use the record in the proxy, the\nreplicator and the reconstructor.\n\nRecord the previous device and the age of each replica-partition\nassignment. Keep this history when the replica count or the partition\npower changes. Record the moves that a failed device causes. Remove\nthe history after max_history_cycles cycles of min_part_hours. The\ndefault is 7.\n\nDo not let a voluntary move happen while the history of the partition\nis live. The ring keeps one old device for each replica, so a second\nmove must wait until the first record is gone. A partition that moved\ntherefore waits 8 cycles before it can move again, and not 1 cycle as\nbefore. This gives the replicator time to copy the data before the\npartition moves again. The gate stays partition-wide: only one replica\nof a partition moves at a time, which is the rule the ring already\ndocuments.\n\nA device that fails leaves none_dev_id in the history row. The row\nkeeps its age, so the age alone controls the release of the gate. If\nthe partition moved onto the failed device in the last\nfailure_grace_cycles cycles, the row keeps the old device instead. The\ndefault is 1.\n\nAdd the CLI commands set_max_history_cycles and\nset_failure_grace_cycles. The default output shows both values next to\nmin_part_hours.\n\nStore the placement history in a v2 ring section. Add\nget_part_moved_replicas, which returns the replica rows that moved, and\nget_part_old_nodes, which returns the nodes that a consumer can try. A\ncomposite ring keeps the history of each component.\n\nThe history can change when no partition moves. Save these rebalance\npasses, because the consumers must get the new ages. The CLI writes the\nformat version that the operator asks for. A v1 ring has no history\nsection, so the CLI warns about the loss of the history.\n\nChange-Id: I0f2480d3cd005d463eca8a9ea95f457497375082\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9e1d6a2e1a826a0f3b5cb95e993c30492d5a1cfc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9e1d6a2e1a826a0f3b5cb95e993c30492d5a1cfc"}]},"branch":"refs/heads/master"},"1bc7585850b96715392288d929a5fda3d160bc83":{"kind":"REWORK","_number":6,"created":"2026-09-15 12:12:22.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/30/991130/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/991130/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/991130/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/991130/6"}}},"commit":{"parents":[{"commit":"9318950da879bd33b3b5216d0d0cfed4dea45d9c","subject":"Merge \"replicator: Quarantine suffixes we cannot delete\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9318950da879bd33b3b5216d0d0cfed4dea45d9c"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-09-04 13:27:51.000000000","tz":120},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-09-15 09:29:48.000000000","tz":120},"subject":"ring: track and store placement history","message":"ring: track and store placement history\n\nAfter a rebalance, the ring identifies only the current primaries. The\ndata stays on the former primary until replication is complete. If the\ncurrent nodes or disks are unavailable in this period, the proxy\ncannot try the former primary. The proxy then returns a 404, but the\ndata is still on the former primary. The ring keeps no record of the\nformer primary.\n\nThis patch adds that record. It changes only the ring, the builder and\nthe ring-builder CLI. Later patches use the record in the proxy, the\nreplicator and the reconstructor.\n\nRecord the previous device and the age of each replica-partition\nassignment. Keep this history when the replica count or the partition\npower changes. Record the moves that a failed device causes. Remove\nthe history after max_history_cycles cycles of min_part_hours. The\ndefault is 7.\n\nDo not let a voluntary move happen while the history of the partition\nis live. The ring keeps one old device for each replica, so a second\nmove must wait until the first record is gone. A partition that moved\ntherefore waits 8 cycles before it can move again, and not 1 cycle as\nbefore. This gives the replicator time to copy the data before the\npartition moves again.\n\nThe gate stays partition-wide: only one replica of a partition moves\nat a time, which is the rule the ring already documents.\n\nA device that fails leaves none_dev_id in the history row. The row\nkeeps its age, so the age alone controls the release of the gate. If\nthe partition moved onto the failed device in the last\nfailure_grace_cycles cycles, the row keeps the old device instead. The\ndefault is 1.\n\nAdd the CLI commands set_max_history_cycles and\nset_failure_grace_cycles. The default output shows both values next to\nmin_part_hours. A change of min_part_hours converts each age with its\nlower bound, because an age proves only whole cycles. The next\nrebalance saves the converted ages, even if it moves no partition.\n\nStore the placement history in a v2 ring section. Add\nget_part_moved_replicas, which returns the replica rows that moved, and\nget_part_old_nodes, which returns the nodes that a consumer can try. A\ncomposite ring keeps the history of each component. A composite\nrebalance updates the ages of every component before the first\ncomponent moves a partition.\n\nThe history can change when no partition moves. Save these rebalance\npasses, because the consumers must get the new ages. The CLI writes the\nformat version that the operator asks for. A v1 ring has no history\nsection, so the CLI warns about the loss of the history.\n\nChange-Id: I0f2480d3cd005d463eca8a9ea95f457497375082\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1bc7585850b96715392288d929a5fda3d160bc83"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1bc7585850b96715392288d929a5fda3d160bc83"}]},"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":""}}}]}
