)]}'
{"id":"openstack%2Fswift~967738","triplet_id":"openstack%2Fswift~master~I7e2643ecddd79049d34a609516b1c06f780a719e","project":"openstack/swift","branch":"master","topic":"p-timestamp-v2-fixes","attention_set":{"7233":{"account":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"last_update":"2026-06-29 20:22:22.000000000","reason":"Vote got outdated and was removed: Code-Review+2"},"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2026-06-26 09:00:31.000000000","reason":"A robot voted negatively on a label"},"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2026-05-13 23:39:46.000000000","reason":"A robot voted negatively on a label"},"15343":{"account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"last_update":"2025-12-18 19:57:32.000000000","reason":"\u003cGERRIT_ACCOUNT_34930\u003e mentioned you in a comment","reason_account":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"}}},"removed_from_attention_set":{"34930":{"account":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"last_update":"2026-03-02 18:14:29.000000000","reason":"\u003cGERRIT_ACCOUNT_34930\u003e replied on the change","reason_account":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"}}},"hashtags":[],"change_id":"I7e2643ecddd79049d34a609516b1c06f780a719e","subject":"Introduce a jitter component to Timestamp","status":"NEW","created":"2025-11-19 19:33:34.000000000","updated":"2026-07-06 18:43:36.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":199,"unresolved_comment_count":25,"has_review_started":true,"meta_rev_id":"3617f073d917b31f455acb246d790ea1b644e121","_number":967738,"virtual_id_number":967738,"owner":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"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":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-06 14:46:07.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":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"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":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"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":{"CC":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"}],"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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-11-19 21:24:41.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":"2025-11-20 05:06:23.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":"CC"},{"updated":"2025-11-21 17:43:15.000000000","updated_by":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"reviewer":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"state":"CC"},{"updated":"2025-12-18 19:57:32.000000000","updated_by":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"reviewer":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"state":"CC"},{"updated":"2025-12-18 19:57:32.000000000","updated_by":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"CC"},{"updated":"2026-01-07 20:00:58.000000000","updated_by":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"reviewer":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"state":"REVIEWER"},{"updated":"2026-02-11 20:14:53.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":"REVIEWER"},{"updated":"2026-03-02 06:09:12.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"}],"messages":[{"id":"448e50d7f24e0f44043d1211d5ec29bea989737a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-19 19:33:34.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c90fc91ccc23dd3c3a12507879c1311623cfcdd6","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-19 19:38:52.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"2a7d69b81adea1f1e7f1aa52d51332c1d5947f60","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-19 21:24:41.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/2667ab841279459aaedf80c09eba5047\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ace91163c1a540279ad073e3052617c8 : SUCCESS in 7m 04s\n- grenade https://zuul.opendev.org/t/openstack/build/523511a3330f4595a832cd04bd243cdc : FAILURE in 57m 54s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/8779b2a073064a9a828ee5e09cbf11e0 : FAILURE in 56m 45s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/0639695dea9240f687ecacd5b4d52902 : FAILURE in 47m 25s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/0aa8061de4424b7ab5ed2af416845d9a : FAILURE in 1h 00m 28s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0db85a750a7149b48ea0d689644e0a44 : FAILURE in 17m 26s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b3221f8d669d4825ac5fe15ffad5f70e : FAILURE in 39m 49s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f5b795427ae345e38f4d908b54ac8ca4 : FAILURE in 27m 54s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/fbd806fd68f24fdeadc615ffd742da6f : SUCCESS in 6m 17s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/20591441424b4ed8a507e29973844bda : FAILURE in 1h 30m 15s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/3e83b222b24b4d77b313ea85dd0c094b : FAILURE in 55m 00s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/ea99f9b6dd284d8ab619fa9ab7ca5bcb : FAILURE in 32m 03s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/959cc29395324990805ad69e16443032 : TIMED_OUT in 1h 30m 45s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/95b6f6a8dbbd41feb2daf025e81e0da0 : FAILURE in 21m 58s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/ebd40fbda7a5472f8b7b5ad8a894b70f : FAILURE in 19m 02s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/462cc96b33524f2b9c7cefc507b8ee35 : FAILURE in 16m 45s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/f4675a57d3214b6f93c750e1a37b2e54 : FAILURE in 6m 04s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/1c0c1fdb73b74cdead90d529a8f42aa9 : FAILURE in 29m 40s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/cdbc1b4012bb40208be215cd5f3b1f61 : FAILURE in 19m 32s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/e1db3fdce2d94fa7a0727b71a21403f8 : FAILURE in 1h 43m 08s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5e476b0455494cd393a72da896dc68ba : FAILURE in 40m 42s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/62d13950af214f1198f606f8555fad1a : FAILURE in 48m 33s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/323c11c234d5459cad91b72ebc8c70f0 : TIMED_OUT in 40m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/173cc5d1794e4ec388767ed936a93991 : SUCCESS in 4m 19s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/71e073941e19422ea1c121fedac45356 : TIMED_OUT in 1h 30m 52s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/026a3613a67743dcab3b59a3f1726f09 : FAILURE in 43m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/1533d74be52a43a2819cf534dafe6b41 : FAILURE in 1h 00m 01s","accounts_in_message":[],"_revision_number":1},{"id":"8557610f7fefc747880b437898ff6bd41c2f781a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-19 22:32:26.000000000","message":"Patch Set 1:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ea3d3a765ce24ef0bdf645b00573e635\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/fb3ac9614550448bbd17ed1ec5c7159f : FAILURE in 2h 56m 36s","accounts_in_message":[],"_revision_number":1},{"id":"b6cd324be6987cc602af5b737ce3d73cdc8fa673","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-11-20 05:06:23.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"36215d54ca7cc3d631e5904cbf10e51d87e3aa79","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-20 19:01:23.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"3ef2a74f2b491304ac80254f594c1a2067bc9019","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-20 19:05:11.000000000","message":"Patch Set 2: Workflow-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"7aab03c1217fb4da2f0280653f2b0a90ecbb1f2f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-20 19:51:59.000000000","message":"Patch Set 2:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/48f5a92a206a4eb4b74de51b1ca0ed58\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/343114422b2d49dc82dad71000ab1c06 : FAILURE in 48m 46s","accounts_in_message":[],"_revision_number":2},{"id":"dfda9c464c49e92574ed336f438cfe98988acdea","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-20 20:18:01.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/81e5767d784b455894f468722c06ffc7\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/28a45122f4af49e1b8b1fb09f9f1c597 : SUCCESS in 6m 42s\n- grenade https://zuul.opendev.org/t/openstack/build/6e6ca2bc28c643119fc8c39dbbf31cbe : SUCCESS in 43m 12s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/def7ae480ea048f0bca4a423562e3ef8 : FAILURE in 7m 12s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/de22f12ac6c3478797ff640c79210037 : SUCCESS in 53m 44s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4c8e249b2d4e49ceb8fc25ba06fbfba4 : SUCCESS in 44m 12s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/7fbff928a86c4555acc9c16c69886d0a : SUCCESS in 19m 01s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f6028066368d43b3ae9ae91dc98f7e72 : SUCCESS in 20m 16s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/753204a3ed9e4137bc1593fe98257ea6 : SUCCESS in 11m 57s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/007efb42c7224c5ab430087130ef349f : SUCCESS in 5m 23s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9d195995dd1a40c9b9e42dbacc8293da : FAILURE in 27m 56s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/89f914790faa463c8e06d5823215ecc7 : FAILURE in 13m 21s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/4a15ef69cef2487dbe1c492e49447e8c : FAILURE in 47m 54s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/15b8858db9ea46b99bec33636b03f8c3 : FAILURE in 19m 49s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/eb4eaf5c2c16418a81acc9dfa8dd07b7 : SUCCESS in 8m 16s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/28a3e2fcc9cb4463ba68e47aca8c1c71 : SUCCESS in 14m 23s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/3e7178d356b94ad1b0b8f6b9d47ad2b4 : SUCCESS in 15m 24s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/241f7baabfd44022ab81d65dfb89d27c : SUCCESS in 3m 43s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/facf3cb494254f34a5812143662feb82 : SUCCESS in 15m 58s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/e776690a603745e08ca7c76148df840a : SUCCESS in 7m 30s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/a112b49c40d14b9889cf9007a113d3ee : FAILURE in 38m 51s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7268472d6fd04be6831d28c3a3a2214d : SUCCESS in 50m 01s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b665ff1bbea545829f04ed7537ab62fb : SUCCESS in 51m 17s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8829f2d1ff184171b9963c8dcdd89813 : FAILURE in 29m 40s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/791e10b9fa7648ff8df833a183d10fad : SUCCESS in 4m 34s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/f92151d2960f44479386e00a32ef527a : SUCCESS in 19m 32s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/4d679a777d8b4bdea591ffb84bd1bccb : SUCCESS in 31m 35s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/90d5159a11934118b83cdbd2912c8f52 : SUCCESS in 58m 18s","accounts_in_message":[],"_revision_number":2},{"id":"860d861673a955d5b34adcc969c4511caf158039","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-21 18:35:40.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":3},{"id":"129cb92c973a7f90a471dcd79f49e7d1d1dd037b","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-21 18:36:31.000000000","message":"Patch Set 3: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"40184ee9f7141e0e200b70ba4b351b743bf7f5be","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-21 19:52:19.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/4e0d639a36814246bee1e950f8e76694\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7337428da47e44acac0b0bd8556efb81 : SUCCESS in 8m 13s\n- grenade https://zuul.opendev.org/t/openstack/build/754e52e02aef41749369e2d227977034 : SUCCESS in 42m 26s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/07438ae771ef4ee595a154e48f57fde3 : SUCCESS in 1h 00m 20s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/4fb89f5ed01c4c83aad572cb61766fdb : SUCCESS in 37m 53s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/edc8858a56a745a2a35a0d1d1ac8da61 : SUCCESS in 1h 06m 18s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/547305921c934389a9a5361d33625b8d : SUCCESS in 19m 40s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a9cba0329ef94c73bab8eaaae5564083 : SUCCESS in 14m 51s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ff25a369cd79447e9341de378ed86541 : SUCCESS in 14m 48s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1ad23349e22248c7b2e4d035c0451e07 : SUCCESS in 5m 45s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/995d1f6754df47b6be9bca0ecf4ad9cf : FAILURE in 31m 33s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/ed5e2d2148ce46e9976eef774be8a5fb : FAILURE in 28m 43s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/d723333292614919bee425b8ab125a34 : FAILURE in 31m 58s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/09714a21825a4375a00e655e411b2fb4 : FAILURE in 51m 55s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/892c6b17a9ea40acbed0a4c1b97d9899 : SUCCESS in 9m 34s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/ffa9386b86b1491094287ac3ed85d7f0 : SUCCESS in 15m 47s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/9671a8faf69d4de9842b235ef7e30f31 : SUCCESS in 8m 36s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/143651580aba4448a364c2c6b4bdae42 : SUCCESS in 7m 27s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/7123ac0ba77141948d0ac824069fa0f8 : SUCCESS in 15m 55s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a4b6391d55b2489fbdfb4c455e55c7bb : SUCCESS in 8m 42s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/fc5625d63a6c4eb88f461e641ca9448c : FAILURE in 1h 08m 29s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/9a4069670ebb419a96a0a9951cb4c806 : SUCCESS in 38m 48s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/2da075e78fe74773a33d3d0bacad4b59 : SUCCESS in 29m 06s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d342a39b82214cbe864e72fd8941333b : TIMED_OUT in 40m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/108c2ac5a3f849ce8161d9e29fd15b3c : SUCCESS in 3m 55s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/f3684d49b98e45efa85448600742f2b2 : SUCCESS in 9m 16s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/916332117c804b5cb9f6faa97658153e : SUCCESS in 48m 31s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/dd0c9fd1112241bbb82bf8c208b186a8 : SUCCESS in 48m 17s","accounts_in_message":[],"_revision_number":3},{"id":"7e46ddc9909de109fa8aeeaf261d3256d52e2afc","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-22 02:04:16.000000000","message":"Patch Set 3:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9e3a32aee11c4a6abb591fadfbf6fa12\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/59bfa1f733a943bab6b30ae4114f35b3 : FAILURE in 46m 33s","accounts_in_message":[],"_revision_number":3},{"id":"b8f2ca46ae6e9e9e0fdc0499b506354281ae1910","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-11-24 06:22:02.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"c2fb9e9bf2fe415ad7331e98c25093ffec56f2a4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-24 17:41:33.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":4},{"id":"9b0b3333238983fab402f800169a9f7cf5cc182e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-24 18:28:00.000000000","message":"Uploaded patch set 5: New patch set was added with same tree, parent tree, and commit message as Patch Set 4.","accounts_in_message":[],"_revision_number":5},{"id":"f17ae26542136a8580f5d0be918f8c3ce26e3a46","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-24 19:35:10.000000000","message":"Patch Set 5:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/88adf83371fd49548e918007103f16d9\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/cbe5713644c04aeca1581426800432f5 : FAILURE in 58m 13s","accounts_in_message":[],"_revision_number":5},{"id":"d1183382cd16ad11725ce9e4a3271a33cf504c63","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-24 19:36:09.000000000","message":"Patch Set 5: 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/93b84984cc9744f3b9787676cafcd95b\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6a9c8d8ea0974472b91143324ae2fdbc : SUCCESS in 9m 32s\n- grenade https://zuul.opendev.org/t/openstack/build/07380b97b8b6429eace7e2e35d3f41ed : SUCCESS in 1h 01m 01s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/51294e14617546c385dc8b1f6dd05130 : SUCCESS in 47m 26s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/2773d5d820694f1fbed04f933f9a278c : SUCCESS in 34m 49s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/70fed7de1cbd4e8f86ffc69d8b1c50c4 : SUCCESS in 33m 55s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5f2efa33d633496b93a1d6c3ad3cec05 : SUCCESS in 22m 08s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f532d6e03ec7401180b74468aea9b1f4 : SUCCESS in 12m 43s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d137ff98a43d44a0803033ffd9115ad4 : SUCCESS in 21m 03s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/2974c9a177ca41fea55788cddd1323df : SUCCESS in 4m 32s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/6243b68ce155454591e78c05d3b8c91b : FAILURE in 37m 34s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/465a5e315ad34e0192e2c05208b5b3fc : FAILURE in 13m 19s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/ddaadfb770bf4979ad96e36afa7040f4 : FAILURE in 19m 20s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/65d27789907a47808ce459d14c197b5c : FAILURE in 47m 32s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/5a5a68b303e14c4fa27073d748348b92 : SUCCESS in 13m 38s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/1995ec10c1ff427bb4345ff762cfee64 : SUCCESS in 13m 54s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/8a4c6300a030414e9850dbdd24c79571 : SUCCESS in 13m 59s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b38a483884f84623ada2410f57f47335 : SUCCESS in 6m 45s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/cd040cacb9b14db2b6ddff70fa356f3c : SUCCESS in 14m 00s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/21f95f7fda074f97be1f93f123f07e5f : SUCCESS in 8m 54s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/8e3341c59e28473c9409fd1dabe47d8a : FAILURE in 43m 47s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/4b9d900196e94bcfa3fe3fbaba58fd07 : SUCCESS in 39m 41s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b44543630ffe418d9dbabd43889de906 : SUCCESS in 56m 16s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b3d18b6c16074aaba82a28405e9f837d : FAILURE in 34m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d7a488902425451bbfacc59f0a8ebab4 : SUCCESS in 3m 04s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/7e4e0398901c44a4b837a0c73582ab9d : SUCCESS in 10m 45s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/6913028900a24f21b54b3333e9bf746f : SUCCESS in 37m 26s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/749032f7538d4cc0b18e08b0ca116034 : SUCCESS in 49m 00s","accounts_in_message":[],"_revision_number":5},{"id":"e1b2c56f5dac52ed849adba36a197e98fdaf141c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-25 14:17:58.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":6},{"id":"4ff246435cfe29d95d4c404a0718c6db7d4c3180","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-25 15:04:11.000000000","message":"Patch Set 6:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7834b799e27648de993c22a7768ba635\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/72b2f089458247dba4e3337aabf1e7af : FAILURE in 44m 16s","accounts_in_message":[],"_revision_number":6},{"id":"5c81778e9652eb3ee851313b1abaeb2ed25c32a3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-25 15:24:14.000000000","message":"Patch Set 6: 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/d7696f1e51604f8f84d2d89f20b0847a\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/99c89a187440437fb149a5820ea679f6 : SUCCESS in 9m 58s\n- grenade https://zuul.opendev.org/t/openstack/build/fac65ec754724e7b8265d65e04266baa : SUCCESS in 1h 05m 39s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/7c436f853b9245948ee4b19c22dbaa31 : SUCCESS in 57m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/08d89fc916bf4ed38c5dd8b44067544c : SUCCESS in 55m 56s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/63429aa81fca447ab3fcdd84e67ebeaa : SUCCESS in 32m 45s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d509821bad564d67b7cfa8dbfcb08d5a : SUCCESS in 19m 00s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e839189b7b0e4c508e165f1dbb41b801 : SUCCESS in 22m 30s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/da753d7209d64d51bce2b6a68f66d44d : SUCCESS in 20m 11s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7bed60f352064775a6e62de7f952f67b : SUCCESS in 6m 30s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/f0d2b4593f6845ca9ee85103d401f205 : FAILURE in 15m 42s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/18ad0f27a8ae4c16857b202190c55f5c : FAILURE in 13m 27s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/47702a5e95fb46efb1ae162b7ca5a986 : FAILURE in 41m 50s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/d3fef3446134420bbad623cebb628ca2 : FAILURE in 38m 18s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/1d3ca8b4a6de4ea4b4f7b5b7fdebc0eb : SUCCESS in 15m 15s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/f356a7b58ca146a298aebcaaaca9b318 : SUCCESS in 15m 29s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/9c8fcb1d8e5d4299b98e93617b1fbc76 : SUCCESS in 14m 40s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/ca402d47f9c24faa9021f6c4dca7921f : SUCCESS in 7m 03s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/881e9a09bc6442c8b81a0175551a8c42 : SUCCESS in 13m 11s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/905e9c9645b94a4ca2f1f9d55e025057 : SUCCESS in 10m 57s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/ef648de9c37d4f36aa4abf0c172a08b8 : FAILURE in 44m 22s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/bdbe6f5a1cfa446da8b5c98520c31643 : SUCCESS in 21m 51s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/022be3eca3384a2fbaaa640bf4bdd338 : SUCCESS in 39m 13s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/06fa441633a34487ba7a16ccd28ed9da : FAILURE in 35m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/aefd9ce85a2f499f8053668bf7e822bf : SUCCESS in 2m 50s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/eae6953ea6f443ccbab73949bab234e1 : SUCCESS in 9m 13s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/7f1cd166de5e4075abb8a2075b8cd182 : SUCCESS in 54m 42s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/82d4850ba07a4013ad0c2c15568188e3 : SUCCESS in 50m 15s","accounts_in_message":[],"_revision_number":6},{"id":"7e4356d2453d193f84452d0de72fd09ce59ac466","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-25 17:52:18.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":7},{"id":"70e29a4da96f93e8aac707538dd16954043cf5f0","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-25 18:40:35.000000000","message":"Patch Set 7:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/16cf97477bc84b43880a08336a8cb93d\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/13326981abc94282991daee458138393 : FAILURE in 46m 36s","accounts_in_message":[],"_revision_number":7},{"id":"f4c436cd24e6a054d818edd4b7e210c889bc9429","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-25 18:41:11.000000000","message":"Uploaded patch set 8: Patch Set 7 was rebased.","accounts_in_message":[],"_revision_number":8},{"id":"345b6c92cacf7289e1862d39d027a6686e52a962","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-25 19:19:39.000000000","message":"Patch Set 8:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c69ee6f19e6d42b989ee70b56f3d73d7\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/0bdaf31bafdb44a5a79780e001a532e8 : FAILURE in 36m 32s","accounts_in_message":[],"_revision_number":8},{"id":"7ecfaa0b1db46029bc9f2354597ef74d5183cd28","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-25 19:52:54.000000000","message":"Patch Set 8: Verified-1\n\n(3 comments)\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/57e9aac54b694be1a4906d1cc6e3f9d0\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/20228c5197e945de908f520de616d818 : SUCCESS in 8m 20s\n- grenade https://zuul.opendev.org/t/openstack/build/bfe5160c597144b683747c3fad3a87cb : SUCCESS in 56m 52s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/d7ac264e901748c981cdc99c01d39b61 : SUCCESS in 1h 03m 18s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/97ba5505cd144e99af7c9a141b6eebcc : SUCCESS in 49m 48s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/be6ad44871c341298d3f7a5ea81d31c3 : SUCCESS in 1h 05m 15s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/efff520e24a1494c916300a233c25dce : SUCCESS in 17m 53s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5cd9cea7b046472e8b185be7db07360e : SUCCESS in 19m 24s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/89bfad1a5b74499c9421f87229e655a3 : SUCCESS in 20m 09s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/b724327cbdda44f695a883ef049f3f5b : SUCCESS in 5m 14s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/210d6057d15d4c5fb9b0543ea79523e1 : FAILURE in 22m 29s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/70cd3f851dbb4a9f858bb97f993be483 : FAILURE in 25m 48s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/16aa833cd1f94be6a00bb98b7a11011f : FAILURE in 12m 52s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/77df885b6f8b43ed9c1ebb3951a0baf9 : FAILURE in 36m 51s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/1f22451a580d4ee1bcdb96c787ae67bb : SUCCESS in 13m 27s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/515d46c59d6a49178f45b5c34dddf9d2 : SUCCESS in 13m 19s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/816b7a623a9744e69d3061ab2409e862 : SUCCESS in 15m 35s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/7cac5e10c61c454da4b773d008ca4275 : SUCCESS in 6m 38s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/534f70334e4c4c6b99353bac60941dba : SUCCESS in 14m 09s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/52e2e25859434172848cde43d36495c0 : SUCCESS in 6m 11s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/f20f63855bd4430998d39037fd1871a4 : FAILURE in 40m 27s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/471ddaacc46e429c9dd8a1be80101776 : SUCCESS in 52m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/5adaffef2c85451b840069346098d78e : SUCCESS in 56m 17s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a9665ae36ecd47f796424ddf3b5cf5a9 : FAILURE in 25m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b017aa38d9224d23b4d14881ee3f33fc : FAILURE in 3m 38s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a1a6606f297f47fe9c8ff84630c08213 : SUCCESS in 21m 51s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/e098d35365b644229c1282721261bfc7 : SUCCESS in 54m 37s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/c6db2f9f01d44c8e896fe5a6268e4f0e : SUCCESS in 40m 47s","accounts_in_message":[],"_revision_number":8},{"id":"1746dadc5360282160fda565a600812c71751189","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-11-26 05:25:32.000000000","message":"Uploaded patch set 9: Patch Set 8 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":9},{"id":"e5d6cd61b5f73a9679a02e0561b860c7ac1a6037","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 06:06:20.000000000","message":"Patch Set 9:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b2d1db28bf5d49f894bc2b12bb6be04f\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/46a06fd5e92e4d578f536f68a46d49d7 : FAILURE in 39m 01s","accounts_in_message":[],"_revision_number":9},{"id":"c5bbfce4e540ccf9cb004e199b4f576a15f75ad2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 06:39:21.000000000","message":"Patch Set 9: Verified-1\n\n(3 comments)\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/33b3dd406a8f4bdb844974c7d6a1deb4\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ea5f2bce285d4782b5473da56d35cfe9 : SUCCESS in 5m 48s\n- grenade https://zuul.opendev.org/t/openstack/build/854a3b34413d4be3891f388374bc6178 : SUCCESS in 1h 02m 46s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/a78e0bc78d594a59b624fab5225476c6 : SUCCESS in 56m 35s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f6781c47408340a3934752336b7924d6 : SUCCESS in 54m 57s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/6f4809ece0d14afdab9bd9f7d35c4869 : SUCCESS in 32m 52s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a994729d982e4d309cb2dafb46f2117c : SUCCESS in 20m 01s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e882f838c91b4421860be3703124d01e : SUCCESS in 19m 53s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/385aa1a1e8a84dc3a0cfaa491ccaf8dd : SUCCESS in 24m 05s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/fb73cb03d61d4ee298891c644121b544 : SUCCESS in 8m 23s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8853027acff84a35a719d72cff472856 : FAILURE in 30m 21s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/e33915b7244940f4be2b34c824ff8ad8 : FAILURE in 24m 46s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/08917af72490488ab3b3d10d00bed99f : FAILURE in 20m 13s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/e3b908823c104c6ca8bf0e4837f820e9 : FAILURE in 38m 19s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/93b5526e27504871b681e5be36782dd2 : SUCCESS in 12m 58s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/36a46ab566eb4832aa2097113d0b0d08 : SUCCESS in 8m 56s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/7374da814ef04d848b30369abb90e67f : SUCCESS in 14m 50s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/5855a7b3472140e0b2b71160984ef7f6 : SUCCESS in 5m 56s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/12463b7ec06c4fd2925dc563af98f31c : SUCCESS in 19m 01s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/3da789fb07d146c1b92287ea726dfd73 : SUCCESS in 8m 16s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/7aa8027ab1ca410989c14e790e6cf163 : FAILURE in 1h 01m 08s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c1dfaf2c0da0479daf621255945c2076 : SUCCESS in 46m 17s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/1d7a03a1b2d144888a1ab46ca4df3eee : SUCCESS in 54m 29s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/674cbea015164830ac9f3cd532cd6020 : FAILURE in 26m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/09d04fec3c7845f2b4b0f494213132f3 : FAILURE in 5m 00s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/d36f2c3cebfe4aaf9db8ae74b8b44c98 : SUCCESS in 24m 29s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/7b53f9501ec44d48ab8773bc124b84af : SUCCESS in 51m 44s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d2a94c840e034cc99ee10c1c76244421 : SUCCESS in 56m 59s","accounts_in_message":[],"_revision_number":9},{"id":"e6fa6b3657cf3187ac6add781902f071340cb15a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-26 14:11:36.000000000","message":"Uploaded patch set 10.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":10},{"id":"856d1a6c93c6bb036c229d82393471b3fa07d2cd","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 15:38:42.000000000","message":"Patch Set 10: Verified-1\n\n(3 comments)\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/16df5231ddc944939bb0c89edd9064bc\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/605816b53b324bc9a32abe1fcb0b02a3 : SUCCESS in 5m 59s\n- grenade https://zuul.opendev.org/t/openstack/build/a46baf9018ec4579bf5b66fca1ae4b01 : SUCCESS in 1h 05m 48s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/eee951133f51498da1e7b40e2ed5cbcb : SUCCESS in 55m 13s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/41c4cbe406b84502bb69d5ae052d947c : SUCCESS in 32m 28s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/969ece77d9164325a01dcf1f6f30bb9b : SUCCESS in 56m 31s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/84fd99727a534189bff1ba32d4aee2a8 : SUCCESS in 20m 05s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2954a518a2294b0daecc22788968022b : SUCCESS in 20m 28s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/67f12074cba34a6e9bbe0dfe76e021ab : SUCCESS in 18m 40s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a0b6193bf3a545d383170600ec1235e7 : SUCCESS in 6m 26s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/d3abb9ef32aa4ab68f8f731ed86e434c : FAILURE in 32m 39s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/32508082f6ab42a6b3713351555aae78 : FAILURE in 26m 39s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/42e68d12f6894d07b624c420b1deb055 : FAILURE in 42m 12s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/a981da3680b94604b8e50202569a73d2 : FAILURE in 42m 02s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/22fe628ebed94eaf9fa57f8fed0299fa : SUCCESS in 14m 41s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/08dbfe63769e45f1916e73aaa83420f8 : SUCCESS in 8m 23s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/7a3e12a9cbc14fffa3e6c1123d0b463d : SUCCESS in 17m 13s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c0945b949be7477984f1011cdba1b97a : SUCCESS in 4m 34s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/29085b733a6741a4bbe1ea298ad7476c : SUCCESS in 8m 10s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/f805cd0e3ef34ba2864f352fb297781b : SUCCESS in 9m 01s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/feca2bc8a2fa4331af3f20147393108d : FAILURE in 1h 11m 41s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/cfc1074389924d509804d9ed4ce88d02 : SUCCESS in 51m 20s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/9f6e7b79504a4573b5ae7c3c48447928 : SUCCESS in 36m 30s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/07fdb449be4d4ee387edbc2c3cbd35b4 : FAILURE in 33m 51s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f26bdc8eae834dccbbe81d1e48a8d8f9 : FAILURE in 4m 28s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/60f6354431854061b53923a79a90d3eb : SUCCESS in 19m 31s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/51a1b05c686e4083b520d716982ed46f : SUCCESS in 55m 23s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9b5df8799b14431996ca7e9a82f3a71c : SUCCESS in 30m 14s","accounts_in_message":[],"_revision_number":10},{"id":"82c034bf2710684e09d8dc9dc5d1dd6d472ee251","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 16:13:40.000000000","message":"Patch Set 10:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fc2a8636dacd451098f8c810e19f94f6\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/bbb227b1bb424d158d293e5d11cdf051 : FAILURE in 39m 39s","accounts_in_message":[],"_revision_number":10},{"id":"f55dc20c95367d72c296a68255857fdd96cfeb1a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-26 18:24:08.000000000","message":"Uploaded patch set 11.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":11},{"id":"4e17dc252892f21ac2a4b3e49f41447f6bca41ea","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 19:46:10.000000000","message":"Patch Set 11: 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/119316d205c84197b358a6ba04d1f6b7\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0ee28afcd8634de1af3b007b15e18a07 : SUCCESS in 6m 20s\n- grenade https://zuul.opendev.org/t/openstack/build/11e2e494ab634f65a298371d4cb3edfa : SUCCESS in 1h 00m 42s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/84998a8610b949738c8e467f164f0d4b : SUCCESS in 45m 08s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/fbf6147ab7df48ecb5e2a5fca0e7255a : SUCCESS in 43m 30s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/58b8669f32404b80aec2465ff58e5106 : SUCCESS in 1h 05m 22s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/304b2cf54c0942ab88e088a4f27f02de : SUCCESS in 20m 03s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3584f960036d4f8ba64a1f6b30379868 : SUCCESS in 17m 58s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/36b546f1875f4b38a8db310a446eccb7 : SUCCESS in 12m 48s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/45946db8368c4f46a8b77cc8f83d65ec : FAILURE in 4m 51s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/650d47ead8cc4860bf99af64b9b7e09f : FAILURE in 24m 02s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/1622ccf95eab4d709353cc4179cfdc3a : FAILURE in 24m 48s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/465ba6c65df7456fb7c41275a47d4882 : FAILURE in 33m 33s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/19447864d6284416b30450b46aa47bd0 : FAILURE in 27m 10s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/1e04792c378244a795d6c1f4c5d74376 : SUCCESS in 14m 56s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/2ef4fe6023fc462eb809d600a9837adf : SUCCESS in 14m 59s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/7d424e6402f9485a959bd1f21427d2ab : SUCCESS in 9m 12s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/8520304a28ff4ece845bd7bf6dce4bde : SUCCESS in 7m 17s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/738ec3da0d6d43b7b07f900f1c1b221f : SUCCESS in 10m 00s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/17633aef629f4618bac2ce0f7ebd87ce : SUCCESS in 8m 41s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/e724f2e9d750482789c723281e4fdaac : FAILURE in 48m 19s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/3552edd627724ea484eecf75feb8b4f5 : SUCCESS in 42m 20s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/2bedfad3dff24a4e8e6a4598e8ff66a1 : SUCCESS in 25m 38s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e34503983e9f484989515acb5c9ea302 : FAILURE in 21m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ee47895236a548ebbff7b59524fecb98 : SUCCESS in 2m 55s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/266723eb9a094b7290ed197d514a1c01 : SUCCESS in 18m 41s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/bc3cc84d7f154a90893c9f0d766c3763 : SUCCESS in 49m 46s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/8423a0aadb8f467ca9c0305577b21a0e : SUCCESS in 52m 44s","accounts_in_message":[],"_revision_number":11},{"id":"8b179765a436540f9345a346e75a2f8793a46cfb","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-26 20:00:14.000000000","message":"Patch Set 11:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/72bb9fb88e30448e9b29db7010752327\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/ffbc952f3694436ca8b15ce21c6da85c : FAILURE in 1h 31m 03s","accounts_in_message":[],"_revision_number":11},{"id":"1f4a7e54a87065a56da9b18340e9b3e442211075","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-11-26 23:22:04.000000000","message":"Patch Set 9:\n\n(4 comments)","accounts_in_message":[],"_revision_number":9},{"id":"03cb8dafdd50124b777ee8df38d267b55d1fed38","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-11-26 23:22:35.000000000","message":"Patch Set 11:\n\n(1 comment)","accounts_in_message":[],"_revision_number":11},{"id":"82b07050ffa38a35f50de316dbb9c258097c2c71","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-11-27 04:59:45.000000000","message":"Uploaded patch set 12: Patch Set 11 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":12},{"id":"631e00eba4a0146da30ed05cc6100beaa361748f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-27 05:43:54.000000000","message":"Patch Set 12:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bc4e32cbfe4245ca90ec15ab35b08409\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/61d169df907447659d2771c0c2fe6448 : FAILURE in 41m 33s","accounts_in_message":[],"_revision_number":12},{"id":"53e7729d16ba510cd67fc8793ace0cd3ea2e2208","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-27 06:05:49.000000000","message":"Patch Set 12: 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/1d24e8b3b10846fcb0d072ba9d78f4be\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e9aeaf135a0f4a5bad8c5aa1adf674b6 : SUCCESS in 10m 12s\n- grenade https://zuul.opendev.org/t/openstack/build/6ddbc38db60145938422d63714d3912f : SUCCESS in 28m 43s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/f07041da36a54e6dbf3577e05481e8c6 : SUCCESS in 29m 12s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/cd918bb62f124ca8bb05ca5a7fd4f72c : SUCCESS in 52m 37s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/98b9e447c5a64c1cad65c575cfaba660 : SUCCESS in 46m 33s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b44bd0ec84074a798a8e75893c7c6721 : SUCCESS in 19m 13s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/bc14a443d5674d46ac4a5c21a85effbd : SUCCESS in 10m 42s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f884a42d69c54aa7a2a444606ef4c845 : SUCCESS in 24m 26s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c4681990ffb24817a74ba971d2916cd6 : SUCCESS in 7m 11s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/e3860326d4b14d49b538b1d90457080e : FAILURE in 22m 23s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/1b93a757290b410cb6618bf5947fe2b9 : FAILURE in 22m 10s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/f2f733fef7944a5d8e4ace7ba4a71b87 : FAILURE in 12m 53s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/ea6bd57f8f2049daa761149b796b5497 : FAILURE in 35m 40s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/32c0f128814d472ca597496e12b36344 : SUCCESS in 15m 35s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/316bb58e72e54b218ca0ba839400b5c1 : SUCCESS in 14m 19s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/f9b8340bceb54ef3b8ef8a97163a6478 : SUCCESS in 15m 08s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/ecd021abb256496caf76c829c2d96694 : SUCCESS in 6m 50s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/1c9b5b3cf8ff4c239662714e7572f126 : SUCCESS in 14m 45s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/0115c27cfbc84844b8fd69196e64502e : SUCCESS in 8m 22s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/00c1a0ba3ea344859308c625c8000b47 : FAILURE in 58m 03s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/e45bbcf2d09943a59c86260c9feb6a8c : SUCCESS in 45m 28s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/042fea3df2404b11b3e3620888de2f1c : SUCCESS in 48m 39s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/928d3af4d2914de6933609d3efac08c6 : FAILURE in 13m 02s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/282691d595c04acfa58e50b748e60ac0 : SUCCESS in 4m 33s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/baa3f475a7be45e4a68d0fcd6cb83f00 : SUCCESS in 14m 44s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/a8cf9578b4094acbb7a5b13ad73df21d : SUCCESS in 59m 45s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ba4b8ebcee4d4278829ef22e54c5f051 : SUCCESS in 1h 00m 01s","accounts_in_message":[],"_revision_number":12},{"id":"12b975bc4610989d4a9d1f76268260385d1f8cec","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-27 18:26:04.000000000","message":"Uploaded patch set 13: Patch Set 12 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":13},{"id":"7acdd7e9ca7498af807b9b07eaa11a9a99179c83","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-27 19:39:46.000000000","message":"Patch Set 13: 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/1ce540b4a84f4b54923b4ca256096c75\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/146f24545601408d8890fe7b11aded41 : SUCCESS in 9m 56s\n- grenade https://zuul.opendev.org/t/openstack/build/d21f38c08a0240fe8efa72d29f8bf074 : SUCCESS in 58m 13s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/238018948744475abd8230449ed80f5f : SUCCESS in 59m 51s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/860ea13be0624fd8ac87574957960237 : SUCCESS in 49m 58s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/6ed700b2668e459cb68249f4c7fe462f : SUCCESS in 1h 06m 58s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6836c35530b94af0934bf49f2c5e5a04 : SUCCESS in 10m 49s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/34c5d5fc3ba949d7be09139667d28fad : SUCCESS in 20m 32s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b4a1bd854e6f4247b8fe5e5562c7b668 : SUCCESS in 10m 49s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/0e0c1730ec2044a189ad720830a51113 : SUCCESS in 6m 43s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/266723ef29e64bc1bdee5790c3b2dea5 : FAILURE in 22m 21s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/814eaee1148442afb23e412bdbbd1476 : FAILURE in 17m 49s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/2673777eac6e4f5fa8d96de630d57b2e : FAILURE in 13m 01s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/8de52dae6ee544d78ae2b2e65ea86432 : FAILURE in 35m 28s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/0e062142fe544ddb9c36b94485d8d992 : SUCCESS in 13m 57s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/6d203d051e7947e79c77f15d25e97af3 : SUCCESS in 16m 00s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/3d0181687b094a6391fc61373a9e9071 : SUCCESS in 18m 42s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e8c25225b4944c7791070a1c2d600599 : SUCCESS in 7m 03s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e91b6a4bdc594a7cbd42f3a5039d38a6 : SUCCESS in 14m 10s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/9084788b3789412ebad635621002d1f8 : SUCCESS in 8m 58s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/cfeedb889d984f7d95694ec02e869e2e : FAILURE in 58m 09s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/aa964f5af445455bb4cbbe2d97210a68 : SUCCESS in 48m 48s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/dd504901d86b4182b987c7f247409e68 : SUCCESS in 47m 47s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/289c9e79c7c04cddaadca33b95a3b62b : FAILURE in 33m 23s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cf2dd25868b84249808f1b0e7255e6db : SUCCESS in 4m 10s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/bafa7411e92a4d868ca03f8386075c60 : SUCCESS in 19m 10s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/fd0896aa034e48729078cee588281e2f : SUCCESS in 47m 42s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/670cc3f09cb54c0ab3e19f7c62860a89 : SUCCESS in 58m 30s","accounts_in_message":[],"_revision_number":13},{"id":"414ecca89b47d4520a2a863a75d06a773756d1b6","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-27 21:03:44.000000000","message":"Patch Set 13:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bb2861184e8d41fbac2c839fb995796b\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/78fe562c618d4e6d998f65e426aa1f56 : FAILURE in 33m 40s","accounts_in_message":[],"_revision_number":13},{"id":"26fba60661d23ae4b8396861791de9fda568e152","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-11-28 18:13:23.000000000","message":"Uploaded patch set 14.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":14},{"id":"8dd1747a51e9340c0c085cb5b37e8671e05775d7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-28 19:27:31.000000000","message":"Patch Set 14: 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/72ff5a8228d84be98b3f974377ed2c1f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8ca722ea6dbe4c2288cff194e26505bf : SUCCESS in 8m 20s\n- grenade https://zuul.opendev.org/t/openstack/build/9b76e3c9f32a44bcb979f5b612144644 : SUCCESS in 1h 02m 21s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3a5d80dcd68b4e4d9fb769691a4886a9 : SUCCESS in 29m 08s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/3b3f2daa5d394059a505555dff4e8981 : SUCCESS in 48m 08s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/fd2c21351248453187badfec5c803d3d : SUCCESS in 56m 12s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c3c10b724e854adf891a0aa8ee620e35 : SUCCESS in 15m 18s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/69bbc7a4c2374afd87ea8722acd68d22 : SUCCESS in 20m 09s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/18111055b51449278348b15784453a72 : SUCCESS in 21m 33s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/836ebc9c15564c3abe84670e153ad1e9 : SUCCESS in 7m 40s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/53345a714483480c8691430f22b9d1e9 : FAILURE in 28m 27s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/d2e56b1174e04b5896217225324536fb : FAILURE in 13m 23s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/12635d366f32415f86b70353da93893a : FAILURE in 38m 57s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/a776239dbf8948f4941994ba81a5bf8a : FAILURE in 32m 54s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/6207a68286bc44abbfe68e059b5f2218 : SUCCESS in 15m 02s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/807f440fbd074512a4f266a7e2598e3c : SUCCESS in 9m 19s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/d17cf29de4e94e06bbb18716cd47de3c : SUCCESS in 14m 31s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/249b0c48e34f4fefa4b0f6142ad8ffb2 : SUCCESS in 6m 51s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/12a182a8bdbe4ed2ae3e99315d2604b9 : SUCCESS in 18m 46s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/8cfb9e61d70e479e91f10ea8ce9ef80f : SUCCESS in 9m 06s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/cdd47a3c82934470b3b0d7f8ccdbaa1d : FAILURE in 56m 19s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/590b4fc57c3248eab3afe979f4096bc2 : SUCCESS in 56m 00s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/9a1cef7e5eac4262a3b00a1188409b55 : SUCCESS in 22m 37s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b147752045e041ab80ad1c476d57d7f7 : FAILURE in 31m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/466c97a0a18949b99805d7647bf9acfc : SUCCESS in 5m 49s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/0fac79e727284349be98ff62857f978e : SUCCESS in 10m 12s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/d11f9040e920473f83c4b4299f9fa75e : SUCCESS in 41m 28s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/488fc6a5db0b4695b05f321ae3f02414 : SUCCESS in 43m 03s","accounts_in_message":[],"_revision_number":14},{"id":"3127b32c386faa8af39a7448e08a34ab60117ada","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-28 19:34:23.000000000","message":"Patch Set 14:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bafb06ac3c81458989b41f80221f5b86\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/f72003d5288d48ce9ba9f0f7d19f30d4 : FAILURE in 42m 01s","accounts_in_message":[],"_revision_number":14},{"id":"de9279c017a8da56cf4a33c05040a69c14d45898","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-01 15:37:49.000000000","message":"Uploaded patch set 15: Patch Set 14 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":15},{"id":"b7e55188e4a5d08ac20b6f349b21f69e298d6bb4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-01 16:44:01.000000000","message":"Patch Set 15: 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/b2a818c7dab14535b20824a747ebaaf1\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0c04a375b14a424fba9f569b1ebecbc6 : SUCCESS in 10m 16s\n- grenade https://zuul.opendev.org/t/openstack/build/069d91ae29424e96945ef60264190898 : SUCCESS in 1h 01m 56s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/d282a664a4a245dc9cfd8e4f94bf520c : SUCCESS in 56m 11s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/277dc70f20504996899234d4a0774663 : SUCCESS in 29m 42s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/1500d756727e433ab85e8faff594a092 : SUCCESS in 45m 28s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/da9599551e644a1a90b380fcf596980c : SUCCESS in 21m 27s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/493831ff8c1a4c6b92bc145762fb8914 : SUCCESS in 21m 11s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d548ee1e93394e6793e94d635a2121ed : SUCCESS in 20m 50s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/53e1d06a349b4ed4841e02f2de2b5f63 : SUCCESS in 4m 37s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/04844fd1ced046008f5c0435031180cf : FAILURE in 15m 35s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/114524902df349e7b6e8434c073e15be : FAILURE in 26m 38s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/009aac7383c447138b41246d04d84b3a : FAILURE in 24m 44s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/db29ef835aa24c2b9cafd42ffa99f832 : FAILURE in 35m 08s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/ce857ae307964f039134387f05427ecc : SUCCESS in 17m 16s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/c1ca574f630c4e87b8d9188109ede073 : SUCCESS in 18m 40s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/697e298f61a04285a2cec749280a819d : SUCCESS in 15m 03s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b9f7773a396e4f79a920ce8c7481fa06 : SUCCESS in 7m 02s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/635019426e2d4bbba2857c6db0d9cec6 : SUCCESS in 9m 36s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/fa58aefca0f54398a5df48ca2245c7da : SUCCESS in 8m 44s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/f567c7b81389432ca8382e7d424960ab : FAILURE in 54m 30s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/4e2da66c6da14837aa79842fb4a5152f : SUCCESS in 49m 34s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/bbca4891fd094608bfcaa4507cc837fd : SUCCESS in 26m 57s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1f828de6e2cb445989d279903067ef4e : FAILURE in 14m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2477498ed033478a8615c08c89939ebb : SUCCESS in 3m 27s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/b038afb854144d60a7bf3bb462bac0a2 : SUCCESS in 16m 57s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/32d445752def4327aba4de5749a43388 : SUCCESS in 56m 16s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/15de3a65a8ab412499e9d09a248edd13 : SUCCESS in 56m 52s","accounts_in_message":[],"_revision_number":15},{"id":"4941748134fb32b405ab9ab0c737fb6188e45e6b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-01 21:06:13.000000000","message":"Patch Set 15:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/63f89c33c14749978dcbeb7f51fe4b7b\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/a04356e962934b11981a4658239d58a5 : FAILURE in 1h 25m 09s","accounts_in_message":[],"_revision_number":15},{"id":"5ee21d91f9dd10190a1ff03a3b18b68167697fae","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-12-02 06:20:27.000000000","message":"Uploaded patch set 16: Patch Set 15 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":16},{"id":"2f02644f0330d922a6f951c67fcf2796dd0f3090","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-02 07:06:57.000000000","message":"Patch Set 16:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8aee4fe25f2b49728f24afd49b704e67\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/2d8228939bc84d70a55d0412ac7b01e7 : FAILURE in 44m 18s","accounts_in_message":[],"_revision_number":16},{"id":"6e2e6ace46126d543efc0b76b5f07faf5c0a76f5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-02 07:27:09.000000000","message":"Patch Set 16: 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/f745b74d157c486d9b996572b16e6d72\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2a392a08c7a240d5ac4e802bc80ec737 : SUCCESS in 9m 58s\n- grenade https://zuul.opendev.org/t/openstack/build/2b7f39d6ce9c4f90ae94a4dfab285218 : SUCCESS in 1h 01m 39s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3fc8a97790fb4f6eb941064b003f132a : SUCCESS in 40m 30s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/a3936fa58a9548a4bf3707f98a757fdf : SUCCESS in 47m 52s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/86af9445cb8f44109a96f9b5637a0ae7 : SUCCESS in 1h 00m 19s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a989244b58224b0f950ceb235ad4d300 : SUCCESS in 14m 34s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a45c48e851a74d80876532e003f37123 : SUCCESS in 21m 26s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4568682d63034ba88599dbbdfb97b8ba : SUCCESS in 20m 31s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/4b4874910390456ca2656e7acd878db0 : SUCCESS in 6m 57s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c23c70f0996549d9af237895d26f970c : FAILURE in 29m 02s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/3a6615c92aca453ebe5e2c42c405c68d : FAILURE in 23m 08s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/cd1c116f8f974203a27ece00916cf864 : FAILURE in 40m 27s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/423f4409724747ed9e7b449253d3f508 : FAILURE in 35m 20s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8fdbb91823d747b88f139668645b8f24 : SUCCESS in 13m 18s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/0145ff76e4284cc8b5e9d9e6de611c44 : SUCCESS in 15m 59s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/14d90987a074478bb1d8976209aa2bcc : SUCCESS in 14m 06s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/42c92477c339447aaeb5cfb3bc8fc327 : SUCCESS in 6m 32s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/f85ac9ecc9774e5ca52318e378376fff : SUCCESS in 15m 36s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/debcb542707144dba30e70a00dcd093e : SUCCESS in 8m 12s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/c7b64a5d5c7e4dd2af6e8626d508e216 : FAILURE in 52m 57s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b4d30dd9ee5f492e9cf4814807310b35 : SUCCESS in 50m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/d5a1ce2630a2469697434b49a9fa47db : SUCCESS in 43m 29s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8f4b2e5f69214218bfb92ca39352b9cf : FAILURE in 32m 16s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ca2e13d5d9dc4a9f8dc292d59f8c1afd : SUCCESS in 3m 57s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/7eab72a00ca348499efca864abe58658 : SUCCESS in 15m 49s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/b510d024625246f4811c0199c596f188 : SUCCESS in 44m 01s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0e55e6ff2b754806b2b3ae8b52506e38 : SUCCESS in 52m 40s","accounts_in_message":[],"_revision_number":16},{"id":"2edf938600536f22b8ab791f89747213c8298245","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-02 18:34:39.000000000","message":"Uploaded patch set 17.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":17},{"id":"522f351718d20aa3e013aff694ca1968af02e3e3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-02 19:46:29.000000000","message":"Patch Set 17: 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/5bc857b406b34476b13f0a8239d938c6\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/210843b328cc4259a13bf26fe88437d2 : SUCCESS in 10m 45s\n- grenade https://zuul.opendev.org/t/openstack/build/70b31aeaea4d41d7b41d232398f29a56 : SUCCESS in 1h 00m 38s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5172223537f8481ba88bbfb1aa6a95e5 : SUCCESS in 1h 00m 16s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/989418a636c24388b9b547528fa032e0 : SUCCESS in 53m 24s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ebf9c8a8fdeb4d5d8c7660b25861e6b1 : SUCCESS in 1h 00m 24s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/80a076200f7c49099b78cce5d78621fc : SUCCESS in 11m 08s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9fddda2deec44273a105874084e6b00b : SUCCESS in 19m 42s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d7d43c0a0c5344299cf20ffad2590142 : SUCCESS in 20m 14s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a445c05f5cdc400dac8b408e8c881afa : SUCCESS in 6m 30s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/349ba09a2ba84374aaa2dd67213753ff : FAILURE in 26m 45s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/a4b5210b5f6b4e6382aa7670c16f56f3 : FAILURE in 24m 56s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/767b3c7e7c0d483b814e5303deab15b5 : FAILURE in 28m 05s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2c133a2369d549368d2a05aa689e3f36 : FAILURE in 31m 40s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/cace87acec844a2d97fa84373d0fcec8 : SUCCESS in 13m 28s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/fb77042a0a6043cdbf2c8a3fac565765 : SUCCESS in 15m 05s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/d1b49155cc1147b49f4807cd3b2cf02f : SUCCESS in 16m 34s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/219c5dbaec724df69c8325599c93328c : SUCCESS in 7m 04s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/5628b1671a64492bbe149bb752ff79e9 : FAILURE in 16m 02s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a0ff3331dfd6441f81e46c5f8a4edbf1 : SUCCESS in 8m 36s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/140ea9b258424ac28e7147a4684db50a : FAILURE in 1h 06m 32s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/984cdef287224ed480f0425d0f014b86 : SUCCESS in 23m 19s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ae61d1779b5247f0bbec5059d2cc1985 : SUCCESS in 39m 33s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/654af078a55744dfb2b66de984c15fb6 : TIMED_OUT in 40m 49s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/75f23bedc9ec4d128636e8a977fd016c : SUCCESS in 3m 47s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/1973ccb501604ec58a7b3af7aed6a99f : SUCCESS in 18m 15s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/fa354c41dc7c4d9499bce8c662f5a47d : SUCCESS in 57m 02s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4750df33abe945aaa7ddf9369ddc2d9b : SUCCESS in 1h 04m 06s","accounts_in_message":[],"_revision_number":17},{"id":"6901dd5611a1b16d91c74e30711991ac7c76300e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-12-02 23:57:02.000000000","message":"Uploaded patch set 18: Patch Set 17 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":18},{"id":"db17bbb4f52960a07b4c17740fddeb7e911b752b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-03 01:09:29.000000000","message":"Patch Set 18: 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/21558ed162ff48289f19a5cda61f69b9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8e30f78018b44d9b9fda4a55b4624961 : SUCCESS in 9m 58s\n- grenade https://zuul.opendev.org/t/openstack/build/5e80284a4c6849e8b4f3cef06f48683b : SUCCESS in 34m 23s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/dd85a2bc06b94aa485feadd10948eaec : SUCCESS in 56m 59s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/9ba10b0f6be848cd923c33ab7d19610c : SUCCESS in 52m 04s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/39c7352ecca244d38f6aa38fa63d0b5c : SUCCESS in 1h 06m 27s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/39881e1ba3644f7898e3d7edfbbf652c : SUCCESS in 10m 56s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/76060676638e455e9e9ad4ab6d357804 : SUCCESS in 19m 52s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/91c5223fc7dd4c9daa4393fcb7678541 : SUCCESS in 15m 51s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/22031b738c074ed29d22fbc949abfd57 : SUCCESS in 6m 29s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/46404f72dab84a638b74dc9642036407 : FAILURE in 26m 35s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/6ca523a2e960457c84353e40fa21b910 : FAILURE in 30m 46s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/194aac5d4e8041b288763cc42f0d647c : FAILURE in 15m 55s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/5a792d81f9584fd4af8b268346e14947 : FAILURE in 42m 03s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/894fd4f0283f411e888664e62476380e : SUCCESS in 8m 12s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/bcb901ebc9cb4f9f89a3a8de26c62108 : SUCCESS in 14m 18s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/55692ba524424882aa2f6ceca783cc34 : SUCCESS in 13m 52s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/94bbbf3f98f3480ba53fe0ebf6d3956c : SUCCESS in 7m 05s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/41bc0097cbe64e5d859733543453a88c : FAILURE in 20m 05s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a76ffd9be7e34489991994f34a392eff : SUCCESS in 8m 44s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/8f5156f6c3a945d9bcf1ecce65229bba : FAILURE in 39m 01s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1f362915b9d54a00a1f2bada713dc5b7 : SUCCESS in 48m 00s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/0fc00ed701a345e18e580e491f299881 : SUCCESS in 23m 45s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/ba9f573bd6914694bd5ba0f28af9b3f6 : FAILURE in 26m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/47576daee03b4504b5bf5d3dc959d4ff : FAILURE in 3m 55s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/eebdb5f95b2a4525bb18f067ea8d44bc : SUCCESS in 16m 04s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/9ced5b769de349dcb60264806d5b0a92 : SUCCESS in 56m 06s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2564273bc0e349bbbd34165b3bf11e29 : SUCCESS in 1h 02m 57s\n\nWarning:\n  Comments left for invalid file test/unit/obj/test_ssync_sender.py","accounts_in_message":[],"_revision_number":18},{"id":"52c94ad7e9ff19a3cdac76e695122c5c4bdd0208","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-03 04:03:20.000000000","message":"Patch Set 18:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2859e902e5894ed598d6f5db958ddf3c\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8dd3c4d09fc6462890b9ea98a92c23dc : FAILURE in 2h 03m 33s","accounts_in_message":[],"_revision_number":18},{"id":"94d540267d2722cb5a34bf0841791a6a991c5f4e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-12-03 05:19:52.000000000","message":"Uploaded patch set 19.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":19},{"id":"0260abca3b5a7f8b6f2a6096b140f363b56b9d80","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-03 06:34:50.000000000","message":"Patch Set 19:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ca1c3cd791144e90bc6bec4067db73b0\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/55dd1e6abe5d4a41ba9d32b6245c7029 : FAILURE in 49m 05s","accounts_in_message":[],"_revision_number":19},{"id":"af27b0b07b33020f855d30697b43d1a8c5cfd971","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-03 06:38:30.000000000","message":"Patch Set 19: 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/d4fe32cf74fb4ac3aebff319caeedfcd\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d8973df53c0a45fe8664d0ff36f99994 : SUCCESS in 8m 18s\n- grenade https://zuul.opendev.org/t/openstack/build/0ae36e4396224fce8b781d38d4e492f0 : SUCCESS in 32m 47s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/6e1ef6d7130244e488f15a6a9cac1ab7 : SUCCESS in 1h 02m 52s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/84f7102614f741eab169f37f14e5ce80 : SUCCESS in 52m 19s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/696ff8f925da45a99a41b389d0cb1d04 : SUCCESS in 1h 03m 19s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/449583473bed406f9d5a592001a66f19 : SUCCESS in 17m 02s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e7fcf71199894ec4bbf8d8f46f521c25 : SUCCESS in 18m 08s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/deb20b21786f46fd92b00f0bfc776816 : SUCCESS in 11m 03s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6138fc437ead4b999c9f93e428cfff7b : SUCCESS in 4m 35s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/fe9d9ecc7716475183e071b4f781d57c : FAILURE in 33m 12s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/cc97d40264dd4715bb45d512e1e209a8 : FAILURE in 12m 34s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/618d840d95444852aa3166b2e4f43cc1 : FAILURE in 26m 32s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2d128534005544c2945ba70552f586f3 : FAILURE in 28m 00s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/0b96f1448d15482f9b9e66e2b490fb3b : SUCCESS in 15m 14s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/5b53127dd5e94692bf0330d603ca048c : SUCCESS in 8m 21s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/140c41aa32e341aaba7d6da238e6cbb8 : SUCCESS in 16m 05s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/79630c78a0dc4823b4297cbdbf784115 : SUCCESS in 5m 09s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/841bb05520fb49e9b62bf84a42c43376 : FAILURE in 9m 53s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/6364d1c71cd2452a90bd479fe1fa6c8f : SUCCESS in 8m 54s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/93bc49116b414322aacb149093e09e62 : FAILURE in 1h 07m 51s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a74ce81e762045a4b14cccdd6416435d : SUCCESS in 51m 01s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/1f58fdf91c5b4e5f8974285f1ebe2d12 : SUCCESS in 46m 02s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/cc6288e11a1d4400a2e3c3fd7e5f0383 : FAILURE in 36m 32s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/388d89bc193b4d0b952d00c320af653d : FAILURE in 3m 57s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/56d340ee9ef54d30a02ed4f9168c7298 : SUCCESS in 16m 36s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/56de25bf26a04b0795bc770bdaa62223 : SUCCESS in 50m 29s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ed16979026e648c1ba90d3fa61590d4f : SUCCESS in 30m 07s\n\nWarning:\n  Comments left for invalid file test/unit/obj/test_ssync_sender.py","accounts_in_message":[],"_revision_number":19},{"id":"a33a84c3c27b16cd9c117de41a1e388d92458b29","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-12-03 07:55:22.000000000","message":"Uploaded patch set 20: Patch Set 19 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":20},{"id":"35c1f90fd009aa66da2801bd2f387d7221fb1d2d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-03 09:03:58.000000000","message":"Patch Set 20: 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/ba8a4b98004841799a1ff3ffb85f2002\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/02978d7841fe4872aa4edf648385d2d7 : SUCCESS in 10m 31s\n- grenade https://zuul.opendev.org/t/openstack/build/b8d533bb0eec48e1adf759d95d89a48d : SUCCESS in 32m 48s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/6104143911a548c99616eca6835a6b0c : SUCCESS in 59m 29s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/15eb69f8094244e19b594b10cb7d7d12 : SUCCESS in 42m 10s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/036466f18c2d4025940e6ad84684a67c : SUCCESS in 1h 01m 59s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a5d7ca79dabb4593a42b8148b55e3cec : SUCCESS in 21m 21s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/288adeca3b2f4658a857be2f6df57cc6 : SUCCESS in 19m 23s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/21d72f84db6a4ddcbd7c9deadc80dc5e : SUCCESS in 18m 57s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/79bf227154814387bc4b002f83a4a474 : SUCCESS in 5m 04s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/df9afc5945704d908287bcaf2dac29f1 : FAILURE in 35m 08s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/0e248958f1cd4b3a96f47eab13be1d5a : FAILURE in 13m 09s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/9dc71df274b8490399ba849c8ffe3a9e : FAILURE in 14m 35s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/d96703db7d5b461394057da6004873f1 : FAILURE in 29m 19s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e1c15e00298f4dcba74b82d199d60ff6 : SUCCESS in 15m 12s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/86e1a5ffdadd40f391559491a7fa4361 : SUCCESS in 14m 51s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/f53939b358c7434c9a8074dd5552b48d : SUCCESS in 14m 37s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/731cbb4f7ee0484ca81b0043925ba552 : SUCCESS in 6m 53s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/50f063a3c0754099940b7c9b908c289a : FAILURE in 18m 37s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/578392cc68ee48258acd2d666ef9f714 : SUCCESS in 11m 00s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/bda78900bac54c5a89b063e4c031fe35 : FAILURE in 1h 01m 03s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/4567edec9c444f0180bfa3017e8ef27a : SUCCESS in 33m 09s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b49a15f2d0e74db7aaf2bd627251dd51 : SUCCESS in 21m 37s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1d7a4be855a34f06b596a8f39a8eed9a : FAILURE in 31m 55s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5a39a5e190604be4907c6e9518f31b94 : FAILURE in 2m 37s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/fa77d87a4a16431da008b3b7ba06d977 : SUCCESS in 9m 08s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/39030570ddd140ab8406f49ef6bd47c4 : SUCCESS in 47m 51s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5204f2d5fc684126910ea0bcc9bfca12 : SUCCESS in 42m 09s\n\nWarning:\n  Comments left for invalid file test/unit/obj/test_ssync_sender.py","accounts_in_message":[],"_revision_number":20},{"id":"56e33cdc4af48e0cd718e7517d2b724c1920706a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-03 10:49:31.000000000","message":"Patch Set 20:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a13f02bb0b5d4daaa2395fef54a6fba2\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/6f698f4589b74a70bbf224548a69b513 : FAILURE in 1h 58m 14s","accounts_in_message":[],"_revision_number":20},{"id":"45be41f21c8a01ecb8dc714ae2b40282d8e253e8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2025-12-04 06:07:12.000000000","message":"Uploaded patch set 21: Patch Set 20 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":21},{"id":"85175c22b8e4bf6c808991e3832109a4eaad9b1b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-04 07:20:14.000000000","message":"Patch Set 21: 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/07d096c1fee243b393c9c98940b0bbf6\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7553fb90675645b5802b09e59167f806 : SUCCESS in 9m 38s\n- grenade https://zuul.opendev.org/t/openstack/build/a8e78e204369496fa926dcebebf2164f : SUCCESS in 1h 00m 41s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/6835cb4bb30341808dac7ae1d2f69691 : SUCCESS in 28m 16s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/b73630cfac57471fb408c22f826ef3eb : SUCCESS in 57m 54s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f910822836704c79af70cdac2f13707b : SUCCESS in 1h 06m 12s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/7369b6c6fc914cc9b071940b3d3119eb : SUCCESS in 11m 45s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/331c8391c1ff474dbe4b1ebd0cb502e5 : SUCCESS in 20m 44s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6d4b1719944d4299b8477422a00b9890 : SUCCESS in 21m 27s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/5381e78bdd3b45ea83dc1cdfc50252df : FAILURE in 4m 44s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/0b0bd81dc08446d9ae2d1c8e7fd212cb : FAILURE in 34m 12s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/a9c85650afc4481d8d59604d18f19b0d : FAILURE in 29m 48s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/6345479021d240a8b57f70888e2160d6 : FAILURE in 37m 20s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/688f3b42975648d0bb6b5c92175dd6e0 : FAILURE in 42m 01s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/539b9de1869b4b57bb13e5a24216f79a : SUCCESS in 12m 49s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/0d98c25a7ed5496d882924c6a38cfa58 : SUCCESS in 14m 57s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/ae2dc181f4684ec6a9c417a6fea87b30 : SUCCESS in 16m 33s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/7015147c56b24ff185fe3145e4b50967 : SUCCESS in 6m 33s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/33b3b7e8a77141959ddb2d1a14b8ce24 : FAILURE in 10m 31s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1ebc188af06d4fa2a009947a195dbba2 : SUCCESS in 9m 06s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/d4a04d214a8f4e44972c269ead84b995 : FAILURE in 1h 05m 53s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/0edac75ecda340869b332517fccb07cc : SUCCESS in 50m 20s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/33d209b9a6174430beaeae36ea920ab2 : SUCCESS in 50m 37s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a8cd75e23ab747c0bc446798319d7f2b : FAILURE in 35m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b668d69ee65e405f836278248afd428a : FAILURE in 4m 06s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/dff89af6b1b24a699eff3dc19043730a : SUCCESS in 18m 07s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/93f0700fb6f44bb69fc176e75b56c8bc : SUCCESS in 48m 43s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ae2429280c9d48209d0348317fbe4aad : SUCCESS in 31m 41s\n\nWarning:\n  Comments left for invalid file test/unit/obj/test_ssync_sender.py","accounts_in_message":[],"_revision_number":21},{"id":"fa16c049049cf20492a8fb3ba3a00b12bef05548","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-04 07:44:12.000000000","message":"Patch Set 21:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/47fe48493ae0428c9cb1d087313ac1c9\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/451b2e2dddaf4faa9ce23d7cb0dbfbbb : FAILURE in 1h 33m 00s","accounts_in_message":[],"_revision_number":21},{"id":"41c0469344f728aaa0d6478a2a9640a048eff89d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-05 15:07:41.000000000","message":"Uploaded patch set 22.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":22},{"id":"db6781ede444a5fbc189f1510267f36454586a7d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-05 16:02:50.000000000","message":"Uploaded patch set 23: Patch Set 22 was rebased.","accounts_in_message":[],"_revision_number":23},{"id":"10e6f09bee0632a1026e3f54b18f69d4e109f9a8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-05 16:53:26.000000000","message":"Uploaded patch set 24: Patch Set 23 was rebased.","accounts_in_message":[],"_revision_number":24},{"id":"f50aab54df1a1fc4600c0681d61f3e6a0c382534","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-05 18:11:44.000000000","message":"Patch Set 24: 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/875a3c57758d4bfb810bc1a7dd664b5c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/caf65d1a1b7f47d6994d1141e7d811c4 : SUCCESS in 10m 04s\n- grenade https://zuul.opendev.org/t/openstack/build/db59ca7da8814fd6b49f5cbb4a5826dd : SUCCESS in 50m 23s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3e7d278fc4354c21b1fe91ae3ed752b2 : SUCCESS in 27m 42s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/14f9687db2e34761b7e8eef77f5d437c : SUCCESS in 34m 18s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c858e024137f46dfa5bcb098ae920970 : SUCCESS in 32m 48s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/527deda9dcc04f06ba245c65d6254ea8 : SUCCESS in 20m 14s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/654ab3d70137448b8e5955fc7477b642 : SUCCESS in 20m 11s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/98092fec0ee64cc8a5437f190c6412d3 : SUCCESS in 18m 29s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/179919cceef84ccaa89a7f297b5b907e : SUCCESS in 7m 33s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/bae5799b48234d4ab31f38f88786c570 : FAILURE in 27m 29s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/c9c5a34d98ef48be89e2dd4a3b02b7d2 : FAILURE in 23m 30s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/4f16c31e07bc45c184188a94ddb68658 : FAILURE in 30m 15s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/d0a46d68f2c046ca958dd2d49f39ed1f : FAILURE in 28m 45s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/24e33568b23240afbaea5587b7579df7 : SUCCESS in 14m 45s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/aa540667cf4d47e6a87a17c5f37a2223 : SUCCESS in 13m 08s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/1ca174d86b9042d3a8c485cef5bd82b4 : SUCCESS in 18m 56s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/24ec2d9cb75f41568dd27ba6c748c1fa : SUCCESS in 8m 51s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/0484c318ccb14eaa8e7f99fc794e4b1d : SUCCESS in 8m 39s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/91ad3dac58ac4971be90efd0176c39d7 : SUCCESS in 9m 17s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/c07c907aee514ed1a680cc46f37bf8ac : FAILURE in 1h 02m 48s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/502a2e8dd1594b2b81473fbf3ddd4c3a : SUCCESS in 55m 32s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/7bb99cac5db04621bc5c9bf37192937d : SUCCESS in 33m 30s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/5431cd01d1f0432190cf2f679561f008 : FAILURE in 36m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d94747c055ba4be2842e88a0d3a52314 : SUCCESS in 4m 03s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/946b929a03b54b679b54e20a5c3bd703 : SUCCESS in 19m 37s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/396bd38c46c043d49d31010e3878b49d : SUCCESS in 36m 53s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/22c6c2b7b3574a8fbce0f6e0ef9005b3 : SUCCESS in 32m 08s","accounts_in_message":[],"_revision_number":24},{"id":"0ea9e7e895c6a04e3504e5f6368317bc8d555e73","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-05 18:49:43.000000000","message":"Patch Set 24:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/61c0a5f3a83a4e7094731ba44dc454ff\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/71558df8710243e4b1c0db5f9af25b5f : FAILURE in 1h 23m 12s","accounts_in_message":[],"_revision_number":24},{"id":"00431184daf3d409d92bfa461a9d49b322360675","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-13 12:50:38.000000000","message":"Uploaded patch set 25: Patch Set 24 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":25},{"id":"2b1fe5bb326cce337b97c5c2f56841da6ad75f9f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-13 13:25:22.000000000","message":"Patch Set 25:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ef65b11f5e5e4608b36020e01efd802d\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3e42c612774d431faed706c626d457ae : FAILURE in 32m 32s","accounts_in_message":[],"_revision_number":25},{"id":"fa9acdd79a2575cf0d6875597d5a041ae2e4b964","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-13 13:57:13.000000000","message":"Patch Set 25: 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/2a9fda2d0d1444c69f41639d37fbb7be\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0bf30965826042f08577baacf779cbe4 : SUCCESS in 9m 58s\n- grenade https://zuul.opendev.org/t/openstack/build/b39e6c46e8c1448194ccd7906fbeb35f : SUCCESS in 29m 42s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ffb0804c91234f17871638cd6cbdd6fc : SUCCESS in 56m 30s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/e2f7b48844044fd682c86a1e04eef063 : SUCCESS in 43m 26s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/8339573190594709807225ae1762450d : SUCCESS in 36m 09s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a652b569d1464e1a87417095d014bc67 : SUCCESS in 19m 25s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4cece24d408746258f7f24bb4ba4fe33 : SUCCESS in 10m 19s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fc9244f1b1184362ae215d31e8d57444 : SUCCESS in 10m 41s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/dfefa801fd2b42e38b17d67bd2a6dfa1 : SUCCESS in 5m 21s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/0a6e6ae387124e348230b535d4d8b796 : FAILURE in 13m 51s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/ad7e60b22e644ad587e2bf09c2e9bfc5 : FAILURE in 27m 05s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/18a2d450f6ed45a5b066989ab52725e2 : FAILURE in 43m 24s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/f56cc45c38ad46bd9ae1bc546a080a36 : FAILURE in 16m 39s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/05940f84ba314fb8a34d3f4ee8bf2d3a : SUCCESS in 14m 50s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/7d4b093ae58f4769bc33b500d8e4c708 : SUCCESS in 15m 15s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/d14e315aba4d4144932576f28fdf302b : SUCCESS in 8m 45s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c59691ef8cbf4d4194cddf745e5a86a1 : SUCCESS in 5m 46s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/631543c17dab4b5a92df54f303cb662c : SUCCESS in 8m 11s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/dfd4ae1b586841d6be1b05c09235eeca : SUCCESS in 8m 00s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/97e8e4f6e6fe4116b931dc342e94284c : FAILURE in 52m 56s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c6b43342d920489a8ca1525738db7cee : SUCCESS in 54m 13s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4b7e884d118a4349b714c97c07224edb : SUCCESS in 24m 21s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/870c7ae736054ece8b433312136daf41 : FAILURE in 27m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f543bd3f85d2499883fe840a5b958aea : SUCCESS in 3m 07s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/7fb1c0e8d8774e449ad2a39a5fdf0bf8 : SUCCESS in 18m 16s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/417fe6ab0ca5442d97bcda0b1e9ac909 : SUCCESS in 50m 36s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/935916e760e742bc98bfa27533e2e18d : SUCCESS in 56m 45s","accounts_in_message":[],"_revision_number":25},{"id":"bbdc72a9f54f630cff3531622b2123f0188bf97b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-13 23:22:44.000000000","message":"Uploaded patch set 26: Patch Set 25 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":26},{"id":"b1b9a1abb49732f9a80382d7684257eb2034b3b4","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-13 23:57:01.000000000","message":"Patch Set 26:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0e4bf28e164340ec8467350c1489c97b\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/c380708a465b4c458968322071200c71 : FAILURE in 32m 29s","accounts_in_message":[],"_revision_number":26},{"id":"37a1463176b5b17d925bbcced3f80e8b12ff456d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-14 00:31:35.000000000","message":"Patch Set 26: 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/ae923b004f22428a95704bbd5db1a30b\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f7d99867ac464a5eae08a07ff8ff8fab : SUCCESS in 5m 29s\n- grenade https://zuul.opendev.org/t/openstack/build/2c18ae207c7d439ab029a3958556acd3 : SUCCESS in 44m 30s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/43629d3611c445b491a327d7544d73b1 : SUCCESS in 45m 11s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/a42dc5b531374b73be9149ae675b055a : SUCCESS in 50m 15s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/db50a677921541bb828d6356c1878733 : SUCCESS in 1h 01m 52s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/eb882e549f66467ca6f95ff3310cdeb6 : SUCCESS in 19m 21s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e94d002fa04a437398b00bf98c8a7aae : SUCCESS in 21m 50s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3d6dc4830bc24d96a3506a1bcc43f09d : SUCCESS in 20m 47s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/88577a472e3343fbb7b9754220b5372d : SUCCESS in 4m 09s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/351e6e6184744279b3286c8a06db0fc1 : FAILURE in 34m 02s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/307655719ee5452ca2e81e502ccfaaed : FAILURE in 27m 29s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/d3598712d99243bbbe4a2e44e734d1b3 : FAILURE in 42m 25s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/1a0bdaee8e994dbc98b137130339941a : FAILURE in 26m 00s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/b0da8334d6784bf6a7582d14b43b9abb : SUCCESS in 14m 20s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/bbc7ed0d413d4838a2e757907e702555 : SUCCESS in 11m 54s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/9f21758a636f4453bfe0905708aa1c02 : SUCCESS in 14m 21s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/ccee2d353a89447895aefede164376bb : SUCCESS in 14m 24s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/34a667ecf5114205acb0483e95fdbef5 : SUCCESS in 11m 30s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/45d51b5544dd45508f39741e9c5d8c44 : SUCCESS in 7m 56s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/78cca141f341442593cac705f273c8f4 : FAILURE in 1h 03m 23s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b6f191a4e0414d778ff1ae7a599b8ec5 : SUCCESS in 32m 17s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/0050fd54adfd4763acb1ac7055d40bc5 : SUCCESS in 47m 08s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/23b2ed2a23714b25932babfb84148af4 : FAILURE in 15m 35s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/380b63e8147b462d9c7891e849e83f61 : SUCCESS in 4m 18s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/9fdd524a8abd4c038adc416c28e98523 : SUCCESS in 24m 10s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/e3ad6f30c1d1447dbbbfeb847976ba75 : SUCCESS in 29m 18s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/b0280f69ba964c3b91a7093099aefccc : SUCCESS in 1h 01m 28s","accounts_in_message":[],"_revision_number":26},{"id":"e48522a371977dc9711ba687785919822e4515f7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-14 18:47:57.000000000","message":"Uploaded patch set 27.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":27},{"id":"39c2737a94c2c44d60464a27abb5e30863f45a5f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-14 19:19:42.000000000","message":"Patch Set 27:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5ba9a816dc0b47aa963f00d9130f3db0\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/87d4191ccce74b5999bfcc759138d799 : FAILURE in 29m 42s","accounts_in_message":[],"_revision_number":27},{"id":"1c4a06a8db3ad22044dba9827ec9da5b2aea5e9f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-14 20:01:13.000000000","message":"Patch Set 27: 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/64f3aa358d0e4c38b0e29ab48a9063bc\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2a1679b1e2004e4b86a018f9a311e026 : SUCCESS in 5m 25s\n- grenade https://zuul.opendev.org/t/openstack/build/df7e46946bec46e9b774fddfd74b7182 : SUCCESS in 1h 05m 20s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/d211c4114f22442c98abf4232b5fd4e3 : SUCCESS in 54m 42s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/eea95bf8d0424bfebc801cc83556d368 : SUCCESS in 46m 20s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7b8a64d49de64fc29f9950bf7af0737a : SUCCESS in 54m 17s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8610b3f117624537b53e303e70c71417 : SUCCESS in 17m 53s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6c5d1aa960dc4fb48df40786347444ba : SUCCESS in 15m 13s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cd742408727746fea65145cd018bbd52 : SUCCESS in 21m 08s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c5b5ba6d300b40878e14c90687c3436d : SUCCESS in 4m 49s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/7c709f5cd7094c5cb0b64c35a537e063 : FAILURE in 12m 59s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/cd8980c49aa54f51b705cc29b36192b7 : FAILURE in 24m 10s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/e2909d1d045f47bfa0677987f900bbfd : FAILURE in 29m 46s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/340f5d1283284e489c057091328f4d0d : FAILURE in 32m 40s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/521b6e09bdfb44368c4ffa8a4e1ce2d4 : SUCCESS in 7m 50s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/3e4e5b93ccf74b35976d64f45f26a39e : SUCCESS in 8m 36s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/53bd53911d5449c38e3a131469c4dae2 : SUCCESS in 8m 54s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/493aa39d38af4eff8ba4d904242254a4 : SUCCESS in 4m 12s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/8b59feae61424239a1b73875a29bed94 : SUCCESS in 15m 05s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/19cd87d4454647e1b0dc298da05838b1 : SUCCESS in 7m 23s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/4b75cfb8900c41fab9d3815cebebb756 : FAILURE in 1h 01m 11s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/11b5d5a5a4144ce8abeedb708c900acb : SUCCESS in 21m 34s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/9b65fb47d8c64aecae7483e3604c570b : SUCCESS in 50m 53s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/96ae7dc4bbad49bb997d509d7d83c34e : FAILURE in 25m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/22905a17b8c64fca8bbb6580e164e34e : SUCCESS in 6m 22s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/8ef99b97b18b4319befa26be3b5e1e12 : SUCCESS in 17m 43s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/d8b4560769324370a8d5eafd83eef189 : SUCCESS in 49m 42s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4b2b3738549140cea5ecc80db8f616e8 : SUCCESS in 33m 46s","accounts_in_message":[],"_revision_number":27},{"id":"92c35f72fc221504be67141926a79b229679d80b","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2025-12-18 19:57:32.000000000","message":"Patch Set 27:\n\n(1 comment)","accounts_in_message":[],"_revision_number":27},{"id":"14e54aed04f51e8da247e3e7e1907846b8d5382d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-19 16:25:20.000000000","message":"Uploaded patch set 28.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":28},{"id":"f74c003940e1e7343e34c5d98317a7b442bda19d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-19 17:38:48.000000000","message":"Patch Set 28: 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/d07f4ed47e3b4a0badd2d67ca846f61b\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2dc3ea281dbb419892ffb34b0be426ea : SUCCESS in 10m 19s\n- grenade https://zuul.opendev.org/t/openstack/build/0c0d043ffbec44e5a840474d1de27138 : SUCCESS in 1h 02m 20s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e7bac4cd907b41b4ad92517bd8935a4c : SUCCESS in 34m 19s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d938584539a2435ba887570b5b757263 : SUCCESS in 55m 04s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/184c33d6781f427681ad8a28b408b1c3 : SUCCESS in 33m 32s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/26bf095081434b639055697460c21270 : SUCCESS in 20m 46s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/88619e516cce42f7b53818e00c7e8f9f : SUCCESS in 20m 05s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8623fc756c814e74bfcd02109301f98f : SUCCESS in 17m 31s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/f483dee40a3144f3a6c5ee88744f4732 : SUCCESS in 6m 28s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/e699eb0dc3714e7eacb0427f3ee137a1 : FAILURE in 27m 41s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/4c81f7383947412d821fa5aeb876c4fc : FAILURE in 10m 07s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/9bbe1c20626949c2ba3a8af9631a74cf : FAILURE in 23m 59s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/9c3f06e0044c4b20a3eb63e7962bbe51 : FAILURE in 22m 04s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/ea2965e067d74204a75996b9fdcf1900 : SUCCESS in 14m 49s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/63e6a141ff23404887c6c9ac1e0c2c3e : SUCCESS in 11m 38s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/62c74b4dce72433288def88113e298aa : SUCCESS in 16m 23s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/5b4a8c415db845a08a5e0190a15d8f7b : SUCCESS in 5m 57s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/53bee96e3ecb4ea6a59f7767068980d0 : SUCCESS in 15m 48s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/fb6880df9d13471c8b22055300d0ebf1 : SUCCESS in 7m 32s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/9e0d38fad73e4cfc8aedd46386326ac6 : FAILURE in 59m 20s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/48b5d3a088a248678ac6e8bb6f983c33 : SUCCESS in 21m 13s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/f2b825fbf04f4efc9aaf9cf1d0cf7edd : SUCCESS in 48m 31s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4972e4e7ae0842669c29d22f5208eaed : FAILURE in 11m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/79e98ff213a94049aa156e37c1ccbcd3 : FAILURE in 3m 52s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/e8ba1af9072940e0a394eeced2ad5e5f : SUCCESS in 18m 01s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/9c9be117bc274c0d93310eba378c3dee : SUCCESS in 30m 47s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/11fb6aba36154ba1b24ff58f32731c09 : SUCCESS in 59m 01s","accounts_in_message":[],"_revision_number":28},{"id":"a58f88a5ccd95e1bde966c702ecdfd4d0a952546","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-19 17:50:02.000000000","message":"Patch Set 28:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ce242105575f4ced8432c1a5dcf2e17b\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/4fc1614e4e90484c92b2a2ff5af7f092 : FAILURE in 34m 26s","accounts_in_message":[],"_revision_number":28},{"id":"0aa2712a249d6eb6967637ee4dab9e8c7f2b3737","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-22 20:22:46.000000000","message":"Uploaded patch set 29.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":29},{"id":"b561101fe8d0907950445490181d70ff7de688f5","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-22 21:02:04.000000000","message":"Patch Set 29:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b7a909f7b5d34b4a98fc7c014df9a6e5\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/60091a2d9ff64d1caa2bf4a74c38250f : FAILURE in 33m 32s","accounts_in_message":[],"_revision_number":29},{"id":"61ee4af1b47bd16822190cddb3fb6b9d93e46067","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-22 21:33:05.000000000","message":"Patch Set 29: 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/c79591b48bb44d239731ab42b7204e37\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bd93e45c6a53470abbe8b0e3725c5e5a : SUCCESS in 9m 06s\n- grenade https://zuul.opendev.org/t/openstack/build/1529986434dd4de9adda35a199a97c08 : SUCCESS in 27m 53s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5a2e6d1139974840aacae12665fea706 : SUCCESS in 33m 41s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/7e62be51be1c47be996e950f1da5fd51 : SUCCESS in 51m 32s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/49b588b2d963429a9f265f23a176d75b : SUCCESS in 54m 54s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a4f1577b06c84bd6835b65f0661bedd0 : SUCCESS in 21m 46s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/71561c611df349b28caf863f7eb58e67 : SUCCESS in 10m 09s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a10742d31a71464baee2c920a3a57e83 : SUCCESS in 10m 20s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/3449e1565ce3464ba094fc5e84b2d56e : SUCCESS in 5m 45s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/677e4430ad054746b11c167a6c662378 : FAILURE in 28m 06s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/f26b2c44aa9e4531bb459cf118fc9383 : FAILURE in 17m 58s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/d645b202ee2f48eb9b00c1c8e96e5c50 : FAILURE in 39m 58s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/e697c6a22a414f92924d25cd75a6089e : FAILURE in 31m 42s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/fd99c54ef4094ffe9e83d844171301cc : SUCCESS in 7m 45s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/91f4420c24e548fe8682f4f419f38c77 : SUCCESS in 15m 20s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/98cd32761a6b48d58008d86631f15629 : SUCCESS in 9m 24s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/0d60909ab78447db9cced6ad4932c4f4 : SUCCESS in 4m 20s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/73a34ea61ccb44388d7989fbbe4afa3a : SUCCESS in 13m 29s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/12ff4fb3eb86498ea436fb33b1c14d5a : SUCCESS in 4m 44s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/3671de43cb4341ec99fb570dfcdf3179 : FAILURE in 1h 03m 09s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1563c3d1577241389f465537a6bf1fd0 : SUCCESS in 21m 00s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/966c954b9c7e4c688054c6fead972fa3 : SUCCESS in 47m 22s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/28d305a274f8427089ac7e14dd80267b : FAILURE in 27m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f0a870a2ada04c4cacd423e384adf816 : SUCCESS in 3m 41s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/1640eaa7fbd8442eb8567a7add7a8185 : SUCCESS in 31m 14s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/61de19564fd744199ddbe3bb156ad290 : SUCCESS in 33m 32s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/78d3b0fd563b40b0b0d78236fddde269 : SUCCESS in 42m 22s","accounts_in_message":[],"_revision_number":29},{"id":"bd0b8bb69d557be7dd09648e95832325041c500d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-23 19:13:26.000000000","message":"Uploaded patch set 30.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":30},{"id":"75901d15f10241b624d6ef01bf889738071a25b9","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-23 19:46:45.000000000","message":"Patch Set 30:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9cb6a1f925154f2bb9158ee668da623a\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/676438f11dc148d6b0b397f30cea7bcc : FAILURE in 31m 31s","accounts_in_message":[],"_revision_number":30},{"id":"e4bfcf717e4d9547f40db3f1f1953f55841c61e3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-23 20:25:23.000000000","message":"Patch Set 30: 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/27a5b5800685474b9a2a9de844016303\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9ceaceab023b4d6cbd542cc1efd3e23a : SUCCESS in 8m 33s\n- grenade https://zuul.opendev.org/t/openstack/build/37f421ec5a834b72babf6f1c43bf353f : SUCCESS in 54m 07s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/1eefb650ca7e4d219516d8f980fb0742 : SUCCESS in 59m 59s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/736260386e094411917d03494b87a7ec : SUCCESS in 43m 44s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/8b584e6fac1541c080440e9a45cfc2d8 : SUCCESS in 48m 57s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e9bd499d31e0446290f85d74244b5e0a : RETRY_LIMIT in 1m 39s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ba83267ee166432b9cee8fd29438e7d2 : RETRY_LIMIT in 1m 18s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0804b60ddc4f46eda8da02239668334e : RETRY_LIMIT in 1m 24s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/029fceccf5c34c1597585e0a0667b1bc : SUCCESS in 6m 07s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b198984dc92f45d4833b0142e0edd934 : FAILURE in 10m 41s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/2ea84ef8cb6d4fc0876dd9d198dd97c1 : FAILURE in 26m 13s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/a5343bf224664309b07d57f3330f1334 : FAILURE in 14m 20s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/62bf10a8340b4f07960cc03f72134b70 : FAILURE in 14m 59s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/9d61cdde35ab4ee1be6dfa10a7b208f5 : SUCCESS in 14m 36s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/b89ee8f045fe424e9fad958155f0cab0 : SUCCESS in 11m 21s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/60ffeb8f818542f18b0afbb9ffeaa3e0 : SUCCESS in 14m 23s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/38d939f85901487db968261de90bf7dd : RETRY_LIMIT in 1m 21s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2f65d6de0e6041a380cee3d1f93d9338 : RETRY_LIMIT in 1m 32s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/73ec645928354923a1872ec798ec2be3 : RETRY_LIMIT in 1m 38s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/d9a2668c199b4f2288dcd6f7c4d25160 : RETRY_LIMIT in 1m 29s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1b280cdf560e4d3dab203e24103d4e47 : SUCCESS in 52m 39s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ebd4b0c1a7fe425f98e9043cc58124f7 : SUCCESS in 48m 54s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/72ed76529cc546f0acdb72561c885db5 : FAILURE in 30m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4f39685fba6646fcbb73fd7d70a3aa11 : SUCCESS in 2m 53s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/ff734e869ef04598b7f6d29f74e15a31 : RETRY_LIMIT in 2m 00s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/70b92f99c9a24354b306357babf860ab : SUCCESS in 48m 14s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f99db89161b24dd98c646226557004ab : SUCCESS in 59m 50s","accounts_in_message":[],"_revision_number":30},{"id":"29a7b7b244f9f47122eba225f42eb20f99c045ae","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-24 16:36:11.000000000","message":"Uploaded patch set 31.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":31},{"id":"73e45c7b21efdd335ae50dab6cbe616315b63b43","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-12-24 16:46:06.000000000","message":"Patch Set 31:\n\n(5 comments)","accounts_in_message":[],"_revision_number":31},{"id":"eb9095aeef49c2a13ce63aa3d52fa63331835c24","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-24 17:14:05.000000000","message":"Patch Set 31:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/460190c6bc9e4a068c9f4e5a05744355\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/62bd22891ab1472dba2a1adae8aa5166 : SUCCESS in 35m 18s","accounts_in_message":[],"_revision_number":31},{"id":"6644720459877bf05cd1a50dde60d1acaafe1e5d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-24 17:54:30.000000000","message":"Patch Set 31: 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/37dfcce3d5e84badaec34531d71af031\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/00385d3417984c2ab3e267189f3f4ebd : SUCCESS in 9m 48s\n- grenade https://zuul.opendev.org/t/openstack/build/7207c611fb2a4ad8a4fe282100b4cabc : SUCCESS in 1h 11m 46s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/6aa6c8cc89a146fc9b8186d7b04a2bcb : SUCCESS in 58m 18s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/dc4724474dd64b6fba2e868d61a03908 : SUCCESS in 31m 41s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/669edd86f12f4a8f9bcf12a397846144 : SUCCESS in 1h 04m 16s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9ceaa27f56ad4777872b7e6dff7df6be : SUCCESS in 19m 46s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2bcbfe54dc744b67b182ade93c404366 : SUCCESS in 14m 42s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d06b807bb77d4afca19323267322b058 : SUCCESS in 20m 17s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/efaa42d6032d4a838432dce3cd63526f : SUCCESS in 5m 56s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/2f8c32656e234499988041d0536ebbe2 : SUCCESS in 10m 20s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/13e10c1120674d219389f0f522a96894 : SUCCESS in 23m 07s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/27c9f921c6064bed9e1826d9cbfb8ac7 : SUCCESS in 35m 05s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/b72f23635a7342a7875879dbd13c4a47 : SUCCESS in 32m 14s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/b2b5f1ee270742baadf083da902e7527 : SUCCESS in 13m 52s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/635c79c033014d879e77d180d390631b : SUCCESS in 14m 55s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/13038e5f08cf424d88f5a9bc42b6c9b7 : SUCCESS in 11m 40s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/546d73344b574cc0a761662b942fb151 : SUCCESS in 6m 11s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/7ea4357e291245e1866efbce26d93f34 : SUCCESS in 12m 57s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/6f7c556290084c309e140fe79046da49 : SUCCESS in 8m 01s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/d30903240e8f471b825758f33542e8e7 : FAILURE in 44m 47s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/0e119acb154a4e068606c1cad643c1ab : SUCCESS in 52m 00s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/fafd34a79a1f499c88b8a87ecaf09fef : SUCCESS in 34m 52s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/468e09e996b94d1da9d6348bbfb9ed4c : SUCCESS in 13m 15s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b9b0b429b0504411906f4043fb39adb4 : SUCCESS in 4m 01s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a748a3a2379248d5b91f867058aeab79 : SUCCESS in 14m 59s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/db36b218d2254fbabb62065d3ad1d01f : SUCCESS in 57m 25s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/08689f26a7f24182af2fcaf054c324c6 : SUCCESS in 58m 19s","accounts_in_message":[],"_revision_number":31},{"id":"0d3d84a4c9bd1c3f5255b1e54f6194e90e6fb3ca","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-01 01:31:13.000000000","message":"Patch Set 31:\n\n(1 comment)","accounts_in_message":[],"_revision_number":31},{"id":"d34ac0ffb4be1b40353f076225fba57f5fd75a34","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-02 10:50:20.000000000","message":"Patch Set 31:\n\n(1 comment)","accounts_in_message":[],"_revision_number":31},{"id":"4633bb7d9f674afe83f524044c003f893e553ad2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-02 15:19:52.000000000","message":"Uploaded patch set 32.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":32},{"id":"05bb7595a540a03d66cfc7c4ff0790696b2b098e","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-02 15:53:46.000000000","message":"Patch Set 32:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ec0d57940c7e4eb9b0689148d6026fd1\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/878f518ecfca4c2fb55bde675980148e : SUCCESS in 31m 53s","accounts_in_message":[],"_revision_number":32},{"id":"4f62cd690f43c0682d826872170d481c4159195e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-02 16:37:49.000000000","message":"Patch Set 32: 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/19d2c386077e404f8f1c3fac89b5fbaa\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/82f38dea68c54d1395e6649ec8f0b02d : SUCCESS in 10m 30s\n- grenade https://zuul.opendev.org/t/openstack/build/c27d62e412c745be8b00d2da4c34d814 : SUCCESS in 1h 08m 14s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/1516f122004649fa868793f6d9a1a54b : SUCCESS in 56m 52s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/c77c2322bb4e43ebad86f3586168b624 : SUCCESS in 54m 51s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4744b3aa10404a849dc6cd69c71c17d1 : SUCCESS in 1h 04m 45s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/34d68695d89e4a45899f94a13c7fbc15 : SUCCESS in 17m 59s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/03c86a60a8fd46508515275884d0c2b9 : SUCCESS in 12m 00s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ac464e11c8624a29b7af96865b71b29a : SUCCESS in 10m 48s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a78012c4bf9b4a15ac3c74150f91e42f : SUCCESS in 6m 58s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9e597ec807b9406e9d20cf787ddefe7f : SUCCESS in 25m 10s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/a369a0e559884d398f35e496a9590869 : SUCCESS in 23m 18s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/93e43bdef87346f79b517489f6a47494 : SUCCESS in 23m 35s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/9f6eaa20ccb34d259fa4f6902343b2df : SUCCESS in 23m 59s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/3a85da3011c6465f8cade5dafd3faee0 : SUCCESS in 12m 53s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/e9cb9c09af524dcbb4b1c1ba02516d68 : SUCCESS in 15m 45s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/15088d74ca3340f98b673f0c33fc04e6 : SUCCESS in 15m 38s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e07f95ba834b468da4779a4d2bfe0d2a : SUCCESS in 5m 49s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/3b47772249574e9894cceeb252868e54 : SUCCESS in 12m 27s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1600a87504d2403e94b26eea26f40960 : SUCCESS in 7m 27s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/5cf88761fd67484f911e16ee7bd4da58 : SUCCESS in 56m 49s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6eb5968f5c144462a8329a687ec4eba7 : SUCCESS in 40m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/3080878800dd4daabba730eae62848d6 : SUCCESS in 25m 08s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/46b1e06c350940d5adc3394905a501f6 : SUCCESS in 28m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9b95e97fa5624621808c732dc2086c4f : FAILURE in 2m 20s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/bea03bc9bbd34e5680eee8e40ec0f0aa : SUCCESS in 8m 45s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/3744bd13d8d943d5a1489c562672788b : SUCCESS in 34m 19s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3c9c1a9df38a48519c90e9bbb1688087 : SUCCESS in 59m 08s\n\nWarning:\n  Comments left for invalid file swift/common/middleware/versioned_writes/object_versioning.py","accounts_in_message":[],"_revision_number":32},{"id":"4a21f2706a65e796c1d399942980b3235464a944","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-02 18:23:35.000000000","message":"Uploaded patch set 33.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":33},{"id":"41cfbe29f20c0a4f5dff8458a17d36c548f88bb5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-02 18:27:12.000000000","message":"Uploaded patch set 34: Patch Set 33 was rebased.","accounts_in_message":[],"_revision_number":34},{"id":"c9eed006efaca0fc6d59996654983526d01dea4b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-02 19:23:19.000000000","message":"Patch Set 34:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d08c3bb856f6435ea90f9cb5a3655b23\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/f7e24b7a1c22468c932c700511b1b305 : FAILURE in 53m 39s","accounts_in_message":[],"_revision_number":34},{"id":"c04b13689d8174a89707e5c1ba2e7cab2875b9c9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-02 19:52:37.000000000","message":"Patch Set 34: 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/8a1e33124007473aacd22930bb413c4c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/04735c224686468cb6b578c2629b32c4 : SUCCESS in 8m 22s\n- grenade https://zuul.opendev.org/t/openstack/build/1c4f46ae6c684317b197a449a0f856a7 : SUCCESS in 1h 05m 12s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/bd0d02adc62b4d0baf73b04cbd19c4f8 : SUCCESS in 39m 25s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/70773645cc55473ba42a6845b6c68314 : SUCCESS in 48m 19s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5925fdc850254f039baba22aecb3d20e : SUCCESS in 1h 02m 48s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4d03fa3c33784f2b8e48075d31b8d9b6 : SUCCESS in 19m 16s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6949fb17767546ccbe91635ada93d4a3 : SUCCESS in 22m 37s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8e0f258feaf84904b4fcc94b704eb2ed : SUCCESS in 19m 53s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1775dcb53ce14936875d0a67da8102ac : SUCCESS in 6m 33s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c7fec1d963024976af16a044fa8605e9 : FAILURE in 27m 06s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/b4f80c9aa99648feaf1a4a270fc5e8ea : FAILURE in 17m 35s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/8f216a096f0b4453a54e5fbb128f023e : FAILURE in 18m 33s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/21f6a3e32d784cc786563fd997f5f715 : FAILURE in 33m 12s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8ae65e218029408186658bd027a0aeb3 : SUCCESS in 14m 08s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/029961232fef4cf9b984f41a82f9183b : SUCCESS in 12m 04s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/cde8ef20b421442b8b5ec4a5dbb29632 : SUCCESS in 14m 34s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e49ebadfb7fb45d4ad4876e414542522 : SUCCESS in 6m 22s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/116872ab386b47aba7e474db62218316 : SUCCESS in 18m 01s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/0f70b37ea8b44f949d6e76652e5a8fd3 : SUCCESS in 10m 42s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/ead5deb664cf4901b110c4d22ab03c49 : SUCCESS in 58m 24s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d4c79bb81506434f962fcb638a3fe740 : SUCCESS in 33m 55s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ac416a6600fc4a1d92db582d579875f2 : SUCCESS in 53m 47s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/282a6c4b3802429ba3947eff31b6d06c : FAILURE in 26m 35s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/675902270b0e423c94c4e027f57c53d9 : SUCCESS in 3m 57s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/5675aa464a554689aa2775c71f2a54ac : SUCCESS in 20m 10s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/250a890bb0b64cfbbd55805f42328cd4 : SUCCESS in 39m 03s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/885cede7712842aea4fe563462d5935f : SUCCESS in 57m 59s","accounts_in_message":[],"_revision_number":34},{"id":"241833398fafab0c3ecf1dac80246aab457b41fc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-05 10:38:39.000000000","message":"Uploaded patch set 35: Patch Set 34 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":35},{"id":"7642479c3ac1f3dd12ee353d9fd2cf11b11665ca","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-05 11:16:33.000000000","message":"Patch Set 35:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e16167fbc8a84817a4fe41a26a2459a3\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/ef9491a2865a4b4d834540ab14c10289 : SUCCESS in 30m 24s","accounts_in_message":[],"_revision_number":35},{"id":"d862ea84ff2f9dc0f18ff79b66f25b60f02222cb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-05 12:38:36.000000000","message":"Patch Set 35: 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/b45b872df5474a51a302483a49a4bba7\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/18fcdaa6ae06420eba76c02e4c5a11bc : SUCCESS in 9m 32s\n- grenade https://zuul.opendev.org/t/openstack/build/23cd3200370f4f8c9b406d1de215dd2f : SUCCESS in 59m 01s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/64ed1f80bb0d42468d188bf8fe0a2ea7 : SUCCESS in 56m 54s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/ae7e2d719a59436e932986a8f60a41d0 : SUCCESS in 33m 17s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7449f94d75154147b63a4bbbbf5b4e52 : SUCCESS in 1h 39m 41s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a90ac3f0034a4cffbd3a47a655ec3758 : SUCCESS in 19m 23s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5c7318ae8b7c4412852fe120dba6e39d : SUCCESS in 20m 39s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0a6de94668204e4ab2005e46e7b6e867 : SUCCESS in 20m 38s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7cf95fe6301d45138765c1b44da69233 : SUCCESS in 6m 06s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/6a6c3648158a405884d33afec8228c70 : SUCCESS in 24m 54s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/e8bf4f87e2cf4dcd8bd6bee96a85244f : SUCCESS in 23m 06s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/87045b9d6d4e47f5a0876b9e1f6bfa01 : SUCCESS in 31m 50s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/1080db3eef5b451c974786d612d71fc3 : SUCCESS in 24m 56s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/ec63d9d6f8d84ebf8fafed7768193177 : SUCCESS in 16m 22s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/cc8415496a9041e3832181ff0c888310 : SUCCESS in 13m 18s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/33463a63b80d480188a379e62a54ece0 : SUCCESS in 14m 54s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b8e834f0596749688d54cb342533847c : SUCCESS in 4m 31s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/be34533ae099432cb8cc03f7cac86e2c : SUCCESS in 19m 00s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/d22090e27657465297071e5239fa3b65 : SUCCESS in 8m 46s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/16e88c8f1f7d406095752fb5e0602ebd : SUCCESS in 52m 45s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/497294638fe0494c9ff6c924d0a8cbb8 : SUCCESS in 50m 46s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/faf783dc50014beea3101083420860c1 : SUCCESS in 35m 25s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/898eea432fb0419793e4133446c8b940 : SUCCESS in 29m 28s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e26fe4f75bf34568bd1bd89a530aa881 : FAILURE in 4m 29s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a614ce2bae5b4bf982f689af8b8aed9d : SUCCESS in 17m 44s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/f5ff840b791f4f329b1ed0d9cca19f7a : SUCCESS in 51m 30s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/a50fe64ff30845aeb98fac66a448a1f9 : SUCCESS in 59m 11s\n\nWarning:\n  Comments left for invalid file test/unit/common/middleware/test_object_versioning.py","accounts_in_message":[],"_revision_number":35},{"id":"3c9c9a6e4f854c879890391e803cc7444b50967c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-05 16:17:50.000000000","message":"Uploaded patch set 36.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":36},{"id":"32dc48ef723baa5bbdbfee3ca01a018da2c4e715","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-05 18:21:36.000000000","message":"Patch Set 36: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0c7706062bbd42668150cd6865310d73\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/623dfb27bbf64c39bacb7226ea3b005f : SUCCESS in 9m 43s\n- grenade https://zuul.opendev.org/t/openstack/build/7811307da3ea45ed844e5cafcf83d233 : SUCCESS in 1h 02m 56s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/50307c594f984b449188881704434b20 : SUCCESS in 1h 01m 23s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/61929e422e9b49f381d6a33653597502 : SUCCESS in 42m 46s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c3ea9059a47b41279b11929f95de47fb : SUCCESS in 1h 05m 00s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a1750c504c4146d6b118396b03a3be42 : SUCCESS in 18m 54s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a1132dedfcf149388daa527db0a0fa74 : SUCCESS in 17m 48s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/db79bcdc2ef44acaad9162e509d8fe0f : SUCCESS in 20m 04s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6fb5a0f5a91c40cc992cc7f2268c80ad : FAILURE in 4m 57s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/3923d56c7e0b4148aa28b3469f4e0c5e : SUCCESS in 28m 25s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/abea024298214d2e88b826005f9a7dbe : SUCCESS in 22m 01s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/670c32875d9e4016b646dce992cd99db : SUCCESS in 22m 43s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/8f017adaf7df487abc84f32e773390b5 : SUCCESS in 11m 45s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/9a9c40a9d1374ff5963225d1edc1abc1 : SUCCESS in 12m 28s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/76776af0aa8e4061b0da91d90453fa0c : SUCCESS in 8m 48s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/cc1bb8c7e5eb4156a0bcc79753f6e538 : SUCCESS in 15m 56s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/3fd3b8b223334276b2fe582f207769f3 : SUCCESS in 6m 26s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/c5fb844a603140b69bcd50ade2cea1c0 : SUCCESS in 18m 15s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/ad808e20409d4092b565e61c6ff776a1 : SUCCESS in 8m 20s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/53cc3432a66d4ccab2fbcd6e3ab27b75 : SUCCESS in 56m 55s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/f423c82e956e4720a38dabba89ad0ffc : SUCCESS in 21m 16s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ea9336bd565e4d37b889e2bdcd18d70a : SUCCESS in 33m 15s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/bed5329432a44c43a88e5762bee18a74 : SUCCESS in 24m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0d021d3ce97341c0b5326553d23f77d9 : SUCCESS in 3m 28s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/f8754126808e4a3ba619c1baaaa667f9 : SUCCESS in 18m 34s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/dee3c68f535b48eca3329ddc44da4117 : SUCCESS in 48m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/c0fd30b59657491e9fc4cf4b3af77201 : SUCCESS in 1h 38m 36s","accounts_in_message":[],"_revision_number":36},{"id":"70fd03e7c2e60f6761db77215b96f72e82586a22","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-05 19:18:03.000000000","message":"Patch Set 36:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8cc74ffba59d4957b47e53488fd81e97\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/5a6147087982406297a6a955fc6acb52 : SUCCESS in 34m 18s","accounts_in_message":[],"_revision_number":36},{"id":"2667b144fb475b331dded90b1c308c3017fe32cf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-06 17:43:16.000000000","message":"Uploaded patch set 37.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":37},{"id":"6da0627688a8055f688c4aec6fd01f4436043147","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-06 18:04:45.000000000","message":"Uploaded patch set 38.","accounts_in_message":[],"_revision_number":38},{"id":"d4e15feb9dfc8d2af1b559e7e6f1cfb837fd74fd","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-06 19:03:28.000000000","message":"Patch Set 38:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/33ff878efa57455c8ad94fc39cac8648\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3abbf13aa0b849ba9f63ed4cfa9798fd : SUCCESS in 54m 17s","accounts_in_message":[],"_revision_number":38},{"id":"187ccda157a0df4ff0dd976e0377949f7f729dfa","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-06 19:17:06.000000000","message":"Patch Set 38: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7c041e10cd734a568c9f8ffe10f7d391\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4a109e5d204041b984254a6202b252b6 : SUCCESS in 5m 13s\n- grenade https://zuul.opendev.org/t/openstack/build/d2ac577d1f484052b347e79f8f39e96d : SUCCESS in 59m 36s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/88976a56a22e46dd885cf08a6be05724 : SUCCESS in 53m 48s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/b1dd22642e2844079c62a1424c2da0b4 : SUCCESS in 50m 14s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/06b8b0f27d1c4a7f9f69f031afc37ff3 : SUCCESS in 32m 35s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/934df3a411e24dc68a06f0625b7fc94b : SUCCESS in 11m 58s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a30d6121881b459392b855cc7e629277 : SUCCESS in 10m 46s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1ec960592da54c15a03649bb6b812ee8 : SUCCESS in 10m 56s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/b79abd65ed81436fbc3ae04e94b850ba : SUCCESS in 6m 20s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b4b9ecefef984209891657b647461322 : SUCCESS in 10m 45s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/5da7548556f443baadcd6d8d0f5385cb : SUCCESS in 17m 25s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/211510d419d944598ac1973c2854a960 : SUCCESS in 29m 45s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/45ba08e49def4b429b1b45ff8bae8ae5 : SUCCESS in 29m 55s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/885a1f7300f94bd7b40f1de14537291a : SUCCESS in 7m 53s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/aafafecb8ef0480fb3959163266160da : SUCCESS in 13m 00s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/ce67b94726fe4b31b0f74952d5028999 : SUCCESS in 15m 56s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/a40ff6b0929541369ae5df15f089208f : SUCCESS in 4m 14s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/c98d35bf84714f0aac845f42c746302c : SUCCESS in 19m 01s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/e55ef07b5069402a85ae6f7d8130ea93 : SUCCESS in 9m 07s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/e761f1c5caf44f9d878b461e70c8c78d : SUCCESS in 37m 13s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/eb44b203403e4234a099b82578e2fefa : SUCCESS in 52m 23s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/a03c14ba96184f918224ad66980373ba : SUCCESS in 51m 38s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/3d99d0fc850a4b0ba73accc9af864cc8 : SUCCESS in 22m 40s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0654983b5d764bb1ae76c923beeb896d : SUCCESS in 5m 08s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/c045033729ef477f80366776f53a8a9e : SUCCESS in 20m 05s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/3d36eb5bbe3447a4a8fe70a5efb79c3f : SUCCESS in 49m 19s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/6f96a509d7084189b323fdb557022bde : SUCCESS in 57m 45s","accounts_in_message":[],"_revision_number":38},{"id":"4b788c29c01cd4ffd865a651f70c24a788f4e646","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-07 01:16:58.000000000","message":"Patch Set 38:\n\n(2 comments)","accounts_in_message":[],"_revision_number":38},{"id":"71b565bb567e89caa8755e9dd33b5032ff68dd74","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-07 12:12:42.000000000","message":"Uploaded patch set 39.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":39},{"id":"efc12f94fab26cecc7d58b4c39dbf44093af418c","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-07 12:18:14.000000000","message":"Patch Set 39:\n\n(13 comments)","accounts_in_message":[],"_revision_number":39},{"id":"e1624bc086ff6b11ac39c89fe5aab7869a785e6f","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-07 12:20:05.000000000","message":"Patch Set 39:\n\n(2 comments)","accounts_in_message":[],"_revision_number":39},{"id":"030b1e1882f4ed909781fd2e136625940f8e8473","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-07 12:30:16.000000000","message":"Uploaded patch set 40.","accounts_in_message":[],"_revision_number":40},{"id":"6b443b4b8a4b87906446606df9bda40de305f1db","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-07 13:37:46.000000000","message":"Patch Set 40: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7c030d8098b143b098ecc35a6ab93612\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/34fee1433bdc4e57a957ef45d748ba01 : SUCCESS in 5m 38s\n- grenade https://zuul.opendev.org/t/openstack/build/593be3057c754ee5b15094278279d464 : SUCCESS in 1h 00m 55s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/b2e46defe2ad47ccb867fe3629edd235 : SUCCESS in 56m 02s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/4c0ba3a94a434b228b487140230246cf : SUCCESS in 38m 04s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e112fbe31e6d4f5ca4f5f90b071da129 : SUCCESS in 44m 59s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e1dd3818fd7b4cf1b2e799893470dc14 : SUCCESS in 10m 23s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f7bcb2ef91144014b7679c2ab4c37d6b : SUCCESS in 19m 31s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/40759737409b40478e0a1568423b0a92 : SUCCESS in 21m 50s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/8c7e444a074047bc935a132e1ef0ba55 : SUCCESS in 5m 01s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/41e389ae9bb44ce8a0b04071db7f990d : SUCCESS in 23m 40s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/b1f1bcfc77a646e1a2dec522a2bfd43c : SUCCESS in 8m 55s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/4380e45b25a04793b2ce18692d76ba4c : SUCCESS in 31m 18s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/b08693f042b0425394bf1251b71b6f70 : SUCCESS in 12m 26s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/2a8d2f5ab0bf41d2aea21562913b2f8b : SUCCESS in 8m 07s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d128656fcc40442aaf347280a25f4c51 : SUCCESS in 14m 53s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/f2f10f56d372479e860f12647df9ecca : SUCCESS in 15m 50s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/5d8e895cd42f45e48df4962e3f82bd3c : SUCCESS in 7m 29s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/583b09b45eb4431298370392579f0ccf : SUCCESS in 15m 19s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/7cadc067ca60401689713aa3989ed3da : SUCCESS in 10m 51s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/0a71f51600114475a250a508978eeec0 : SUCCESS in 1h 01m 36s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/f912674e7881420f9d5cde1a85a745f3 : SUCCESS in 50m 06s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ebca88667d984753b30d6127934c1481 : SUCCESS in 37m 05s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/850d67918da5463184aa03dd30686b99 : SUCCESS in 29m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1c9fc32b49534044b8017a77a0e81225 : SUCCESS in 4m 39s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/0e2b8d850811423fab783d30a3db03a8 : SUCCESS in 15m 25s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/e8a5232b9bca4f5e99cbd199f537f98e : SUCCESS in 52m 02s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/23872e0bf35b454d9cccaf8a016dcc66 : SUCCESS in 56m 04s","accounts_in_message":[],"_revision_number":40},{"id":"061b00e84e3e733aa5ec913f60dfc0211fea5051","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-07 13:46:20.000000000","message":"Patch Set 40:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c2a72c5cffd9470caa3ebaaa5fe383b2\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/d932e7ec79c24959a08ca8b183f94852 : SUCCESS in 39m 51s","accounts_in_message":[],"_revision_number":40},{"id":"9207c931d0b514457de3bc7b39a38fd756e9f87d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-07 18:16:52.000000000","message":"Uploaded patch set 41.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":41},{"id":"0d661ab2201538e3970dd2aeae8f13da68c2a98c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-07 18:21:49.000000000","message":"Uploaded patch set 42.","accounts_in_message":[],"_revision_number":42},{"id":"47bda4dfc6864e4e2460216ec9770b8941e64b0d","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-07 18:27:46.000000000","message":"Patch Set 42:\n\n(1 comment)","accounts_in_message":[],"_revision_number":42},{"id":"5da24b58dc2a47fa59928d81ff0a8599c4247876","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-01-07 20:00:58.000000000","message":"Patch Set 42: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":42},{"id":"8342644d2a1fcac5eb2bdf3578687ecdfcfe71d7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-07 20:02:18.000000000","message":"Patch Set 42: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4a9ab00a487341f5811718aab09fb4ad\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/458f7912ac1b4438bc713d36f7a21a06 : SUCCESS in 9m 36s\n- grenade https://zuul.opendev.org/t/openstack/build/76451128fb5a4d6593d4180239169e0b : SUCCESS in 1h 02m 24s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/971dd92533ad4f4a9fdc5b245368374b : SUCCESS in 50m 54s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/df0879b5975a40fc89a27df1e2c92825 : SUCCESS in 51m 10s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4e32338affd647838ac7ea05223ab0ae : SUCCESS in 1h 01m 30s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/83fa17a0810440c7806700d0378e1574 : SUCCESS in 19m 57s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/86fed5d5db584879a0f2cae9971f1234 : SUCCESS in 19m 49s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c4124977b57b4197815207714b9cfb61 : SUCCESS in 21m 20s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c5f5993c75264ee091d6155fcfc3f322 : SUCCESS in 11m 15s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/dbc7be7c6cc846cb8e963a22b273a2df : SUCCESS in 30m 54s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/e84c5be8485144deae021e03f6777a31 : SUCCESS in 19m 23s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/36796a3d5911445bbeb427b1bbf73117 : SUCCESS in 35m 49s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/846cc7ea4eea436b844377c72816151d : SUCCESS in 22m 09s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/d16e295d7c0a4f658ecbab8f3c4ba0bd : SUCCESS in 13m 09s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/49ccbea59a954a9f9ef725b6ca8008d9 : SUCCESS in 12m 45s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/bc34b1dd9ef24ba59f89fda6c821c8cb : SUCCESS in 16m 39s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/fc9c482eed1a4605b2b5f429934e0c81 : SUCCESS in 6m 21s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/823d00d422e44aeca49723a9116845e1 : SUCCESS in 17m 47s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/e93aba032d094e9cb140af7f6c675b53 : SUCCESS in 8m 15s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/31a1d80b74354aff9b16a07e882dd66f : SUCCESS in 55m 59s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/3be33f8f91bb445ca6f6d1b2dca27b68 : SUCCESS in 35m 41s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/259944c83cc6487d9ce1101f846d5111 : SUCCESS in 35m 11s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a09df4aa3135499cbb594dea0f56a536 : SUCCESS in 27m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/19d0791990a84e6fa972a5e72e78442f : SUCCESS in 4m 10s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/25f97995176647c8b2ccf90463111e62 : SUCCESS in 18m 57s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/5202a758998a42fc9caa54fc01e8532a : SUCCESS in 53m 26s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d712c719759448c29cef1d8d252ce0bb : SUCCESS in 48m 29s","accounts_in_message":[],"_revision_number":42},{"id":"175da309cd5ff98d66e0015a3ed60f6b99b08f1b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-07 20:15:48.000000000","message":"Patch Set 42:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ede7941b9bdc4ae3bd0aa368165acb9c\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/08a9f4bd81ae4acf9a606b071b0c77db : SUCCESS in 36m 27s","accounts_in_message":[],"_revision_number":42},{"id":"c504e022087d4d0fc8cc929e7f46cd7058b214a0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-13 14:18:58.000000000","message":"Uploaded patch set 43.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":43},{"id":"805b2b426870e6bc97dcf66d7871ac5660515779","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-13 15:10:46.000000000","message":"Patch Set 43:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8fe6c696f11f41b0a050fc7d9372ae55\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/7ed31f1af6cb40708629a5ee398d8b7b : SUCCESS in 40m 32s","accounts_in_message":[],"_revision_number":43},{"id":"d618f0642e19ac54325179f84dd4844812b2ea99","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-13 15:21:25.000000000","message":"Patch Set 43: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0b8421d8f5c246b7a686601571b079a9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9140a44463eb44cdae97a02a5509bbef : SUCCESS in 11m 06s\n- grenade https://zuul.opendev.org/t/openstack/build/8b9156a0327048cb9f3d1d4fc92b2859 : SUCCESS in 53m 23s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0037d7d23c2c47a2a579562f907ada99 : SUCCESS in 35m 25s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/153c0baa17a2479dbb503515ff4df85c : SUCCESS in 35m 15s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/93d84bdf9f7e4281841fac5319553fcd : SUCCESS in 56m 22s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/405437db3ae945a8a76f96cfa91b1a15 : SUCCESS in 19m 24s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/761869175b014be894f121da1406c9a1 : SUCCESS in 18m 13s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a0fcf03fcd764338b84ef3c53d837991 : SUCCESS in 18m 42s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/4361448491f04f539de767a673ac1f5d : SUCCESS in 6m 13s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/e06a8ec390ed420e87fbbd52cb423bfd : SUCCESS in 22m 40s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/9623450e336d4f108fc9a11048571d06 : SUCCESS in 9m 01s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/f1b1caf0b4d24d64847102b9244a5527 : SUCCESS in 33m 00s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/51701b2e28bc428a9c9c78509328ea94 : SUCCESS in 33m 27s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/d7a83e33f4874ae7a6cece4e36f9ae9f : SUCCESS in 8m 26s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/c145c7a8180e44b1a61d2fa97b441278 : SUCCESS in 8m 47s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/8b4db90e31cc46fbb63c104c6c8e4e4b : SUCCESS in 10m 05s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/6958f28fa1f0453cbf8c57314397e3cf : SUCCESS in 6m 49s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e5b5d51642104516be1d50ae4b4a2492 : SUCCESS in 14m 28s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a1261c426a874099b8ca39064d57b747 : SUCCESS in 7m 50s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/b969a35ba49e4882a7548684d0dcd1ea : SUCCESS in 51m 45s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d2f1561b01c1410b9b0532e556fd253d : SUCCESS in 23m 00s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4c8dee9ac08945a78eeccd12c3d89050 : SUCCESS in 27m 34s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/0c9cc052560e478f84ac83a2e0233f07 : SUCCESS in 26m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/886f4f08258e49628bbe4bb2016584dc : SUCCESS in 5m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/63ec5028bd41439b87ce82ae0550e765 : SUCCESS in 24m 21s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/fc502baea3e746b8a5280377db301d8a : SUCCESS in 44m 39s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5c9f0c2110fb4fe5913f6be18d333e48 : SUCCESS in 43m 24s","accounts_in_message":[],"_revision_number":43},{"id":"12fd3960be2c23e7822ed7de8f22adb138230c3c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-14 14:51:16.000000000","message":"Uploaded patch set 44.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":44},{"id":"88f65c71c99946167aec82b6c110c936cdd0a4e2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-14 16:06:37.000000000","message":"Patch Set 44: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f6ef25220eff4ee3b2a7f68d0d791c54\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/adb034011dab4c4a953cb7c3fae56965 : SUCCESS in 11m 09s\n- grenade https://zuul.opendev.org/t/openstack/build/a44b1c523603417bb3286ca700be557e : SUCCESS in 1h 04m 04s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/fa13117872a0487bbe3d1f61c21c5974 : SUCCESS in 55m 39s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d99dd13fa4f54ce389f78e2768db25f2 : SUCCESS in 1h 00m 39s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f883d4ff22ac436d84c3ff83deddcc00 : SUCCESS in 37m 29s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d78848dfe32b411a92d2126617992b2a : SUCCESS in 22m 08s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/bf18f18c86484ac08aef02f94f4fcd13 : SUCCESS in 19m 05s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0d32163cb5cb4f1da679029f87b2ca2d : SUCCESS in 11m 16s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/3ed1e0d6a6b640859da2b2e59077fbcb : SUCCESS in 6m 38s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/5dcfb135fd1149cba5c530ddc6f68ff0 : SUCCESS in 26m 12s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/455eb140847e4be384ae3fbc87ecdc8c : SUCCESS in 19m 00s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/9912674ee53f41bab699c8ae8bcbe206 : SUCCESS in 25m 20s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/006c30a1534d4432806ac73923754419 : SUCCESS in 34m 08s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/091f2be0ffc4471e8440c3f1d6b1d798 : SUCCESS in 12m 35s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d9f2c6a71f57458f8b05b61372390e1e : SUCCESS in 14m 41s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/1c9673e94b814fa7b4a3bd31cee0e997 : SUCCESS in 14m 19s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/441867034f60483faac61529fbf047d9 : SUCCESS in 6m 37s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/8ed0493a2b4f43cf9843ed4251b11899 : SUCCESS in 15m 42s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/4d60772af84b4303a975ed65a490007f : SUCCESS in 11m 14s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/4dbb35573ea74a88afa0e85e7891cb20 : SUCCESS in 53m 12s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/94fe7f2e9f944bf2af4350b81cadefd0 : SUCCESS in 34m 58s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/27fce76d757d461085ddb4a61ea8e66b : SUCCESS in 37m 37s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/defff90c276b4c99acf806029812c529 : SUCCESS in 26m 39s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9d5388b0b6184f37a266aa8ba69927de : SUCCESS in 2m 58s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/cea064cf001a4a799a8f154214a1ba3d : SUCCESS in 13m 16s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/433e538689404255a9cf2d1da7049b09 : SUCCESS in 49m 55s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3da9724573b4451884fa837dbeda1bb7 : SUCCESS in 1h 01m 23s","accounts_in_message":[],"_revision_number":44},{"id":"e470939fa22a8ecc99ee2edf22c9c803aeda43e6","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-14 16:23:02.000000000","message":"Patch Set 44:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f99d3de664f54ae197318f5ae0866430\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/27031feb1669422cb3476b3c9ad2afd6 : SUCCESS in 34m 09s","accounts_in_message":[],"_revision_number":44},{"id":"e2eaa08befecf2c54aded75a72c1835676ead650","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-16 17:43:41.000000000","message":"Uploaded patch set 45.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":45},{"id":"8d7d8ddb115677ba4ced44daac1d8824e4e980ed","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-16 18:51:17.000000000","message":"Patch Set 45: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/44bd57f57f6a41a48c25a18aa635a825\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f94b085a371e40e3a3875412e2f7ef72 : SUCCESS in 5m 29s\n- grenade https://zuul.opendev.org/t/openstack/build/8153108cf0494d6b84a72571aee63f22 : SUCCESS in 35m 33s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ba4d29b804234c50959451c7cab67074 : SUCCESS in 35m 57s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/6bf98963f8ae4e9da3b9b984c068df53 : SUCCESS in 47m 15s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5c79250861ac470ba5d10c905cb91889 : SUCCESS in 1h 01m 10s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2de28313c8ea4328a7fd23ccd7dd9341 : SUCCESS in 11m 07s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0c14a554a5e7438a8e98c2015780586b : SUCCESS in 19m 44s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/af349265df4c4917a0b517c04ad20064 : SUCCESS in 21m 10s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c93f81f6091843b898a463d0319a02c6 : SUCCESS in 6m 03s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/d1352f5fe34741e5a64321c1bfff624f : SUCCESS in 24m 32s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/b8990da43b0c4f9982e5b6a1d38cd6f0 : SUCCESS in 20m 03s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/b33a80daa85a473eac1c49542aa80053 : SUCCESS in 31m 01s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/faf328257e5345ba9601ee03e254dad7 : SUCCESS in 34m 10s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/59f1c7aea287436580895623efbf78ef : SUCCESS in 14m 56s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d7d4c20104284c2db7612083da1351a8 : SUCCESS in 16m 58s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/477be55911564c798a6b7ac35f56a6f3 : SUCCESS in 15m 46s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/16cb84d66b5247b2aebd01504923e0a7 : SUCCESS in 9m 25s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/9e87f9cb2cfe417d830eea909749d1e0 : SUCCESS in 15m 22s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a2cd30516ccd41a2b3d5ceef09e347f0 : SUCCESS in 6m 05s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/580384d4a8284de3b9f5db4efc0b44b5 : SUCCESS in 59m 20s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/2d7e3f41eb9d4feb993c5076dee48005 : SUCCESS in 53m 49s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b5a4f92940a748489f2c4043a76bf781 : SUCCESS in 48m 28s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4d2747154dfd41cfb44255cb542bfd97 : SUCCESS in 29m 38s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/231935e605cd473e981da275bfc05ebb : SUCCESS in 3m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/22e653e743134591b96d8cdbac2d35f7 : SUCCESS in 19m 13s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/a74bfb92bf7046d4bc4e62cc79af8b36 : SUCCESS in 31m 47s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3df58418854b4804b4c1c0ff35582e01 : SUCCESS in 58m 42s","accounts_in_message":[],"_revision_number":45},{"id":"f23cc3494fe280c67466456a08c9d5f1584e188e","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-16 19:22:22.000000000","message":"Patch Set 45:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/271b76c0725b45a69f0c444866d848e8\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/d2a709564cac4d35a539eda4c009ef1e : SUCCESS in 1h 11m 08s","accounts_in_message":[],"_revision_number":45},{"id":"bfa1490eb0f73a1c3058a2e4454c202b5cb3625d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-19 18:25:13.000000000","message":"Uploaded patch set 46.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":46},{"id":"45abf5f2811e960f701c1c916da8fa0104d4e312","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-19 19:37:48.000000000","message":"Patch Set 46: 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/3236c265d50f405fb2757c70dce4749f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f912dd9152e94eef8e7b6c0243e4640d : SUCCESS in 9m 09s\n- grenade https://zuul.opendev.org/t/openstack/build/3d169c521bbb454ab5e6c65c4f1277b1 : SUCCESS in 59m 12s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3bea8cc7fe594d58977207185ee48f9b : SUCCESS in 55m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d15849308be04270acce51d1b72c7b97 : SUCCESS in 35m 14s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f0021e81951b4f61a0e883fbc89b6414 : SUCCESS in 58m 25s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b5f3966de9c64fc28790f9b48a95939c : SUCCESS in 19m 24s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b0a0a7aec2de4ea1b4c75bf2f6a2fece : SUCCESS in 11m 01s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/daabf2bf854b493e9d77ea71430d0b1e : SUCCESS in 19m 48s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/f4edbbede16a4507b883ca083d875b73 : SUCCESS in 6m 04s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c827cfca8d054c468faf04183db6280f : FAILURE in 13m 55s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/4fcd51973059477da21f1f826a71379b : FAILURE in 11m 11s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/fb25a1a2c60b46e8906c219f2b58b532 : FAILURE in 41m 28s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/8ad9998a6b064456a2a5e82ccba6384e : FAILURE in 33m 09s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/dbf23d50563a4fbfbbdd7fecbae9534a : SUCCESS in 8m 55s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/00a0b429a4bc44fc98c336b0d6a09621 : SUCCESS in 8m 16s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/b573e60b14674722be27591d820b96a4 : SUCCESS in 14m 45s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e1bca99f2d45495fb31780d404e688be : SUCCESS in 6m 33s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/919bcf0d84bf435a949fc1387c1edcc8 : SUCCESS in 12m 55s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/50dbb8e62b074eadb035a053a0df0a88 : SUCCESS in 5m 19s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/6965a7aa56334c4e8f5769508e4e4d26 : SUCCESS in 51m 46s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/fe63b15ab87b4925af712a3661057cdd : SUCCESS in 26m 46s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e448872abe6241a0bc4043de00534aba : SUCCESS in 51m 10s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/dac9ff98963742fda28dd15323a2b6b3 : FAILURE in 31m 47s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f3433bc3c6504f4e9dd7b65a9a10a6bd : FAILURE in 3m 08s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/3880536716b746fa8098e5d19a19d223 : SUCCESS in 10m 07s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/5f7fbfabae6d4303a330816664f62416 : SUCCESS in 51m 03s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/8e686c5a1a5c46449eb8dab5ea40cebb : SUCCESS in 41m 28s","accounts_in_message":[],"_revision_number":46},{"id":"1859a2ef14aa25cd808201cf62450d8e6440c89f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-19 20:43:57.000000000","message":"Patch Set 46:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8f58da4d6fe543cc8342b004d4835d8e\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/53ce2003ab8045fb9c295613be7d1ef1 : FAILURE in 1h 01m 40s","accounts_in_message":[],"_revision_number":46},{"id":"96ac106a84b061c2afa1e299e9821218e853b4b1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-20 17:05:12.000000000","message":"Uploaded patch set 47.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":47},{"id":"60454d2af76bc782c2f47bc84928e4d734449e27","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-20 17:06:14.000000000","message":"Patch Set 47:\n\n(2 comments)","accounts_in_message":[],"_revision_number":47},{"id":"926e0d9569bfe9a2c27e707847401ca460619570","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-20 18:28:01.000000000","message":"Patch Set 47: 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/816b4fee64fd4286b88e632a3610e889\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/56e67b42d2934d9aab624fa7ecebe480 : SUCCESS in 9m 47s\n- grenade https://zuul.opendev.org/t/openstack/build/b80ad2b82917492f93e5f70d3a9b6b98 : SUCCESS in 1h 05m 28s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/be0cb9b4f5ea44c1afdb7d1f360d04c3 : SUCCESS in 48m 56s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/6f716d5b98164bf5bb1be085807e6b81 : SUCCESS in 35m 01s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f4eeb31cb11d4556938d8932e8e30fa6 : SUCCESS in 1h 01m 40s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b1de43d52c6449e79d8d05c6283f6f65 : SUCCESS in 12m 32s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1e2957ee781b44bea986d6cadbf55c58 : SUCCESS in 20m 26s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2cbda924079842d08158a219e226d944 : SUCCESS in 20m 15s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/fb37da9676574c829e89d70973dd1919 : SUCCESS in 6m 20s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/41d81935b64c43ecad491c2ec45e1a96 : SUCCESS in 23m 18s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/20dc2fd1cf2a485e9deac7e75cd26104 : SUCCESS in 22m 41s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/e9d2a53728ba4633aea34242c2cf1762 : SUCCESS in 26m 06s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/f8c6ec60f5b34863acad8046e5790139 : SUCCESS in 28m 25s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e99402121dfd48c3b0d0468c66f89789 : SUCCESS in 14m 41s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/c36f79b33ab544718d5a19527e969f6a : SUCCESS in 12m 55s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/a4ec9450a82b437f927e3a9a3eba2ce5 : SUCCESS in 16m 41s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b84728d5134044908b23ff96aaa9d048 : SUCCESS in 3m 58s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/71e5039e873a4dc6adf0d1da1500415e : SUCCESS in 17m 33s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/4651875a76674333a1963fdc0c387485 : SUCCESS in 8m 22s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/7d08685fadac4132a1c81fb5d92fc6bc : SUCCESS in 55m 09s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/e9d805ee891746fc8a95800d673b109e : SUCCESS in 26m 42s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e4f5599554b04734948d71d99a7e7acb : SUCCESS in 36m 41s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/86c3ac28a8d5456babdfd15943522d11 : SUCCESS in 28m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3cfecd9ab00f4f5290de7bb0384dd8fe : FAILURE in 4m 30s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/175b3c87a14347b49a3e5342d9bf6c20 : SUCCESS in 19m 45s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/eebbc704f754499aadd34d6e518c3f1d : SUCCESS in 1h 01m 05s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5df6cfadea80404d899c1650d91a9a53 : SUCCESS in 1h 04m 59s\n\nWarning:\n  Comments left for invalid file test/unit/container/test_sharder.py","accounts_in_message":[],"_revision_number":47},{"id":"51929012e6e0e4cc0d980ef9312ed93ee6e63a70","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-20 19:27:54.000000000","message":"Patch Set 47:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b7f2a2b452404115ae1c018e5ca7a154\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/e7740ea9ff4341bda4159a8c9e034b93 : SUCCESS in 1h 04m 52s","accounts_in_message":[],"_revision_number":47},{"id":"95d6419d0c0f88b791eb5bf38dd77d96fb9c32c0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-01-21 10:11:20.000000000","message":"Uploaded patch set 48: Patch Set 47 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":48},{"id":"1487803d7218cd44643b42a1c53b7536e6e81f2b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-21 11:24:37.000000000","message":"Patch Set 48: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f9c9392783f8479d9aa4a1694f53aa28\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/eb969bb821894ce5859ec3c2c43940bb : SUCCESS in 8m 54s\n- grenade https://zuul.opendev.org/t/openstack/build/63e81e45f89a49d5b6607174906fc4d9 : SUCCESS in 57m 43s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5c3ef3589d1d4c0299d60470237c0226 : SUCCESS in 58m 52s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f226655e83524aa8a07c9aeb934bf6fa : SUCCESS in 54m 53s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e9b07ac0ee9f48a98feb48b44b8170b9 : SUCCESS in 1h 06m 42s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fa4ee1a508214ee7b73f245db67def35 : SUCCESS in 19m 21s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/43ee5730fc064cd9a7fb10fbb27b0c5c : SUCCESS in 11m 09s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2941654efbec49eea935341823a5a42d : SUCCESS in 12m 29s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/8e87a765536247d1bf85418a6ef6dffa : SUCCESS in 4m 59s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b4fe0830778a4f1092d3c8454e4d7d85 : SUCCESS in 14m 12s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/7a6cde2f7a8f493eb4081955aa921269 : SUCCESS in 10m 05s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/2a730a2be94b40a69a3412404ac6cb2b : SUCCESS in 32m 26s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/96d98915bf02403e90af523484dc7740 : SUCCESS in 21m 44s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/7cca6c43718f4baeaf1f1e2f4804d5ca : SUCCESS in 8m 24s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/341bcc7398764291a4abc2b345d31b5a : SUCCESS in 15m 05s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/61835c8f9e974182a7fe3aea0a7f1124 : SUCCESS in 13m 04s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e1df8de19f9f49f6add123bd33e66e16 : SUCCESS in 5m 51s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/171b284c154c4c4ea4e7fdd90bb0bb2a : SUCCESS in 10m 37s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/5b22dd74c0d14912a71e692aa3514586 : SUCCESS in 9m 00s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/5c976aa395bf45148c5ef63148423709 : SUCCESS in 37m 18s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5e50385fc8c74fe2aceeae3009af5054 : SUCCESS in 36m 32s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/87618fad8eb9408b8bee40926771618d : SUCCESS in 36m 35s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/5e148d321f89463dba7df59e1d6e01a5 : SUCCESS in 14m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2a1e58dbbe0d48218340a1f1a0220fc4 : SUCCESS in 4m 08s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/d85cd9093dac4966b76ee0a34b260c64 : SUCCESS in 17m 20s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/b69bb3879044456097c10226e83aae85 : SUCCESS in 45m 34s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/b3a9f3b87d0943619cc8909f61971145 : SUCCESS in 57m 50s","accounts_in_message":[],"_revision_number":48},{"id":"cf6a44eb65494147a06deb5adfdca5877eacc589","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-21 11:54:05.000000000","message":"Patch Set 48:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5218e090403040e49b1c0c51ef7e397b\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3de36b0c39d64ee2a32649b52c154ad5 : SUCCESS in 1h 02m 32s","accounts_in_message":[],"_revision_number":48},{"id":"ba836d53ad33a0f09914dbe53263078052394f29","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-01-29 03:56:58.000000000","message":"Uploaded patch set 49: Patch Set 48 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":49},{"id":"23453f6f4db66a8c4c7343d486b3e414c537c0b8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-29 05:04:24.000000000","message":"Patch Set 49: 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/7fefe8afcdfb4fa1bd4263a41dea9ee6\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6536d85f72614a07918cd56479ec8ba8 : SUCCESS in 7m 22s\n- grenade https://zuul.opendev.org/t/openstack/build/1eea2ae0536a45ff8cb060b9211edb24 : SUCCESS in 1h 00m 28s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c7da312e6f714736bf3a02e8be805f80 : SUCCESS in 37m 29s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/177b4207c2044c648ec42bee51ed87fe : SUCCESS in 35m 13s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/25ce2cd671f946a7a4fad14812fd3dba : SUCCESS in 39m 15s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/935486dcd47d4f0989fccbc6fc90fc2a : SUCCESS in 19m 50s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cae8358d7e1e47cbab83edb88391eaa1 : SUCCESS in 18m 37s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/67437013e5944d1abc97d5e5f4886ca9 : SUCCESS in 20m 00s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/bbffadbbf19041a8b2c822072cd79e16 : SUCCESS in 10m 02s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/76247098126d44a195090becff00b48d : SUCCESS in 15m 48s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/45f4db4a1ad34d02aff713ce2d6c80e4 : SUCCESS in 17m 42s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/44b301c686974d75b3c1758a2bd3eb59 : SUCCESS in 24m 16s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/367c127d7510497ca3ebd5b8146d1440 : SUCCESS in 27m 04s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/fcf86ca288684310942ba1a88a522902 : SUCCESS in 15m 02s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/1434ed136f174db2912c23ac1d4ee063 : SUCCESS in 10m 00s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/bcb65f9661fa40abba7c241420852306 : SUCCESS in 16m 03s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/7f14f600ce5f4458ac318c66887ef6a1 : SUCCESS in 3m 43s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/3bf86fa90585463eab772ae1e6524acd : SUCCESS in 16m 07s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/29a79f2e2d834cadaa81cba7930b84c8 : SUCCESS in 5m 01s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/45306802e80a4e3f8f184f88344758a7 : SUCCESS in 54m 17s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/54658bcdff8f47c4b5d6ed49b3172f9f : SUCCESS in 47m 44s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/60c8ea8289d2467899bc10ab2661e00c : SUCCESS in 28m 52s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/6775a74963474d9ca94963cc1039be03 : SUCCESS in 30m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2986a309d5084f85ab703b91dbb47540 : SUCCESS in 3m 43s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/f6fda6f8379d481d86d092cabed68534 : FAILURE in 20m 48s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/012a0ecc78874329aab14af06e040f33 : SUCCESS in 37m 24s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4f59acf7c11c432e89f1bd9ba29af42e : SUCCESS in 48m 26s","accounts_in_message":[],"_revision_number":49},{"id":"9c3b135af894791af515ef9a3e2d0250a112fd40","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-29 16:33:04.000000000","message":"Patch Set 49:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/37de2c9273f245ac820f65c2c9c64fef\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/4df4c1052fb6437bb6d4bffd5120d6d9 : SUCCESS in 1h 03m 00s","accounts_in_message":[],"_revision_number":49},{"id":"6ad3c8a7b5423f98c08820a4f3156577e92e36b0","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-02-03 05:50:38.000000000","message":"Patch Set 49:\n\n(1 comment)","accounts_in_message":[],"_revision_number":49},{"id":"30771312418d73ed1b430d0447fa434e20073bd5","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-03 15:47:54.000000000","message":"Patch Set 49:\n\n(4 comments)","accounts_in_message":[],"_revision_number":49},{"id":"05728c198cbcabd1828d53cdca03bc4926f46ab1","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-05 14:56:12.000000000","message":"Patch Set 49:\n\n(1 comment)","accounts_in_message":[],"_revision_number":49},{"id":"df6b2084c3bcd0acfb7ed6311f43a348dad5dd93","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-02-05 20:23:12.000000000","message":"Patch Set 49:\n\n(1 comment)","accounts_in_message":[],"_revision_number":49},{"id":"198cce1eb4073c4536de6955087110531e79ca2d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-10 18:55:59.000000000","message":"Uploaded patch set 50.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":50},{"id":"8ef8c2b4ffa229e11654cb7464f42f2c6ba9103f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-10 19:39:15.000000000","message":"Patch Set 50:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/109991c62adf4a62a2d94c10c92d66bd\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/6e8bc32f227c4930973091388a8f66d0 : SUCCESS in 41m 05s","accounts_in_message":[],"_revision_number":50},{"id":"8dcf71f646af6d0067e23c9235779f8bda60e8f2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-10 19:49:52.000000000","message":"Patch Set 50: 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/5384f0c8faf442f991d8ccc52e90fef3\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/65a8b807865b42bba70ef019b6ec26f9 : SUCCESS in 10m 02s\n- grenade https://zuul.opendev.org/t/openstack/build/55bf2fa702c7420881b0937f9427b240 : FAILURE in 6m 24s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/7391e05fc5834f03b5a1e21e836bd7f1 : FAILURE in 11m 58s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/378135ecd0534a0cbe628bdf5b63f2c4 : SUCCESS in 34m 55s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/66db30084f754caa86989c8d216611b3 : FAILURE in 31m 58s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/86210c3b94b34506964a3ef730f30855 : SUCCESS in 12m 07s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/bd1cedfe164640d284e390e865dc7170 : SUCCESS in 19m 13s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/dc50fb832ce54e7b8e4c7d846b82c94b : SUCCESS in 20m 47s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/50c33fdeca374ddfbe6a43a8a5dfc924 : SUCCESS in 6m 08s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/68ee2b26941f4d0db1ce3b6bca3ce975 : SUCCESS in 28m 56s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/cf6b20a335b64a4b84449dc61db4090f : SUCCESS in 8m 41s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/9dbda2d069074384900277ac03fef5de : SUCCESS in 30m 22s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/14de3aedc7074017a4e98c9f839f7bf7 : SUCCESS in 35m 39s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/170cdbaea55a4af1985b33ebdbcaf4de : SUCCESS in 13m 22s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/8b09ce20c8dd43acb4090eea18226cc4 : SUCCESS in 13m 47s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/43c29e57bbf94b86b264b58a7d14c290 : SUCCESS in 15m 14s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/f6f5831958ff401ba274d7bf926f881d : SUCCESS in 5m 25s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e57a8f058cd140528cd2b085dd72eedc : SUCCESS in 14m 08s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/15cc722e370f498b98ab661db58ae310 : SUCCESS in 7m 29s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/bd0ac3ce7b244a9ea0c8aeeb29295d3b : SUCCESS in 43m 37s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/1fa7b12cc0774a83a20cc3a95a45c8c6 : SUCCESS in 21m 32s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/f8e5962d8d2b480cb2d3323a7df15a9b : SUCCESS in 21m 33s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/40e5682de1ed4c1b988ebdcf071c70d7 : SUCCESS in 12m 58s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/194ce09da6b04faf9ec92792aeefe10e : SUCCESS in 5m 03s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/999c25865d174ef5b3a721e7d66ac1ab : SUCCESS in 18m 09s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/116ddd18e8624216b13d2f57a7231ff2 : FAILURE in 46m 18s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/789785e2ee3344889ff373a75b3e14e8 : SUCCESS in 33m 19s","accounts_in_message":[],"_revision_number":50},{"id":"391ff9ebaf35e0600f71e875ced3f0d385d51906","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-11 19:07:43.000000000","message":"Uploaded patch set 51: Patch Set 50 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":51},{"id":"ecd4361570c9020a1bf68d54304355011064f5cc","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-02-11 20:14:53.000000000","message":"Patch Set 51: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":51},{"id":"1747cf6a313eaf77fb0b6483d882c3f3136cb4a9","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-11 20:20:44.000000000","message":"Patch Set 51:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/38e93285e5f1475395a18d38bd9786ac\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/bf9a69b5bef04da1b5431b27262e815a : FAILURE in 1h 11m 02s","accounts_in_message":[],"_revision_number":51},{"id":"a8d9f7929cbf44dd0a7807a68a493d3e57140dd4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-11 20:23:14.000000000","message":"Patch Set 51: Verified-1\n\n(3 comments)\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/f3d27e439c7647848bf326813a5a7a2e\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c230054d6af74aa7a0db08e15864fe57 : SUCCESS in 10m 22s\n- grenade https://zuul.opendev.org/t/openstack/build/150f0bb01229400381b1dda45affd144 : SUCCESS in 29m 46s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/d96cc5c833bf4934baf9727ca4254ab1 : SUCCESS in 44m 02s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/fe7c36dcccbd4c1f8e34e53154d18136 : SUCCESS in 1h 02m 45s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/344d2dd43c4f41deb4bd67d0b6f9fce5 : SUCCESS in 1h 09m 12s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cb1e8199842046c3a1c05e924fe19f3d : SUCCESS in 18m 53s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cf6903412b9045c8acd22db99385bfa7 : SUCCESS in 11m 31s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3410b60e720c4292aa0691d16d736ccc : SUCCESS in 19m 08s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7492c9b24bbf409d94e1a4cdc521f272 : SUCCESS in 5m 51s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/74172b1ce8ce4fd8a6b0899688040c0a : FAILURE in 13m 18s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/0c132001d602474fb3f044e2cb6a5799 : FAILURE in 22m 30s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/0cad5fae24e648788626a9c4e5553fdd : FAILURE in 19m 39s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/be12a096b7c841518324a54f55fc4769 : FAILURE in 33m 34s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/17a5a183cceb441687ae2fcbbd89e941 : SUCCESS in 12m 23s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/08dcfef8c61745ef8b24ac3b4333ac98 : SUCCESS in 15m 42s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/ced34dfeec9041a381695921b90caf25 : SUCCESS in 9m 46s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/0fc057363df4442a8ea8c8850b662c00 : SUCCESS in 7m 13s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/66d97726ecd0497eab059cd2b22f3eb5 : SUCCESS in 15m 57s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/197bb5516d8746aa9a7b3a6843f40e2c : SUCCESS in 9m 55s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/4911d944307a4c4abdd57c1f038cea7e : SUCCESS in 58m 35s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/9133155b692d423da4fdf51a5adcc70e : SUCCESS in 54m 43s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/fa0e137ca8af4f218326c5899b1ad860 : SUCCESS in 34m 04s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1700acf0da874faeb676470fdeba6f71 : FAILURE in 31m 55s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e28f8f1aa4f343cbb2fb2f695e6aae27 : FAILURE in 2m 24s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/9f834b48cb7f4f908dd9e8be5fcb0ced : SUCCESS in 10m 39s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/05232278b55d45d08f838e8d1e3bde2a : FAILURE in 36m 45s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/696e56c52fc2406eb5230e1b92cf9880 : SUCCESS in 1h 04m 18s","accounts_in_message":[],"_revision_number":51},{"id":"5ba5692e38ef708b3fe4158ec34dfee9343db19a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-12 19:09:11.000000000","message":"Uploaded patch set 52.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":52},{"id":"5130e4b40bda460ee7b138d1dd93026264d9d16d","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-12 19:09:25.000000000","message":"Patch Set 51:\n\n(4 comments)","accounts_in_message":[],"_revision_number":51},{"id":"c03c81bd78f139cc768d4744f40d6252712cd450","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-12 20:32:46.000000000","message":"Patch Set 52: 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/4b0775ea843f4756ac34d6e8fa3d7854\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8645861c841040d885a0f7cc820871df : SUCCESS in 5m 04s\n- grenade https://zuul.opendev.org/t/openstack/build/aafe9486b0d04fd590aa571352b7f9fd : SUCCESS in 1h 03m 16s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/41b27823685b44e5b405b29fbd9dc3a6 : SUCCESS in 36m 37s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/bc046e34d908402f9c120cd840d1a62f : SUCCESS in 58m 41s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d6635d1461ad46fea6c877bae203d85d : SUCCESS in 37m 39s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8d16f7a9ef0f4b0da6c187fb426f4378 : SUCCESS in 10m 24s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/49a0028f16f94703b0ce8a8b4d8f4d8e : SUCCESS in 22m 53s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ca230dfde95f4ad98f474d1caa874bff : SUCCESS in 21m 15s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/0ee56c2bb757472ba6e41bb4c919c300 : SUCCESS in 5m 14s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8dbaa28f046d41c7a609ca18aa1073b8 : SUCCESS in 25m 49s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/9e0a8fc0e6a447839a6e01e914c22210 : SUCCESS in 24m 32s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/da3dc39d57cc4eabb3a53dc3b7bd6dcf : SUCCESS in 25m 42s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/bc53b9e6c264439ba59d36dcfb128cbf : SUCCESS in 33m 30s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/c1cb552645164533b5270c3228561e44 : SUCCESS in 18m 06s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/1e5a6484af62406daba976dd0166dfb1 : SUCCESS in 15m 43s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/d45487c090ad46738ff05e0917bc7e8b : SUCCESS in 15m 52s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/043f1eae71b74c71aa28a8fc1f1934c0 : SUCCESS in 3m 41s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/11d1963c22ea4176b05e9f5cd2e07386 : SUCCESS in 9m 09s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/7a161247c3bf42da8a73f58104e9eae0 : SUCCESS in 10m 58s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/8fa4b0d5005b4ef4a0865a674ab459f0 : SUCCESS in 59m 50s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/3e21f7981f0d4a40a58539816089dbf8 : SUCCESS in 27m 12s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/6211e63f1112478392884309a6ba0a11 : SUCCESS in 49m 51s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d423f00ffba4402c86eb72d55501707d : SUCCESS in 26m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/810327c81fe647c5b5b3b58cc68c202e : SUCCESS in 4m 24s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/96ded60165894a268cf49633085373f0 : SUCCESS in 19m 06s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/ca184efb80714e9283edd30f3d009b01 : FAILURE in 34m 46s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2471be2852da4523b0b639270c9ccb26 : SUCCESS in 31m 24s","accounts_in_message":[],"_revision_number":52},{"id":"a32b919d4c36b752f8c226c925e0327efff5a253","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-12 22:15:40.000000000","message":"Patch Set 52:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/864ea8073e2b41f1a156bec26463f003\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/206a8f6ccb964963b7192b1df2bfc555 : SUCCESS in 59m 26s","accounts_in_message":[],"_revision_number":52},{"id":"8a453de0b8834757354e19d1f3e388b9545e59ef","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-13 15:48:12.000000000","message":"Uploaded patch set 53.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":53},{"id":"47c053013ee0ead5ce4fbfb0404ec34fa30e9d93","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-13 15:50:19.000000000","message":"Patch Set 53:\n\n(2 comments)","accounts_in_message":[],"_revision_number":53},{"id":"cfff24eb1528ec537df784fcfb2f306a2fd47f52","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-13 16:24:29.000000000","message":"Patch Set 53:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7360459c430c44c7bc0013a8a82d89d6\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/48c96b52769a4fe4a57889c40013c46a : SUCCESS in 34m 03s","accounts_in_message":[],"_revision_number":53},{"id":"c70798adc6fa48fd32a6e7845494b769cf2c97fb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-13 17:03:41.000000000","message":"Patch Set 53: 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/f4a9c5eb812b4950aca2ec9ec3905b3d\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bf7a14678c3e4821a94fff761a1fcf27 : SUCCESS in 7m 49s\n- grenade https://zuul.opendev.org/t/openstack/build/2e8ac506781449adaf83e7565f5697f9 : SUCCESS in 34m 37s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c63d4c2569ea4dfd9760259ddaec6ec9 : SUCCESS in 45m 06s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/9e150a9bd9d64d47b8dbc596f6ed21e4 : SUCCESS in 54m 20s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/24b3f17f3c6742a5af4eb3438e07abef : SUCCESS in 1h 06m 53s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/653829ea82264fd284851e3b5ebd7263 : SUCCESS in 19m 44s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1d0e8a4cb180456cae1c0ba29ae13dba : SUCCESS in 19m 36s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ea176586c7d34faab4cfc7b4d5f8c050 : SUCCESS in 19m 52s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c1da53dcd66b449987da2cedbe79972f : SUCCESS in 7m 18s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/d084edcf09b94459a3769fa51db9f898 : SUCCESS in 26m 19s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/b7c26079c7574b97a8244682a6a076e9 : SUCCESS in 11m 07s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/dc8b988053b5460ea2f902e779c0eaba : SUCCESS in 25m 22s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/ea31468b592649e298795382b4f8f95b : SUCCESS in 33m 18s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/3081bfa809be4c0096e47eb2b5b8afea : SUCCESS in 8m 53s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/cf1270045b3844b7ac5cfd9d3e7801d2 : SUCCESS in 15m 02s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/6b2dc09df06449029a4d3f48316abad7 : SUCCESS in 18m 48s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/a4aef07255374092ab01aad912689915 : SUCCESS in 6m 18s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/c5f2d179d1ab4de2aba96aaf44618b18 : SUCCESS in 14m 58s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/85df13beb6d048aea982a66f8a664637 : SUCCESS in 8m 27s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/6e1d2f4e264b4199a2cbe3bd6044de78 : SUCCESS in 55m 50s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/dfbe3698594a42d8a7e9dc07626959ae : SUCCESS in 53m 13s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/7d209814c5e04f0bb4875e1373a5a918 : SUCCESS in 55m 10s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8806b1289b9943d585690dc7bd98dd75 : SUCCESS in 30m 02s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/eff106d2a43446e299fe0dc4517c1d3c : SUCCESS in 2m 35s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/d7452af490d94f288eb3dd4ea8d643fe : SUCCESS in 21m 24s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/125ff60a7d8b4776a00422900ca6bf0c : FAILURE in 52m 57s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/bf305e918a9548248b0d2908407675ef : SUCCESS in 56m 10s","accounts_in_message":[],"_revision_number":53},{"id":"1fca10a6c99d8e2b631dc286c47acc4ff322113d","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-13 17:15:38.000000000","message":"Patch Set 53:\n\n(2 comments)","accounts_in_message":[],"_revision_number":53},{"id":"171a6913b42490b877051cf840efbf28b055aec3","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-02-13 22:27:10.000000000","message":"Patch Set 53:\n\n(6 comments)","accounts_in_message":[],"_revision_number":53},{"id":"156980cc9608fe0775ac707c51ff4eb754948be0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-16 17:42:54.000000000","message":"Uploaded patch set 54.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":54},{"id":"55472369dc2bdcd573b4ce2f213ef9d0f15823e3","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-16 17:58:13.000000000","message":"Patch Set 54:\n\n(7 comments)","accounts_in_message":[],"_revision_number":54},{"id":"da8522cc8af864c2167f78e5ac6bb10295496218","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-16 18:42:25.000000000","message":"Patch Set 54:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/39c1ead5db4b48b29877a97583d75af2\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/64325ff7228341cba6ebd3177cfdb025 : SUCCESS in 44m 38s","accounts_in_message":[],"_revision_number":54},{"id":"4fb6e60d048a7949e6b66072c5342879f54ffdfa","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-16 18:57:50.000000000","message":"Patch Set 54: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1e899c4480dc44dfaf6a91be70815e74\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1860add88a5c4e9fae9c266de04951d3 : SUCCESS in 10m 06s\n- grenade https://zuul.opendev.org/t/openstack/build/1c54e3a0a08340db9139f8d03dbe2be7 : SUCCESS in 55m 56s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/11db167c45d14472b4d667935279358e : SUCCESS in 1h 08m 52s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/868f62ef7eb44fb9a740daaa472564b7 : SUCCESS in 32m 16s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5d4e903d0ae543d6b67059d92e1df8b8 : SUCCESS in 48m 38s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6c73f7bd336b40a5934289f7e2170d12 : SUCCESS in 21m 30s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c89d76730a1549158addf46b9926568a : SUCCESS in 20m 14s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f76e75f0827f45eba858b70d1d3fdf87 : SUCCESS in 16m 12s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1679276dcc11483f98ea48144cd03e12 : SUCCESS in 6m 46s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/1e1aeecdd07b49a1bd33e48528e36916 : SUCCESS in 27m 27s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/715d76b0a8e44e68b6ce4fa74d57e929 : SUCCESS in 22m 16s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/e2e988dbe10e4f6b95b3753991b6c4cd : SUCCESS in 25m 57s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/5c407db48a9e46a9a1ce8c07fe7a16e7 : SUCCESS in 12m 02s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/d7d6a21b72e545cfad737aa7fff88bad : SUCCESS in 13m 59s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/3e2305b107504c3080431914413c14d2 : SUCCESS in 16m 48s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/604217d2ee734e69a02bf9cc6f84075a : SUCCESS in 12m 24s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e3b692c8a5734123ba701eb15b5a70ee : SUCCESS in 6m 32s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/b960df1e90cd4e60941c3e0f9241da1c : SUCCESS in 12m 31s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/5ea5dfd9d2b645238f15b273c6c63fef : SUCCESS in 7m 42s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/b300500de99240d290e4c9ca99d83a91 : SUCCESS in 55m 59s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5669637d015d4cff92244d4d5a2975c2 : SUCCESS in 34m 51s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/c163de67a1b6454faf43b1ff3ce2c3b6 : SUCCESS in 23m 02s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/41b390f5a6de438981a488c3ba053c0d : SUCCESS in 29m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/64dd815d4b174780952b92661347d3b7 : SUCCESS in 4m 13s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/26cdd1a51b3a49fbbe4a109cf8f824ae : SUCCESS in 17m 12s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/135dd44b9df744fb9425ae319300c682 : SUCCESS in 1h 03m 20s","accounts_in_message":[],"_revision_number":54},{"id":"8207f2c01aeea0343543be7050813999b080e58c","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-17 17:03:10.000000000","message":"Patch Set 54:\n\n(4 comments)","accounts_in_message":[],"_revision_number":54},{"id":"ce033a1184f6690137332decdd3bccb0835359ba","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-18 17:13:51.000000000","message":"Uploaded patch set 55.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":55},{"id":"e3f331fce7da982ef54ee283e8389e2c4dfad87e","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-18 17:45:54.000000000","message":"Patch Set 55:\n\n(9 comments)","accounts_in_message":[],"_revision_number":55},{"id":"b44c60781fd197942e7a6fc4169b90d9d9bab0d2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-18 18:27:28.000000000","message":"Patch Set 55: 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/5bfbfe53bfe5485fad7d35f5ba525aa0\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/35183fdc41854be59fe99839b0bede7e : SUCCESS in 10m 11s\n- grenade https://zuul.opendev.org/t/openstack/build/6a22985a55394de6b48db768ec6173d5 : SUCCESS in 1h 06m 57s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3f26aff7dd7a4130bef237d6b6fcbdd0 : SUCCESS in 1h 04m 10s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d4261fa2f2904536b708a05e6e7a3343 : SUCCESS in 59m 39s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/8d8a6067d1e24abfa390e52412d65f49 : SUCCESS in 36m 59s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/72c6d7f40cb240ec8398750dc409204e : SUCCESS in 11m 44s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a533e8391f264c7bb0a43b8c4e1a3e0d : SUCCESS in 20m 31s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3ed8269f4bb2462b9c8f1f803d8aebe7 : SUCCESS in 10m 57s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7ac0b246b6234240973ba16004f88261 : SUCCESS in 9m 22s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9d462300c7f94607b4446beb32e78d39 : SUCCESS in 11m 29s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/dd4df252c12e4f0c9e25ed9fbd9ae9ad : SUCCESS in 18m 51s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/3e70e97de61b413ba7011086eb37f1f6 : SUCCESS in 13m 52s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/da00f3e2b048442aafa345f8c666a32b : SUCCESS in 21m 56s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/60bb0abaf7ab45cfa2ab094b58e9bfa7 : SUCCESS in 17m 23s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/52cf2783a0a54eea9f2b45bde1634110 : SUCCESS in 15m 09s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/a6d10a02651d4f79a19578ccf0633f44 : SUCCESS in 17m 43s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/1621798d999f4f5894daf8fb5efd4a81 : SUCCESS in 5m 50s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2caedeb46b654489be2c3580d5f981b9 : SUCCESS in 15m 34s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/f2034c2af8c245a9a01f7c62b1165798 : SUCCESS in 8m 35s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/f586ae01abd042b19d17b55a9448e2f3 : FAILURE in 52m 45s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b83a30cf78404bc3b6dc9169521ad88b : SUCCESS in 38m 50s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/13d3b4d785004d4c86da515335f09ecc : SUCCESS in 23m 21s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/ee7ca8d691e34cff9f1f9eb304d85ff6 : SUCCESS in 11m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/28766e009e6d474b937ab0cd0a549f9a : SUCCESS in 4m 35s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/fe565b9bfb4341ad882d525640ec955c : SUCCESS in 20m 29s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/faf411b7889342f6b38048836e058dc0 : SUCCESS in 59m 24s","accounts_in_message":[],"_revision_number":55},{"id":"2367a1c4d952deed472aeb90e80886a345aba8ca","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-18 23:40:52.000000000","message":"Patch Set 55:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0635dec44da3450292b8c6daa571c38e\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/58922042743c493b92e1e7e9ebf30404 : SUCCESS in 53m 46s","accounts_in_message":[],"_revision_number":55},{"id":"ff6903e4e1e780153e0241e95bd1734ee1074be5","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-02-19 05:25:05.000000000","message":"Patch Set 55:\n\n(4 comments)","accounts_in_message":[],"_revision_number":55},{"id":"c775b648a0dc874c78ac560a02ab4bb2c423dc69","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-19 13:13:14.000000000","message":"Uploaded patch set 56.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":56},{"id":"34a79c784cec716b5e3a127e9dda4e74de3dd0c3","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-19 13:54:27.000000000","message":"Patch Set 56:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/667d86c7a801451d830d64c5203074af\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/6fb3248c0cb441cc9a480f613966cb22 : SUCCESS in 39m 17s","accounts_in_message":[],"_revision_number":56},{"id":"ca55f82f0443fb3edd5cdfefd202713f52759896","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-19 14:23:10.000000000","message":"Patch Set 56: 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/b5c7a937f619496480f1a2dd42ad3fbc\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a9c7cbb581164d989ce2f61171d8399a : SUCCESS in 12m 40s\n- grenade https://zuul.opendev.org/t/openstack/build/862d9c361f614436adac531d03273512 : POST_FAILURE in 35m 35s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5e29523d843d4458b3aa1a9f935c2838 : POST_FAILURE in 36m 34s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/a00b161bbe62494a952044d4e51564ef : SUCCESS in 57m 40s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/2041c3fcbe5048bf81e8d02adaf072ff : SUCCESS in 49m 29s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b6213a8f4a9b485da9bde80a91ac7af0 : SUCCESS in 21m 35s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/61b2de46391c4724b0e4cb3ee2f83436 : SUCCESS in 18m 58s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/13efc67179654c3d96d09aa4879fc50b : SUCCESS in 19m 20s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/8ec679f5bf404e39a5aafa8b7eae7140 : SUCCESS in 4m 35s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/813e75d6510b46808d1482a90d7df5b5 : SUCCESS in 13m 45s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/a16df66487684098bcc34797fe8404b4 : SUCCESS in 10m 53s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/76b18b23260b48d49a632c2fbd40ee6c : SUCCESS in 30m 40s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/d7ef46ae8ba242329aec0881d6ed37e6 : SUCCESS in 21m 43s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8bb3164bef3b4f4f80fd4fc5409de32e : SUCCESS in 15m 09s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/1bf5f85d41a94898abbcb5ea9f103f6c : SUCCESS in 14m 02s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/d25e44713bf046fe9874c0e12c0dbf39 : SUCCESS in 13m 07s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/32598a27cf314773921591691be15d19 : SUCCESS in 6m 30s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/8c704b82118f459c8ab239b5dd2d2679 : SUCCESS in 21m 20s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/98a4a3ac546640d5ab7d810a6970af1c : SUCCESS in 8m 26s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/d18e52b4c51e44f0b93aea709a7fe049 : SUCCESS in 1h 00m 30s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b22cfbf2eb5b482a8f66c6c8b36a0478 : SUCCESS in 35m 10s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8346c1acb1ac42418d5e063c893117b6 : SUCCESS in 52m 33s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/347bef574a444a5094a41015062dbbfd : SUCCESS in 28m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7f98912e715a452f833470b56e7c56bc : SUCCESS in 2m 43s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/5205e512a5f44eb989f39855a91c1a28 : SUCCESS in 16m 43s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3ff9ef43129a4e2eaad8a18dd43c0f23 : SUCCESS in 1h 01m 18s","accounts_in_message":[],"_revision_number":56},{"id":"8ad3e0cc663af3a6a5c50b1e504eed3e7033bd52","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-19 15:19:37.000000000","message":"Patch Set 56:\n\n(6 comments)","accounts_in_message":[],"_revision_number":56},{"id":"e96b950218ab1d680a45b67e000d3e139a536dd0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-19 15:35:08.000000000","message":"Uploaded patch set 57.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":57},{"id":"386114ca920e07309839bce088aa5d59ecddd249","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-19 16:07:50.000000000","message":"Patch Set 57:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0fc264eb1a524a27b255dd05112aad00\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/0360a976756843589a48a562fdb8a0e9 : SUCCESS in 31m 09s","accounts_in_message":[],"_revision_number":57},{"id":"a0b4c674b056377e760e7ab89076c60ad7b8ab5b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-19 16:52:19.000000000","message":"Patch Set 57: 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/1745c8b1973140998aeb3de88670d9cf\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5750218d729b48bdbabfff71d3b8d02e : SUCCESS in 8m 12s\n- grenade https://zuul.opendev.org/t/openstack/build/948ab69f1e92413c8433ad0bfdd51cd8 : SUCCESS in 1h 01m 37s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/30f7e578a672444a8289aeeceb505aa7 : SUCCESS in 1h 06m 36s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/709389e72b7545c0aa7ee40e96b7a2f1 : SUCCESS in 30m 57s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/0384bad774f9429a934652651156d880 : SUCCESS in 56m 32s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3a73ecedd5f74b45a74eb3b74734cfc6 : SUCCESS in 18m 28s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a4cb39915ee94e57962b2adff53a9685 : SUCCESS in 19m 29s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6d5e8c033e384603ae9b1524b7778bd6 : SUCCESS in 21m 52s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/8996d47e4a5d41a9b9c68e6c56fdd84f : SUCCESS in 6m 52s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/874293925e7b4c1f81ddcf429a263325 : SUCCESS in 27m 47s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/4d6e9873b4874e6186fdfc904d1351f5 : SUCCESS in 17m 43s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/f0af35a297a8452a9d80e5f00c5040f6 : SUCCESS in 32m 48s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/3c20d13c6e39435eaaf6d5710db22e34 : SUCCESS in 26m 00s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/66d091b2201941d692f0ad69045df75c : SUCCESS in 15m 05s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/79509fca9d284001a29f70ecea4140ce : SUCCESS in 16m 30s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/e1cc3352fd1c438daf0978474fb5ff63 : SUCCESS in 18m 06s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/936af781a37149e0a50e980f03c296e9 : SUCCESS in 6m 37s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/ca8e48d15b9a42b1aeb976a4262d212b : SUCCESS in 15m 06s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/3efc261ae3a342868c731bf9ef2d2ca2 : SUCCESS in 7m 54s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/525cfea739084767ba7cd244d2cfa2a8 : SUCCESS in 59m 55s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/206a9080e1464d8d858a0824eba04e23 : SUCCESS in 59m 45s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/554b1156d06c495a9d4c781fbcdf6e71 : SUCCESS in 49m 31s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/6e9b4a307d204e76866f98df505414d3 : SUCCESS in 31m 47s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/be4aaf630d5d4329845a639102f7be43 : FAILURE in 4m 02s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/707409aa2a69499b9e9fbd98afb12ec5 : SUCCESS in 20m 02s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/a461d2e95d4f47139c26a3ded4fe0ed5 : SUCCESS in 1h 10m 23s\n\nWarning:\n  Comments left for invalid file test/unit/common/test_utils.py","accounts_in_message":[],"_revision_number":57},{"id":"941e46e9fe0677ed48a13436077b18990e22b073","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-19 17:44:50.000000000","message":"Uploaded patch set 58: Patch Set 57 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":58},{"id":"5464f26ffd201e468eba0668cb3de9f7fffc2465","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-19 18:21:47.000000000","message":"Patch Set 58:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/be1835493db046bba490bdd3aa764cc0\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/53f8c2fc5d554c9fae0d92337d14e493 : SUCCESS in 35m 16s","accounts_in_message":[],"_revision_number":58},{"id":"492329ec15a38ab044fdf3ca2c1698093b79b2d3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-19 18:54:30.000000000","message":"Patch Set 58: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/dab6484ef6b443049c11d97257b59e9a\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2d11da95a2604d5fb27f0b6c96d2fee5 : SUCCESS in 11m 36s\n- grenade https://zuul.opendev.org/t/openstack/build/c54a321cba3c4dd489a15c2fc4e56add : SUCCESS in 56m 41s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/104b36887a3e440482b71c61b2fd46e6 : SUCCESS in 1h 04m 07s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8df78b83ea944fde9d86776ffd4a2259 : SUCCESS in 48m 14s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/aa84356faaed4aa0a0b40bfad4c3a58b : SUCCESS in 48m 56s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8e1d49858ff04fa4bdbac8709ac2cd8b : SUCCESS in 19m 12s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3e58a23b181246a88d9999921a0c709d : SUCCESS in 15m 49s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/049036290a734ca3b7de77a71235e6d0 : SUCCESS in 11m 40s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/67505efaae524a19926037a509abbf94 : SUCCESS in 9m 09s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c2644992d4c54867bf158c5fc1217c99 : SUCCESS in 29m 35s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/7fcc051824c94542ad264bd8b02abede : SUCCESS in 20m 06s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/f339d2c6f16d4172a50fdc25529eacde : SUCCESS in 26m 11s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/c871b31f6cb3435ebc03982d0b367012 : SUCCESS in 21m 26s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8f17f3f91b55417b8c654bc9c7d4109c : SUCCESS in 8m 43s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/1159efd1f26d424e9e9c59f47e9b605a : SUCCESS in 8m 57s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/b233f47ea7524df1bbccff29768bd4ee : SUCCESS in 15m 37s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/d0854614db41499ba90bfe5f41638e1c : SUCCESS in 6m 04s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/528d18505abe49e0b19a37d47fc35a96 : SUCCESS in 15m 27s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/f66ebf402e844429a76b089a1f35cf43 : SUCCESS in 8m 43s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/8ccb5b258a5e48c9b16511ed37fe56b6 : SUCCESS in 59m 14s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7c2d22dba96746b98c617decda627d32 : SUCCESS in 51m 32s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/d0a627f5e28549b5be9644b50ef66853 : SUCCESS in 22m 37s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/0126bdd1794940739cb349d593774cb0 : SUCCESS in 30m 38s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4c6a3e257e444ca5a8e9f6cb3863b4fa : SUCCESS in 2m 30s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/0440a0a86ad4485caefe5354d3ce0f74 : SUCCESS in 8m 55s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5efc4b87bec24c0dbbf430696e4f1b71 : SUCCESS in 31m 25s","accounts_in_message":[],"_revision_number":58},{"id":"da7ffe01a36a3476300910441da1201e676daa28","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-02-23 03:45:31.000000000","message":"Uploaded patch set 59: Patch Set 58 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":59},{"id":"d569fbc9986eb845c1cb2a3de70bb5d06c6a28f1","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-23 04:21:42.000000000","message":"Patch Set 59:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/678c5fd8475d4d86bf14630dcb90b67c\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/f9f7bbf3e5434f249186b1a922881280 : SUCCESS in 34m 18s","accounts_in_message":[],"_revision_number":59},{"id":"fd41e42916b93ce13d9cc7121c29242eadb673d3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-23 04:55:21.000000000","message":"Patch Set 59: 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/14661e53a4ab4d449697c528bea4adff\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2e5def2fb46a41f88170dcaa3b05cd8d : SUCCESS in 5m 31s\n- grenade https://zuul.opendev.org/t/openstack/build/6c40ddad8883447c811a8a6d4ed6b891 : SUCCESS in 42m 26s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/342fdca9e3134dbaa91d724a0206c7d2 : SUCCESS in 35m 11s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/3f5c150d7f7d4bcb9fa60eaf11fdb48f : SUCCESS in 29m 01s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c7a578ab25e64989aac7ce8bf8801224 : SUCCESS in 1h 01m 56s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2169f614caa84cbd85c3c9bd206d7b97 : SUCCESS in 10m 07s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ed407a0e5f4b4284ab5397b0c00f0b73 : SUCCESS in 19m 53s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0e9b4bd2df194adba96f6d288b3d8bb2 : SUCCESS in 24m 02s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/da927bc81c5c4a1ea02f200ca88d1628 : SUCCESS in 8m 24s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/eb34458e2ae74ec7914a7894d9e4c8ae : SUCCESS in 28m 05s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/443d8d670d2d4fb087a2a7473cdf3a9c : SUCCESS in 20m 12s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/293bb1f5e24943e6ad8ea25454e5bf8b : SUCCESS in 20m 38s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/006fa6ec3b3f42848e2b1064a72b0690 : SUCCESS in 18m 53s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/82a12c915e954bd69d4bdc35806f3b7c : SUCCESS in 7m 55s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/2fedafac80d843e7bd78e47eb65a9fa2 : SUCCESS in 7m 57s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/16fc22e5b9634835ba0b820ba61be966 : SUCCESS in 14m 56s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e8caf21098564c84a83cae1cca43a18c : SUCCESS in 5m 42s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/15d0af9bb8a1434d9953a0e2a2bc4bda : SUCCESS in 16m 29s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/c557713a45d146288b292a4550fe5287 : SUCCESS in 7m 41s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/515f51faaefd4112b5957b7e73db03e8 : SUCCESS in 59m 41s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/009661270ce44928b3530abb17f227bb : SUCCESS in 54m 38s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b51f8705256e45cd93ffe44ea5b12d86 : SUCCESS in 50m 53s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/fd499f4225ce42d7a196040d7b8f89a8 : SUCCESS in 21m 52s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8cc5d27d670b497c8e2fb46292dc6a87 : FAILURE in 3m 35s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/92b59bd69f4f4e0e8693c2d7f181eff7 : SUCCESS in 10m 20s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ccd25a8204d041a4af863f01e4764697 : SUCCESS in 45m 25s\n\nWarning:\n  Comments left for invalid file test/unit/common/test_utils.py","accounts_in_message":[],"_revision_number":59},{"id":"2dabba38f8f83782a444d71c3695e074ad5f6d9f","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-02-23 06:19:09.000000000","message":"Patch Set 59:\n\n(2 comments)","accounts_in_message":[],"_revision_number":59},{"id":"656a29e415044633d69a5b98e4597aada2fbd8f8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-23 19:06:36.000000000","message":"Uploaded patch set 60.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":60},{"id":"b4b984299b30576908dd9385c35cb321bf01ad32","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-23 19:46:26.000000000","message":"Patch Set 60:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f46d78f0fb424853a5f6ad2b0702083d\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/229afbc23d684402b147658434fc140b : SUCCESS in 30m 54s","accounts_in_message":[],"_revision_number":60},{"id":"0becfc9b9dd9c53e3cd3bb3977645e04bad96e6c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-23 20:23:59.000000000","message":"Patch Set 60: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/58372de588874d27a060aae41b1f0ddc\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/87d766225f594bf882f3d6a4b156c364 : SUCCESS in 5m 37s\n- grenade https://zuul.opendev.org/t/openstack/build/c0c47c8fb8964e61a967d0fb3792f320 : SUCCESS in 1h 02m 37s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e5a6cdbbcd2b484a94c1179827d46ae8 : SUCCESS in 1h 01m 21s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/2f3c91b6fb07448ba4b4df1a8885cf74 : SUCCESS in 1h 00m 19s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/70f05399fb8c4b038bb7cfc21303eec7 : SUCCESS in 1h 01m 21s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/32258661268849c789007aa38351f8a8 : SUCCESS in 19m 02s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a8e494d9fbc0422a9c5598dd5e37b44a : SUCCESS in 17m 47s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a58720f7caec4942b5e8a2da088fcf55 : SUCCESS in 20m 09s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/662d70023f7e4e32bb1ce8c5c5998848 : SUCCESS in 6m 31s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/4d693658e9db4a25a4e134e702d8bbbe : SUCCESS in 21m 40s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/035877d0668e450ea0cb153e92995464 : SUCCESS in 11m 23s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/49f037e2d67343cbbbc021d29c3dea05 : SUCCESS in 19m 03s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/87467add12d04417be423a0a3750e8ac : SUCCESS in 31m 18s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/f88eaeeb661244d4bc732d64cc54de47 : SUCCESS in 8m 05s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/10d15cb6b2dd4126aa9c8fa395e91d72 : SUCCESS in 14m 38s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/e916a07ed89b4f69b00d7680a864bc9a : SUCCESS in 15m 50s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/440ee5160b4d4bae8d8ebacca635a302 : SUCCESS in 6m 04s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/7ec32200f01545e39a0c46bede83840c : SUCCESS in 15m 13s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/612b8bf35c0347b984ee1707800be5f8 : SUCCESS in 7m 42s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/15bbd655e0ab460088c1b4a9233633bd : SUCCESS in 58m 57s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c1ec86e29f094fc88b0740d0e88286c4 : SUCCESS in 58m 04s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/0702c2ef104049d7a7f1000208b5da79 : SUCCESS in 49m 53s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/6b2d74bcf6b74b13909ea0e520544dae : SUCCESS in 22m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/54143b560e714b34b5af8ac6445c9dd9 : SUCCESS in 4m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/432195bb568c40a7be3bc5d0fa886c3f : SUCCESS in 17m 39s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/260e93d99edf478d80a4f90350782219 : SUCCESS in 43m 30s","accounts_in_message":[],"_revision_number":60},{"id":"178ebe75011383c5d1e4780bc1c5fd5452ce80d2","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-02-23 21:51:01.000000000","message":"Patch Set 60: Code-Review+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":60},{"id":"17754284c77120eafaee8f4115755b4355e95ce0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-24 18:04:17.000000000","message":"Uploaded patch set 61.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":61},{"id":"3551e9061ee88ea9c686593c9cd6e8a80fae188f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-24 18:48:35.000000000","message":"Patch Set 61:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/441d03a5e7934c8fbf77aa57d30e5712\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/7078fd1c4ec046f7bb4dd7a5edb1bd42 : SUCCESS in 30m 42s","accounts_in_message":[],"_revision_number":61},{"id":"50e2402d7eb94a30db2cce782980c8aacb075969","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-24 19:12:43.000000000","message":"Patch Set 61: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9986ee584e9c4dedae2d9de22f6d16c2\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/14356646e1ca47c592e228bf5b10b784 : SUCCESS in 4m 53s\n- grenade https://zuul.opendev.org/t/openstack/build/822f58d106f649ebb87f5346064ea186 : SUCCESS in 34m 31s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/1ae22f00a361458ea4e678453c8e27bc : SUCCESS in 34m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/391776a454c24a969ce80fc788abe583 : SUCCESS in 50m 01s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4a7623af4b724db998909833a42bc991 : SUCCESS in 54m 38s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1d21beb83f1f4ac8bfbc9116116d2707 : SUCCESS in 18m 07s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3cf6df309b014898946d8454929d2b17 : SUCCESS in 19m 52s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e09e62bc36c7400b9c6a34a1a50f2717 : SUCCESS in 19m 02s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/424c148436a84878800ff7a37bca1258 : SUCCESS in 6m 31s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9edac241528346b6b510a29479146dd8 : SUCCESS in 13m 34s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/54d52ebbbe214499b6d888a2e4587d51 : SUCCESS in 21m 22s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/87965ae512554db89bcb1c55d46b4dde : SUCCESS in 14m 17s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/5a75587c6f8d4a409603b672ff8d694c : SUCCESS in 22m 37s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/bd68b0e8a6704a138293b9872a9004c4 : SUCCESS in 13m 28s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/7e7f8ae37efc4d138cbc79b38dacbf12 : SUCCESS in 14m 02s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/aaa9018eab274e71892ad6d179df7045 : SUCCESS in 14m 55s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/38709c1030644b6aaa6f7eaf7197fc41 : SUCCESS in 6m 31s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/aa90d11f36904f30932052ae28465847 : SUCCESS in 16m 35s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/db682b84f3ab410c9a0df6cb4598bd43 : SUCCESS in 7m 42s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/adb4479caf394acba9ccdff422136d29 : SUCCESS in 52m 08s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/68f9190711d94fcc966a352fdedd9851 : SUCCESS in 36m 14s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/dce5476d7d4f487a882bd1a7e5c6504e : SUCCESS in 45m 32s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/abc15ae145fb4da796cfeea74fe9d70d : SUCCESS in 21m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d96deb784680440d97194ab1c2158969 : SUCCESS in 3m 38s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/cec1b4b759d947a7bae774ab1c3c742c : SUCCESS in 16m 03s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/840512a0e6ac4fcba670d882da0459c3 : SUCCESS in 38m 15s","accounts_in_message":[],"_revision_number":61},{"id":"9c233daf2cfad82e73cb72e81b7283dbb247fe4f","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-02-25 17:32:59.000000000","message":"Patch Set 61:\n\n(1 comment)","accounts_in_message":[],"_revision_number":61},{"id":"71c98a018b23647da74a67beb9ebfdab38d243b2","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-02-25 21:33:45.000000000","message":"Patch Set 61:\n\n(1 comment)","accounts_in_message":[],"_revision_number":61},{"id":"2aed517795ae85b3efed1cffbac61dc31987b610","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-02-26 06:16:50.000000000","message":"Patch Set 61:\n\n(1 comment)","accounts_in_message":[],"_revision_number":61},{"id":"826feaf28a905fc3460268c2cbcfbbb2a7a68589","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-26 17:52:51.000000000","message":"Uploaded patch set 62.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":62},{"id":"e41a46f19c1be90e469e509cd6d32dbad7a1d809","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-26 17:58:28.000000000","message":"Patch Set 62:\n\n(7 comments)","accounts_in_message":[],"_revision_number":62},{"id":"15c6d3a8606249d8105e54e2a1a6e44af9b5cd0f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 18:45:09.000000000","message":"Patch Set 62:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d2f84ce921044aba93b0a9251d637fd8\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/fa009b4b63ad48a8b44e79892a4c8e60 : SUCCESS in 44m 36s","accounts_in_message":[],"_revision_number":62},{"id":"a3f3fe6ae08113645f639b64046c33795d9eaabb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-26 18:48:23.000000000","message":"Uploaded patch set 63.","accounts_in_message":[],"_revision_number":63},{"id":"fb8a80fdf4bd19e195bf2402154b69e83789ca0d","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 19:53:40.000000000","message":"Patch Set 63:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0c2ec2eea9184d978fec899ccc6233c4\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/b4a2bc4f1ee644dba113ba201845d9c9 : SUCCESS in 40m 25s","accounts_in_message":[],"_revision_number":63},{"id":"2a5498826fad07181058352ba788ccb940de594d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 20:00:19.000000000","message":"Patch Set 63: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a42f3106d5f04f208ef80bc6625d9433\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5a32045ea9c847d9acfc45e11da6268d : SUCCESS in 9m 21s\n- grenade https://zuul.opendev.org/t/openstack/build/0ce3e714827040fd9e72cc447f8afbc7 : SUCCESS in 34m 13s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0dc2b8178e0a4f16812f75b4aa4c7b19 : SUCCESS in 57m 26s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/609e7b0d2fa7418c9636883bf9df5397 : SUCCESS in 55m 49s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5cf116b1f7a94bceac0f62045b9e8df5 : SUCCESS in 1h 09m 34s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fe8b128cb0a44dd7876542c62acce16f : SUCCESS in 16m 33s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/dac1080d8a764343b92abea797edf93c : SUCCESS in 20m 24s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8839605ed49f424ab101780d35a44f7d : SUCCESS in 20m 22s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/687b13e484ee4238883438d27ae75819 : SUCCESS in 6m 05s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/0825a923565c479aa1fd8c02e342c0e9 : SUCCESS in 10m 28s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/84e091587a5749769afae264a5e8cf58 : SUCCESS in 9m 16s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/a72e970d5948410e9ca434a8a581e3ce : SUCCESS in 11m 30s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/9fef373ff84c4118a48f8cdfe810d8d1 : SUCCESS in 23m 33s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/c524bb8180584ee59cc90fb13648de05 : SUCCESS in 14m 28s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/45d00a098e504807a96d1f3d2e8f178a : SUCCESS in 16m 27s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/5e65e31984c045acb214c0dd706dd8ef : SUCCESS in 16m 06s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b07880b3dd7d46348f695ee729f06418 : SUCCESS in 3m 27s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2c18fb50a5d44d1cab22db14fc268767 : SUCCESS in 15m 04s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/79758d4c8f6740e4b488d76b85315604 : SUCCESS in 7m 47s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/74dcc607daf44324b5e48749306ad151 : SUCCESS in 36m 56s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/2104fe3b151d49f1af211bcf0d869d20 : SUCCESS in 25m 17s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ec465d2126a24f35ae4b9564d1855038 : SUCCESS in 25m 06s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8e0ba007c74043dc807e19fa7b78dd31 : SUCCESS in 23m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5b972f4398df45d892bf8724d8d2f410 : SUCCESS in 5m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a2731e5ab3344d2ca3f0ea2098de9d71 : SUCCESS in 26m 48s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/67e813f3c2d14c5baa812738a555ea07 : SUCCESS in 33m 31s","accounts_in_message":[],"_revision_number":63},{"id":"b501820341b9e1d27250f21113e189a5ba7eb88c","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-02-27 00:14:29.000000000","message":"Patch Set 63: Code-Review+1\n\n(10 comments)","accounts_in_message":[],"_revision_number":63},{"id":"066e8fa1078e2e3c1ac21d1aa9f0080040a8d44f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-27 14:50:10.000000000","message":"Uploaded patch set 64.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":64},{"id":"281a9af18fde7ff1be1bf191c2b503fae0f527f5","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-27 14:53:55.000000000","message":"Patch Set 63:\n\n(15 comments)","accounts_in_message":[],"_revision_number":63},{"id":"1312dc736fd6f4629614a17cd16013d3d42362fc","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 15:57:42.000000000","message":"Patch Set 64:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c514087cd9c1428e94eed4d1040e5344\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/52f49c99cd274a3f8cb9f2a258a06414 : SUCCESS in 1h 00m 17s","accounts_in_message":[],"_revision_number":64},{"id":"fbf708077f989f9a35b9759177c47f712bde5446","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 16:05:44.000000000","message":"Patch Set 64: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/794c5479fa984a72b6fcd8d7690a3c14\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e3030ff2851a4b5a98435aecc9f8d76c : SUCCESS in 6m 19s\n- grenade https://zuul.opendev.org/t/openstack/build/d981b1074d6e4268aa81659fac824c76 : SUCCESS in 1h 00m 54s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/08c244f0bacd4f249a1777b6552490bb : SUCCESS in 1h 03m 45s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/719e850edc314401803378086c3e3ed5 : SUCCESS in 58m 42s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/9646983fbac74bbd81e72e793d783c84 : SUCCESS in 59m 29s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/72b2dcdda741488aa2da482624989104 : SUCCESS in 20m 39s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0cc9b73344234dbeaca5d0b2fbcfe15b : SUCCESS in 21m 41s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d0b52cc17f64406b91e744ea4a79ef9c : SUCCESS in 20m 30s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/b95edfbf849642aea818acf8cc47677d : SUCCESS in 6m 48s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8b48103dcc964f4b9510d8c596c8e6e0 : SUCCESS in 29m 14s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/0f30ac1b400249c38181bd4df698261c : SUCCESS in 22m 52s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/b84bc1225625412e9300d3afc1b674a3 : SUCCESS in 32m 54s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/af8f22d04de24e2ebe672e346e0e6245 : SUCCESS in 30m 42s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/5e4f290127424ed49662cb4fc41de543 : SUCCESS in 14m 22s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/e71f9fbf0a3045e39e60f654d8bffe59 : SUCCESS in 14m 19s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0797463135eb4a48bab2ef50a7c0b87a : SUCCESS in 15m 09s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/4d30a7a9ea414962b9c2281737cbc69f : SUCCESS in 6m 03s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/cce74a52a10743d98083349b09060488 : FAILURE in 23m 08s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1115409b6d504f149e72c11658c09e83 : SUCCESS in 13m 31s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/7c79f3d61a35448c8931c3049d1ecf01 : SUCCESS in 1h 00m 15s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/31750495d10f48b4a73731bcd2421f1d : SUCCESS in 40m 59s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/dadebada31d44b78b535aa0a205a0550 : SUCCESS in 58m 08s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4cd7c57714af42ecaa0b16b3a6dfa5b8 : SUCCESS in 16m 29s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/716e5514c70947c0acca29d4f7fc5ad9 : SUCCESS in 2m 40s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/e7a4c95436cc4997bcde541930ea19dc : SUCCESS in 18m 52s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/eb1937faa440424fb49cdf7a8cfdb4fe : SUCCESS in 42m 54s","accounts_in_message":[],"_revision_number":64},{"id":"9cd9e8ac95fb269a2d4bd01f5e2ab5031f146238","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-02-27 17:04:02.000000000","message":"Uploaded patch set 65.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":65},{"id":"fd9f9d69fffa024d13511c0bcc62de3d503328ce","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 17:52:19.000000000","message":"Patch Set 65: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b9999d62cc6b4b7c8896da890d4145e2\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/063a41f4dce042e8bf72cb27c604677c : SUCCESS in 5m 22s\n- grenade https://zuul.opendev.org/t/openstack/build/8bcd845cb59247f2863c7ef4bdc83b61 : SUCCESS in 42m 29s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/4b42f25375644bf7bd86a889615c7ed5 : SUCCESS in 40m 49s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/cee94bfb619942e89c78c971853bdf39 : SUCCESS in 44m 23s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4f76d7763e954312ba3c591fd618883a : SUCCESS in 44m 56s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ef9276db7e6e4cdb8eeebd6cb616d74b : SUCCESS in 11m 50s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6650cb6ee95445139118e4de5c0cec84 : SUCCESS in 15m 06s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b1016f59370b406d83e155173d83cdfe : SUCCESS in 19m 45s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c4ab42b9421440fd934d15467bf9b0aa : SUCCESS in 4m 57s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c62ec7965e9147968d3e9c96b285f0cd : SUCCESS in 13m 07s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/2f56131eeb774248b904cafd6ac69e30 : SUCCESS in 16m 34s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/635e8fe9459f4965a9c001409ffe1944 : SUCCESS in 21m 08s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/46c14f947c404052ad6bbc158c9f42f2 : SUCCESS in 25m 45s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/90d82ea9597546efbb5a6a24fb2e8acb : SUCCESS in 9m 30s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d74e695948ac445ea701888c78ab7f14 : SUCCESS in 10m 20s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/701fa46364f54d42ae279a902256fab1 : SUCCESS in 9m 56s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/290d39a660e04083bbe71b497bd89e64 : SUCCESS in 4m 36s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e8dcd4234e174361bd5931fe17fe0211 : SUCCESS in 9m 28s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/f0955206f8a0499e81bcfa1ad10207ac : SUCCESS in 5m 54s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/2c24617c068d464493200ea240428c80 : SUCCESS in 38m 03s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b46bff16fa754aa499c1f32e6c781bfc : SUCCESS in 37m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/a529acd77cdd419bbc72acaeff18078a : SUCCESS in 46m 01s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/997cedc38b8849619b6c34ab02329ad9 : SUCCESS in 19m 59s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dca9c497a32f4a488f5592d91fb82658 : SUCCESS in 2m 28s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/53a60939658847408c3e64e888099745 : SUCCESS in 18m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/820076b91b234f98b373f83289188133 : SUCCESS in 42m 38s","accounts_in_message":[],"_revision_number":65},{"id":"1881b7faefd457b6ef4d76c29e7cecc8c9785ace","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 21:10:12.000000000","message":"Patch Set 65:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/765460c83f404f899efc2de9ec44b89f\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/c7a32f2a99074cd28af4f0d28b38e316 : SUCCESS in 59m 46s","accounts_in_message":[],"_revision_number":65},{"id":"a73c2a394723d1721a5847fead9e3ed3c5a5d0ab","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-03-02 06:09:12.000000000","message":"Patch Set 65: Code-Review-1\n\n(9 comments)","accounts_in_message":[],"_revision_number":65},{"id":"e0a73a1b361b7df42d3ac7b8e575d66cbbad075a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-02 14:49:05.000000000","message":"Uploaded patch set 66.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":66},{"id":"8ea98db611151ca3549b8911ed1ff73b7769700e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-02 16:17:35.000000000","message":"Patch Set 66: 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/adc9e13f2b694eacb1d7871dc98d6ffd\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e257ecba2cf94f22920fb092879f2433 : SUCCESS in 12m 02s\n- grenade https://zuul.opendev.org/t/openstack/build/5933702e65034a409c96e8db94e08fbf : SUCCESS in 52m 36s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/bb7c1cb1941a4b54aa160353b5e92c3a : SUCCESS in 1h 06m 31s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/85d828458b7f49c09b832ced27a1060f : SUCCESS in 33m 22s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7a446b7c1cdc4fdf9b7001b35ae5661c : SUCCESS in 1h 00m 45s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e315130cfb1e409388d6c7bd9957eb78 : SUCCESS in 17m 23s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0d4ba63e22a442f6811fa9d8736255ad : SUCCESS in 12m 39s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/db6c083b76b64295816511277694d565 : SUCCESS in 11m 07s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/7740aa053f484c0e8d05fc7c21896e1c : SUCCESS in 8m 14s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/589c145ea5464c1387cf3a094e275ca3 : SUCCESS in 18m 54s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/57bf50c09d1b4444a51f6f5249b70e86 : SUCCESS in 21m 49s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/6f38926864af41b4b0f0ac897e2e6c39 : SUCCESS in 19m 42s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/fefac0af75df49c28cd2deac9e8b3330 : SUCCESS in 12m 31s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/a714ba89aff54d42acbb72ccfdf818f8 : POST_FAILURE in 14m 51s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d190a16e9a88443abc6326909e869723 : SUCCESS in 12m 52s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/b9b4c4aa7a1a4f3187aa13e975d084a9 : SUCCESS in 15m 07s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c01c3283772847c99953fa15cb8ca2be : SUCCESS in 5m 07s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/bcc246a6cfb14754a71a4986bce243e4 : SUCCESS in 14m 57s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/75252cf5f59d43ea87043b7c78905737 : SUCCESS in 11m 21s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/7b4463480a0a46508ec9c3bd990c4924 : SUCCESS in 55m 41s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/74e266ab1804460a8fc4d9caed02e8f8 : SUCCESS in 50m 31s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/689076fc535149828d420fb345665ae9 : SUCCESS in 49m 51s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f81445ca868540359f46357326245cb8 : SUCCESS in 31m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9e9e21f2ad064755a9dec52d1bec7c21 : SUCCESS in 4m 24s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/d11e47522d614ba28f5e4070b65f1135 : SUCCESS in 18m 43s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/779a9469818545a781382aeaa38a0248 : SUCCESS in 31m 35s","accounts_in_message":[],"_revision_number":66},{"id":"4763c4c88cfe0788f22fc72702f4c8818aa47166","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-02 16:19:00.000000000","message":"Patch Set 66:\n\n(9 comments)","accounts_in_message":[],"_revision_number":66},{"id":"ccdfffab8436c0ce7b18e726140dbe07ae5494d2","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-02 16:19:33.000000000","message":"Patch Set 66:\n\n(1 comment)","accounts_in_message":[],"_revision_number":66},{"id":"655d9285de7cd020c71969081031b9a0aa1ed57e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-02 17:56:19.000000000","message":"Patch Set 66: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/22144c1436a94458a96ab4c68265df3c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d5a8f5ef99b14a0dac069838158c3efe : SUCCESS in 6m 44s\n- grenade https://zuul.opendev.org/t/openstack/build/7812832ce7404927b2c7f637642dde13 : SUCCESS in 59m 28s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/a559d035c6e64671a8b0df4d9c00df51 : SUCCESS in 40m 17s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/0c1b17ad32f34da8999cf028413c5ec1 : SUCCESS in 56m 42s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/fc7b0302cc69481e923b3716df025ba7 : SUCCESS in 39m 26s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/edbad4d55c0f4df2b0fcce8066b2d9a5 : SUCCESS in 17m 30s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d3d5857990d94a02aa2404263b3c756e : SUCCESS in 10m 55s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/53c19e0575f4485e93610451a7e4ad16 : SUCCESS in 13m 18s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/e23b2ff0793f4afb9a71d73a5e46641e : SUCCESS in 16m 53s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/d298f2309a4b4405bd087fd872c9e73f : SUCCESS in 28m 42s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/c38e9517c75d4a4e8799fad8e2ea2caf : SUCCESS in 21m 17s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/0da35cbf511b40bfa06b4257ce5b3804 : SUCCESS in 28m 00s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/3bcfb58104644291bff057e9bb9ae6a5 : SUCCESS in 33m 14s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/475bfe284c6e43b4adacbb6e0cec4c99 : SUCCESS in 9m 34s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/00c1f3e79e1b41d284cec64b6ccc5706 : SUCCESS in 17m 28s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/583c1226d0424373991afa3a0baa783a : SUCCESS in 8m 38s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/d1a412ed038e444bbd1c58aa42df7d68 : SUCCESS in 6m 09s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/31ae3271ae3f4974b3c3dac3f82ba78a : SUCCESS in 10m 56s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/7d1884a732894ab2bd22d162d90bb6fc : SUCCESS in 8m 18s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/0c4f08befa46496d9563166406476856 : SUCCESS in 52m 37s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6e4fc061dc274962a2aea5c5e07fa447 : SUCCESS in 55m 23s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/1b721667ff0a48fc98d3955da6931419 : SUCCESS in 50m 57s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d030a7bed81543dbaacb6837eefec5fc : SUCCESS in 11m 59s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bb3787faec5c4b84bd35e615700c7568 : SUCCESS in 4m 25s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/52d7a74cf383403f88560d8faa67845a : SUCCESS in 21m 36s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/055859c05e1f43ec8fd1aa60c38ef2e3 : SUCCESS in 33m 50s","accounts_in_message":[],"_revision_number":66},{"id":"31725ee63ab7931ebfa13accf09aab4aea6fe801","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-03-02 18:14:29.000000000","message":"Patch Set 66:\n\n(1 comment)","accounts_in_message":[],"_revision_number":66},{"id":"306506c40dd82efa85575acafb47ac47f70959dc","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-02 19:47:31.000000000","message":"Patch Set 66:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/460d7aebec6e40cfb67d0833ad32759d\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/5a08181440f74845ae57f3527d8d406f : SUCCESS in 31m 03s","accounts_in_message":[],"_revision_number":66},{"id":"c7906b708f8e0727dd3a29edeecadbf7f971cabe","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-03-03 20:59:26.000000000","message":"Uploaded patch set 67: Patch Set 66 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":67},{"id":"c03d277845a911c23108ef49968fbc010c93568c","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 21:17:52.000000000","message":"Patch Set 67:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/56009d789e104d078b3e647fdcbf1177\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8ced990c45b54d2a8eb27584a6f1dad0 : NODE_FAILURE Node(set) request 1abbb9dbd1b9446290ef7efbd4b16630 failed in 0s","accounts_in_message":[],"_revision_number":67},{"id":"62584e9662155238ae0c3a4e48f173e7bf8fd5f6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 22:13:48.000000000","message":"Patch Set 67: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/49bf4c1ad3b24060a3376102772e6872\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2ac60583e0a24d3691fe97775cbcd35b : SUCCESS in 7m 59s\n- grenade https://zuul.opendev.org/t/openstack/build/beb12d9fd3924fa4a85baef413b884b0 : SUCCESS in 59m 43s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/58247feb01af458fbe6bd5ccdaf910c6 : SUCCESS in 1h 00m 29s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/97b247d036ac4bfeb9f999249d5ebf24 : SUCCESS in 56m 37s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3c700999bb06410b9cc5b5d133453cb1 : SUCCESS in 1h 07m 58s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ff13e65f27bd464e9331a7145aa29b8d : SUCCESS in 16m 32s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/81481ea7b1ea44568be1ba0c32ab6d96 : SUCCESS in 20m 13s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/bad74d382b874c23b9f9b897e06f1adc : SUCCESS in 19m 14s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/8fce60d555484c6faa4f246ddfeabdf3 : SUCCESS in 7m 19s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/ab4f2ac246694648b51fcc1e903cbe7b : SUCCESS in 27m 59s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/0d0a97bf90e7449cb8cbcf700e470d13 : SUCCESS in 22m 26s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/bd63302211a74fdb8ab9b3838ce7f71a : SUCCESS in 37m 58s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/6b13efcee39148269a948000375552cd : SUCCESS in 30m 25s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/d106da96770f474b94fccb79c0f7957d : SUCCESS in 16m 21s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/95627afae9d14c328a1a20114832f1d0 : SUCCESS in 14m 53s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/ac3b2aba01d74a9e84179b9439f0dd44 : SUCCESS in 14m 40s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/eba29c4453034903a33fb3d2f8a68060 : SUCCESS in 7m 19s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/4224ac7fa9c94f22b47c59d3c064ee41 : SUCCESS in 14m 08s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1728a770bb1b48a28be3250c012bf070 : SUCCESS in 12m 09s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/cad7721fc14742729f2d7ab42b3a149d : SUCCESS in 54m 44s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/2dc676373b0e4095879c637873ee5f01 : SUCCESS in 48m 02s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e5852ce71d494ebaba275f49d1cb84aa : SUCCESS in 44m 45s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/38b28617a2df4117badb107fd4fad1f6 : SUCCESS in 36m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/342ddecf0e4f475b9662723a21ff3ce3 : SUCCESS in 3m 47s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/adde7dd8231f4b2c82e6c3354469709c : SUCCESS in 18m 23s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3452060b8efe4dfa9a3fa4f8107f585c : SUCCESS in 1h 08m 33s","accounts_in_message":[],"_revision_number":67},{"id":"d1a0e46ffb380258a8286df7fab2e74597c76102","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-06 15:45:36.000000000","message":"Uploaded patch set 68: Patch Set 67 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":68},{"id":"9807690985f5a6ad49235afe9202d936b2759114","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-06 15:48:21.000000000","message":"Uploaded patch set 69: Patch Set 68 was rebased.","accounts_in_message":[],"_revision_number":69},{"id":"2186b894500e14abee96bc202bea434156906562","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-06 17:03:00.000000000","message":"Patch Set 69: 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/324d9254526a426caf6d0b332589d8f1\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7aee603e16bd44caaac42d9012664f35 : SUCCESS in 5m 13s\n- grenade https://zuul.opendev.org/t/openstack/build/22c690ac932144769a1c6b47cb7c3fa6 : SUCCESS in 31m 43s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5cb40f28127e4df085111c393d126140 : SUCCESS in 39m 59s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/1e0336c0f7e548ce9541cf466f098fb4 : SUCCESS in 56m 34s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/969c716fc549430681d99563d1e8ba49 : SUCCESS in 1h 06m 10s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5602621c47184d9389d1c5e30c52dd28 : SUCCESS in 21m 21s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6b0187840efb438bbca436a2984f8fd3 : SUCCESS in 21m 41s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/2277070a6a304d009a1754d59352d1ac : SUCCESS in 20m 07s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a41037005c28453aa01601ce41be8b59 : SUCCESS in 7m 58s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/2d9efd928a5c4d7a9a1190a8110ca63f : SUCCESS in 26m 49s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/f775246a0b054e5c9df3a931fb76df58 : SUCCESS in 22m 06s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/6f06a161603447379353ab6fa4c6a230 : SUCCESS in 33m 02s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/83d381cac1c048389f03c94c4a5e833c : SUCCESS in 12m 33s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/595c0670c2334c99b767aa8a5dfa9a1a : SUCCESS in 16m 03s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/38b819265ff74371be3e0734b0171f60 : SUCCESS in 17m 28s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/618600e08872471592de883f284ad354 : SUCCESS in 19m 19s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e7c19a0a160640f2bc8de29d9ed1644d : SUCCESS in 7m 23s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/798ce8340fe746ddb98665c208ed2ad3 : SUCCESS in 15m 07s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/2deb84bde73a4df8830219fb820e20b8 : SUCCESS in 8m 49s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/5a24c020fc414e94af787c68ff646fe7 : SUCCESS in 56m 04s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/62b9ef6e983e4424ae77a96cfc4c09f1 : FAILURE in 17m 47s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4b5ae6af63ac4a8b9a767544c49d3867 : FAILURE in 20m 31s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1afd6ac4e9b74abbaaba5e352d766d06 : SUCCESS in 30m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6f302fa7891a4cfea89d55172087c9d9 : SUCCESS in 5m 58s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/959ea564ff1d4c39a19797ecc7c83ddd : FAILURE in 50m 09s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/b2ff4a83813f4693be4956631b13b52b : SUCCESS in 59m 57s","accounts_in_message":[],"_revision_number":69},{"id":"611bb1f7534840f4112fd24fc78ee2dfe9ed541d","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-06 17:20:33.000000000","message":"Patch Set 69:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ec191b369d464b02995b9b5a7d40a045\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/28cc2601ed0b4257b833b4d905df864d : SUCCESS in 35m 52s","accounts_in_message":[],"_revision_number":69},{"id":"4bbd8e74c4ecc770b9d038afd19d3919d4b3707d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-09 12:32:55.000000000","message":"Uploaded patch set 70.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":70},{"id":"2b2c3e0bbb7000d3b5aa0799aebfe675d4b7d21f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-09 13:12:34.000000000","message":"Uploaded patch set 71: Patch Set 70 was rebased.","accounts_in_message":[],"_revision_number":71},{"id":"317a83c0073b78fc6d3c3ac43bee642c016bb969","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-09 14:03:28.000000000","message":"Patch Set 71:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/843a32f104164e09a7487d8fcb6eb584\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3edaf7b1aa1a44eea3a1b5d4dff249da : SUCCESS in 41m 41s","accounts_in_message":[],"_revision_number":71},{"id":"cfcc7957c8b4acfb6a2d5e938471246ad6aba3c6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-09 14:26:47.000000000","message":"Uploaded patch set 72.","accounts_in_message":[],"_revision_number":72},{"id":"ea37a95f71a5cd4f37bd7754b65779555e184101","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-09 15:01:03.000000000","message":"Patch Set 72:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e5a2f878dee448f49add0d07ba87b2bb\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/e2474d86d2ac4703b4bc9e6268a16a69 : SUCCESS in 32m 40s","accounts_in_message":[],"_revision_number":72},{"id":"da04933038d31a72fef7a6280fd4561808b25eb4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-09 15:43:31.000000000","message":"Patch Set 72: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3fd22ad2031d46f8b8bdf09f6310d16a\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f4703b508aa34feebbfeb9dba9b679ac : SUCCESS in 6m 02s\n- grenade https://zuul.opendev.org/t/openstack/build/ecc240f313d64471994bb597ddc00790 : SUCCESS in 57m 18s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/99d2046e49784410a181fe3ca7d66ca6 : SUCCESS in 32m 56s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/43cbab0650a241a3adcb98eb9dec50ae : SUCCESS in 36m 44s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/dcc00f36772c4efcb5cfe6f2c196ad57 : SUCCESS in 1h 05m 18s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9b368f5b620444718a70c30abc7626ba : SUCCESS in 21m 16s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5c5767ee41dd47b4a7bb41fe6cc3af8f : SUCCESS in 20m 42s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/05249d74939943259cdd197819339029 : SUCCESS in 16m 46s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/69a6693951be40299ce3a57865280ac4 : SUCCESS in 7m 00s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/ab887d87c8a84d59aab411145cd20929 : SUCCESS in 20m 15s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/2b0037421fde4cf9976823cbdcd6992d : SUCCESS in 27m 01s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/8a8f51bf23ef4369974defb6c1f06930 : SUCCESS in 32m 16s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/c0495a3fbfd440a997fe7ddc19528300 : SUCCESS in 24m 08s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/adcb7056c5de4c26ada0090381b084f7 : SUCCESS in 8m 14s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/2e7e7951de05433085a3f750a0d5bb2f : SUCCESS in 8m 19s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/e8d19680a27841babfd2ed8ae546bdba : SUCCESS in 15m 02s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c105e5e5ebc54d74b4d379a0917fb66e : SUCCESS in 6m 37s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/fea503178b0347dc9d66bb3b30d0814d : SUCCESS in 15m 14s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1a44adc63ee74cb38e41d084405639df : SUCCESS in 8m 59s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/9563ef11ff42415f9b043a4d7ff4fd66 : SUCCESS in 53m 31s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/eb09c678b4a84d819f517c401a1cae3a : SUCCESS in 38m 12s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/13d94f3484d940cea474da4b74e6a5bb : SUCCESS in 49m 20s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/57e522ebecca4560a38c4820043c0903 : SUCCESS in 28m 51s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/98175e65593a4e2795ea626d79da8954 : SUCCESS in 4m 09s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/2722096cc4a14afd9047509d6c9658d6 : SUCCESS in 20m 05s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/65ce06e28c6d403b923702ea9141abc3 : SUCCESS in 1h 07m 26s","accounts_in_message":[],"_revision_number":72},{"id":"9c9c57b0c0c87f287bfb8aa3ce1e9a9499492c8c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-10 16:53:30.000000000","message":"Uploaded patch set 73.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":73},{"id":"ae7d19ab3521c7c649a7273672222ad42ba8a360","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-10 17:39:19.000000000","message":"Patch Set 73:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8b6f1d13a4dc4da382f8cfc13f97767a\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/e162a982ac164821bfb77278628507ee : SUCCESS in 41m 58s","accounts_in_message":[],"_revision_number":73},{"id":"fa6de2460b7fb7cb375cb5dce7ac4cf49805391e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-10 18:05:46.000000000","message":"Patch Set 73: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c058d141874b426ead7f79a2c46fa0f1\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6c5801144d3c4149aaa03baff6f476b2 : SUCCESS in 11m 09s\n- grenade https://zuul.opendev.org/t/openstack/build/8d34480066754ca9a87c62ab436abd05 : SUCCESS in 45m 49s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/339ac9c573a0462fb39918fe9cc1545b : SUCCESS in 1h 03m 31s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/ded899d4384c41739af76c2a318c31ad : SUCCESS in 56m 05s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e11e714606694085977317f8fdf3a9be : SUCCESS in 59m 18s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/085ffa4542574813abaa44d6f210c034 : SUCCESS in 20m 36s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0f805168c8a24e0b9b2a6a5dfc77b3b8 : SUCCESS in 22m 10s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b8fc766bf6134daf8c4b9a52d409ee3d : SUCCESS in 11m 32s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/5f8e0dbb50d14f56836f6625e22889db : SUCCESS in 7m 29s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/5c776c1f6e3a4deaa4fe2f52a332ae87 : SUCCESS in 27m 00s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/afdc4027e3a94b6686de160be3dc343b : SUCCESS in 10m 45s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/c1e4c4a775e040dfa2285547c6c64b89 : SUCCESS in 32m 06s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/9e2758ff0e40448ead526c6ef7e82e2a : SUCCESS in 33m 55s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8a84f2369bdb4e5aa44194f660ca2f26 : SUCCESS in 14m 44s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/7fbfb48cd9cb4d779d9957fb2bf1e82c : SUCCESS in 9m 26s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/ec1678b32e0649f688b40113fded58d4 : SUCCESS in 16m 03s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b8ad6b7370be465ca07df946ad041122 : SUCCESS in 6m 20s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/d1870a74195a4738b3094260d407444d : SUCCESS in 15m 29s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/ff7cebcb9f8c45309b4113c1622dbfdd : SUCCESS in 11m 48s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/5c3cd03e91874755b6f5272dbdba8472 : SUCCESS in 55m 37s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d4f41a1bef5b44b2beefcb7c0a3bccb1 : SUCCESS in 50m 08s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/fd7a46987f494aa797937fe98c79ea94 : SUCCESS in 54m 13s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/751837140ee0410e88f9c2771501635b : SUCCESS in 13m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e0fda165a09044eb83b1734dfc67743a : SUCCESS in 3m 56s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/7461238bc9a9499fa67c495239f3ad21 : SUCCESS in 18m 42s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5ea620c43ce44c1c83e8a50ade8ebfca : SUCCESS in 1h 02m 53s","accounts_in_message":[],"_revision_number":73},{"id":"ba4b78e9d7aa3053bdc678aa75804d3a4713b0b6","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-03-11 05:01:52.000000000","message":"Patch Set 73: Code-Review+1\n\n(5 comments)","accounts_in_message":[],"_revision_number":73},{"id":"8ed91b04401831f893fc08c2386a4bd69c92c5c5","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-03-12 20:31:52.000000000","message":"Patch Set 73:\n\n(3 comments)","accounts_in_message":[],"_revision_number":73},{"id":"d5be95484b8e6b4fb244bb540bca782c56296b08","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-16 18:48:01.000000000","message":"Uploaded patch set 74.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":74},{"id":"a51199372c861df3fde52667f5a822d1f40b525a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-16 20:03:54.000000000","message":"Patch Set 74: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b21142cbdf954492bc2e43577a033b26\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e0d9a28801604399b0d1a1e835dc3614 : SUCCESS in 11m 26s\n- grenade https://zuul.opendev.org/t/openstack/build/b0973bed6a49427b916abdbb80b07bf9 : SUCCESS in 31m 41s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/a8da91133acb49de8aa667f24660d0a4 : SUCCESS in 1h 07m 58s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/e3b15b1679544dffabbfaa176f687db4 : SUCCESS in 38m 19s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/016e42c746f24e608753e8c71ce9c8a7 : SUCCESS in 1h 02m 07s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/31befcd982c747f380c95a25fdae803d : SUCCESS in 10m 45s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1ed5e06b9ee44f1288fe09ba569c0ae4 : SUCCESS in 19m 58s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b065a60c02a04a06accaa0e9639ddd14 : SUCCESS in 19m 54s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/220d3f3cf9a84281a2f72f563f0ef80b : SUCCESS in 6m 30s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c299da9bfec64ecf8843ae6baada8275 : SUCCESS in 24m 37s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/76c10119179046eb9da8069ceac78dae : SUCCESS in 26m 36s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/aee470b756f945198a5ee37f4e22cfc5 : SUCCESS in 31m 58s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/b59ecfe0cef44be3b195e1f7c7af2b5a : SUCCESS in 21m 28s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/5f88bef0a53346368b11b28891fa321d : SUCCESS in 15m 49s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/427503523b944d05ace4ede6729dd4fa : SUCCESS in 15m 42s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/c9a55613984b4aca8fba109e4950a4d1 : SUCCESS in 15m 36s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/392eb892787b4788b79f80d64ab0893f : SUCCESS in 7m 46s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/5bf1799346854e52a7b8ebbf128e8354 : SUCCESS in 16m 06s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/47ddc56d82334e90aa1d1a5a3d866364 : SUCCESS in 5m 06s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/f2dbffe2a94141dfaef315062b29c4f3 : SUCCESS in 56m 32s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5c7cf00ca2a848e98ee93871db6a17f8 : SUCCESS in 51m 27s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/b833245e60e2470a86011c6981eea178 : SUCCESS in 57m 05s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/498dfe15b83c4c5899e62a9f396d6622 : SUCCESS in 37m 23s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4b48e64874554db4a215d65ae8752b85 : SUCCESS in 4m 32s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/4c231b62f9cb4a798257fb23cdc54ead : SUCCESS in 16m 34s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/6438e86b6acc4d82b94d6ecd3335a7a4 : SUCCESS in 43m 14s","accounts_in_message":[],"_revision_number":74},{"id":"1ddf3b65796ffd715c63d546d2ec707235b090b2","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-16 21:48:23.000000000","message":"Patch Set 74:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/182ab1351e644d70ab1bcc1c8e91f0f4\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/e5d3c7a6113f4ea0bafeb6144c4f1f02 : SUCCESS in 33m 51s","accounts_in_message":[],"_revision_number":74},{"id":"be34f74dc8e903986873364936cd771324bb55a0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-17 15:34:31.000000000","message":"Uploaded patch set 75.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":75},{"id":"fe5430b674905cd5d91ce6d9052d2bdd824503b7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-17 15:56:21.000000000","message":"Uploaded patch set 76.","accounts_in_message":[],"_revision_number":76},{"id":"6f91215c68ccc7cd8a215c92b2f04f3548862459","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-17 17:02:27.000000000","message":"Patch Set 76:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b8746b0a65ce49e9bd5c3d68a2ed90c4\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/1dbf98e013124ce8927d2e6657c34ed8 : SUCCESS in 40m 55s","accounts_in_message":[],"_revision_number":76},{"id":"b696012dbf6ce62ed121a54a8f38b6aa638a8ec0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-17 17:15:04.000000000","message":"Patch Set 76: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e651fda125db475dbabcfc4701bed6cc\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b032894ed2af474691dece68d1d77949 : SUCCESS in 6m 15s\n- grenade https://zuul.opendev.org/t/openstack/build/0c4d21305fd54d8d9594e831d2392415 : SUCCESS in 1h 01m 31s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/834c4dbc8b074e5d9900793c9a059fb5 : SUCCESS in 1h 02m 02s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/1648d76e5ac44aa693533c63dbc4a5eb : SUCCESS in 58m 24s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/2d1fa28ec53e4ca5a44e7dae93c76a3f : SUCCESS in 1h 00m 25s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/bccf82245d724c73a18b7a6b7317a41f : SUCCESS in 20m 39s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/14e9c0711aec4afab9cd56907dd5f6f0 : SUCCESS in 21m 13s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/344a291ee13f4cdf96ea50f28da5e1fb : SUCCESS in 19m 42s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a64ddcb9f26047589b841e281e8169eb : SUCCESS in 7m 37s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/6df9d885702c4b218625bc48841c95ee : SUCCESS in 25m 20s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/5ad6b859b8044f1d9df03dafd610be92 : SUCCESS in 18m 36s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/1750b03baa8e4a8ba7b9a07699dc797d : SUCCESS in 24m 15s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/677eb1a1a4c745fbaa206f0311a91568 : SUCCESS in 22m 08s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/c097f45883f845169a0db8caf85a9ba6 : SUCCESS in 13m 08s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/6adac5d2eb7d4ee4a5690a260ccda057 : SUCCESS in 14m 35s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/578e290795434856915bbf466fd5f455 : SUCCESS in 16m 31s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/24095aaa0c504d7081bc59f6e570c8e8 : SUCCESS in 7m 03s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/9d88aa7ac7a3461aa4b9461f9010f473 : SUCCESS in 19m 58s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/69d63b35e9724cecb9e00c0af8671234 : SUCCESS in 8m 43s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/b2c1873e3b9c44b4a55a6efa24e3c68f : SUCCESS in 34m 32s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/827eaa4e96d148ca9b8b7acd42e2ef21 : SUCCESS in 45m 21s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8f60726db4394e848ea6a8058a2539e4 : SUCCESS in 53m 09s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/abcba89ab9cd466ab5cccfe1da9a8b15 : SUCCESS in 31m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/23aa2174f9d44107bbc50850140e843e : SUCCESS in 4m 00s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/f2bcc7773e094811946fb67ff3f6c0ab : SUCCESS in 12m 16s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ce2e0e79a55c4623bfd036ffdca5368d : SUCCESS in 55m 01s","accounts_in_message":[],"_revision_number":76},{"id":"80e8ee62934af1a3b9fb8091c25f17d8f7919131","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-18 11:05:48.000000000","message":"Patch Set 76:\n\n(1 comment)","accounts_in_message":[],"_revision_number":76},{"id":"7f11e645928a78bfc320c2a9fd72e8090f913c84","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-18 14:50:56.000000000","message":"Uploaded patch set 77: Patch Set 76 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":77},{"id":"68ae3ad55790a8047f07d8b5cac4b42c32964f11","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-18 16:11:37.000000000","message":"Patch Set 77: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1b9abd6483834bdaaedd732d28399552\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cda25ba3270647e092f760f369e29696 : SUCCESS in 12m 37s\n- grenade https://zuul.opendev.org/t/openstack/build/8694b4f4f13e4108bf6c75ca09334d17 : SUCCESS in 1h 09m 21s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/d807afb5598e4e2098d86b5cf45ac5f5 : SUCCESS in 54m 25s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/6434737ff9fd4f3a9e01af493baff037 : SUCCESS in 51m 41s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ed83c35b4e9e4a94992eda108243f00e : SUCCESS in 59m 17s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fc10c23c1e464517ade68b16b9c90c59 : SUCCESS in 19m 13s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6787f3ea9aea4147bcd7b090cd469fd7 : SUCCESS in 20m 55s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/73965caecd0644c589e8852ecf08e556 : SUCCESS in 20m 42s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/301c75aa99014d8d820480e638b23642 : SUCCESS in 4m 49s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/f946e375706f472bbf71d61cf6609f0c : SUCCESS in 26m 49s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/8696eafc9fbc427480c7629819aedd4b : SUCCESS in 27m 55s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/e1d4cc8220c64b1bb47a2dabc92dc521 : SUCCESS in 32m 02s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/d20c8cb316e040679f2a9175506871de : SUCCESS in 22m 32s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/b29ed36e32514aa48cafd692d0a4dbf3 : SUCCESS in 14m 45s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/7816564719384e41acc27e3ce156e5db : SUCCESS in 15m 04s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/69609e3cb0684f8c90b3982b4dcd9315 : SUCCESS in 15m 52s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/30e236f7f82a45288cba6c61c0232987 : SUCCESS in 6m 41s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/edc4250a60bc4ad2a481eba8a7546fd5 : SUCCESS in 16m 58s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/eb3ae0e9f445470cbb2b6c98f3f42c76 : SUCCESS in 8m 57s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/45ba6d10213e4ef3b78d7698d8b84490 : SUCCESS in 1h 01m 11s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/64fd61d3af0f4247b66f35a026947403 : SUCCESS in 49m 31s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/03b9f54d92424c86961bef7e0ca4a3aa : SUCCESS in 54m 36s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/fc57a2d156204361b8a1802dbe497769 : SUCCESS in 29m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bdf77b7763f84b1c928a5521e4dae2eb : SUCCESS in 4m 09s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/0add370deb5943ab8f72b537d8e5cc65 : SUCCESS in 18m 55s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7f07617022ed4285b2e6378a4ec91c64 : SUCCESS in 1h 04m 28s","accounts_in_message":[],"_revision_number":77},{"id":"0c7e139155b9110989a1487fc02f4566dc7e7123","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-18 16:35:53.000000000","message":"Patch Set 77:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/52d0a249dd1f461a85b0a8e44b272f03\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/88ecfa15c22c4b32a19e6d2bf7af7a3b : SUCCESS in 39m 56s","accounts_in_message":[],"_revision_number":77},{"id":"0a29f83144f10fbf94689cec6bce41179dab077b","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-03-23 05:47:16.000000000","message":"Patch Set 77:\n\n(2 comments)","accounts_in_message":[],"_revision_number":77},{"id":"855b30fe5389d5775fed1582d8b68d82505541d2","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-03-23 15:45:24.000000000","message":"Patch Set 77:\n\n(1 comment)","accounts_in_message":[],"_revision_number":77},{"id":"5a14c7cf8eff1115d705db71e665e6eea9873f35","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-03-24 00:54:11.000000000","message":"Patch Set 77:\n\n(2 comments)","accounts_in_message":[],"_revision_number":77},{"id":"2d6843baa320ebe3301e0242e24cf317c9bd77e5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-24 18:12:53.000000000","message":"Uploaded patch set 78.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":78},{"id":"f2ab52bdf2a34c69dc0599ad78510cea9b4c6d13","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-24 19:28:56.000000000","message":"Patch Set 78: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6b84f40953004c03806cddc44ece1f09\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/36624e93b8024a80a5de58f570faf5fa : SUCCESS in 12m 39s\n- grenade https://zuul.opendev.org/t/openstack/build/f541eaf6945342198d29567739138241 : SUCCESS in 1h 09m 21s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/048aa3a883ac4926bd28cab239716710 : SUCCESS in 1h 07m 51s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/dd67d67f6d11483ba83268be589463a6 : SUCCESS in 51m 49s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/da05b2ec50df45e6ba067c06cdd961a1 : SUCCESS in 1h 03m 45s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1120377d523943b899f8546884afdd31 : SUCCESS in 11m 55s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3d5c0886b40d4c2798a3d10a9ba2b2f7 : SUCCESS in 12m 55s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f4a887b3eaae47468d7dde894a01e71e : SUCCESS in 12m 41s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/fce27767a57b49b89ddeaa986fec2537 : SUCCESS in 4m 42s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/4b30041fb4fe48968211b5260821cb9e : SUCCESS in 21m 13s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/3a7e516bcb08454fbb72ebce1725ed21 : SUCCESS in 32m 36s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/0ab20b6607a945379044fb442f330055 : SUCCESS in 31m 40s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/8a65912d68f94b01b66654213a6a5408 : SUCCESS in 10m 48s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/7103087b7ef14f3aaef0a67cf968f21c : SUCCESS in 16m 17s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/ad9bf71eef1a4bcc9728b74e50f93570 : SUCCESS in 15m 39s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/67a08c7ba7be4ed3b6b94a871c2a5e39 : SUCCESS in 9m 10s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/24c4beadb48f4d1ca429f3845fc30436 : SUCCESS in 4m 29s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/04c53ce7535c444e8e2e304b90c97706 : SUCCESS in 8m 19s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/1c5daf28db20408383a7245185be58df : SUCCESS in 5m 30s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/ed71e85c9d9b483b9ea3ece28b9fd76b : SUCCESS in 35m 13s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/de735a07915c4330a4f85150aeb1e8cd : SUCCESS in 46m 49s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/d164c096a3f045a6800e544307a21996 : SUCCESS in 25m 27s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d9283e8489e341caad69889a5d7b597f : SUCCESS in 13m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/70820fa4baac49f787b4341c6383a34e : SUCCESS in 4m 24s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/467d05971ec3440f9335015ab7c9063a : SUCCESS in 19m 42s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0fd49290f7264a6e8b931811a5fa8d8b : SUCCESS in 1h 00m 31s","accounts_in_message":[],"_revision_number":78},{"id":"802d2a7739fbf7bed0a0acea842b51df2faf275a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-24 21:49:00.000000000","message":"Patch Set 78:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/04110ce7238943ec80f397070c9bd9e6\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/19167e9b543d42119dbb806e23ce2278 : SUCCESS in 38m 59s","accounts_in_message":[],"_revision_number":78},{"id":"5e88a63dda851cb33673dd9c7d030ae6103b5a28","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-03-31 14:54:16.000000000","message":"Uploaded patch set 79.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":79},{"id":"9ca109eb5bb7c4dbeb553377315d1eff233d00a5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-31 16:16:37.000000000","message":"Patch Set 79: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6de71d6986da47f1966a603bccd89883\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/aebca304026e4113bbb9ad35795834ae : SUCCESS in 8m 20s\n- grenade https://zuul.opendev.org/t/openstack/build/5ae0f89fd69742839ca0346a8289be38 : SUCCESS in 1h 06m 03s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e5488daed4ba44e1b4e7e6b82c79dc9f : SUCCESS in 1h 08m 11s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/81fc43eb754044bb97ea1bf75f37ceaa : SUCCESS in 59m 11s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7419ad3a433a4351a47e7999946fc565 : SUCCESS in 1h 07m 36s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3f78166824b6436aa47f09f30d866590 : SUCCESS in 12m 59s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c366320bd6b04523827f724954840745 : SUCCESS in 20m 39s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4126392662044056bc441c90ce9f2b76 : SUCCESS in 23m 36s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/13cb1e260d44487a86a86cff73703163 : SUCCESS in 9m 13s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9ead059e51374ceeb2ba26d0b4a706e3 : SUCCESS in 26m 31s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/a8cf6824baf943369878698d1cc5672e : SUCCESS in 26m 25s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/67622b5fc2ec481db174df72fb90bf3f : SUCCESS in 35m 16s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/456740a86264443bbc37aa65fb27f70b : SUCCESS in 23m 25s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/57533239e6e3495fa7d781985165bfa8 : SUCCESS in 15m 46s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/3939dd82f083421b8a6860c0054f602b : SUCCESS in 14m 41s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/114b8b8dc6254b16beac947fff5dc515 : SUCCESS in 16m 13s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/5d6b206f1d90409dafe4e83fd3d791be : SUCCESS in 9m 24s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/8e5269f37c064d1dac0f11c876ecf73f : SUCCESS in 15m 42s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/0d2d361c7a224cdb95ff374db8e445a4 : SUCCESS in 11m 26s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/a40d421c96de49bba723dbd92b178c68 : SUCCESS in 1h 02m 44s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/96da5b7f160f48cfa19709f602a11194 : SUCCESS in 50m 12s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4ffd51d059634781bc67f4db3b2b0557 : SUCCESS in 47m 14s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/0bce06538193462fb6c4d7bf812ba328 : SUCCESS in 40m 04s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9722f28cbc0240a9960773ae40e09fc5 : SUCCESS in 5m 52s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/679cacf69ef64165aaea7e04f278a42c : SUCCESS in 20m 23s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/fe3a9b8120f4414796ca6cc5776931e9 : SUCCESS in 1h 05m 07s","accounts_in_message":[],"_revision_number":79},{"id":"bd32ffc10c18b64363a6b3d9f08e962f9f2aa5b1","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-31 17:27:13.000000000","message":"Patch Set 79:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1fe73a683cae446b839ee7dc71b603cf\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/31154cc4837d43f99e5b64ad335861ec : SUCCESS in 41m 09s","accounts_in_message":[],"_revision_number":79},{"id":"74b419ea5edf3f8756491d16a458d55018bcf2a8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-07 13:17:09.000000000","message":"Uploaded patch set 80: Patch Set 79 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":80},{"id":"ff53fb3a5f19f0f01bdebc2794c35ae6a013b816","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-07 14:35:02.000000000","message":"Patch Set 80:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5476d132fe114a5188d51791177bd351\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/58722271a36c4d7aa0f1593af5c5562a : SUCCESS in 33m 45s","accounts_in_message":[],"_revision_number":80},{"id":"7be2a2ac0dcbec27bd0ba54179b5189c33e53256","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-07 14:48:34.000000000","message":"Patch Set 80: 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/bf4619e19bd94650b478a4205831161f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1e75dd712f474d26b6c9823e85b08fd1 : SUCCESS in 10m 12s\n- grenade https://zuul.opendev.org/t/openstack/build/d958cbb2b08447d093e1ed2dd95fa787 : SUCCESS in 1h 02m 51s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e2623c5ad40d451f9404b04f28848c84 : FAILURE in 21m 43s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/9405127fbf3447118ad359884d98f745 : SUCCESS in 45m 00s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/2d4c963a421c4aeba699313c2bb615b5 : FAILURE in 28m 59s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/89e460fbba4f408c899ad5db5deec7ef : SUCCESS in 11m 10s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3312089fd46346d98d792ef5c61eca41 : SUCCESS in 17m 34s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4d5be2cd652644c685c2567d200f9bcb : SUCCESS in 21m 13s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/5218698882c24bb2b376cb77dcfd93b8 : SUCCESS in 11m 07s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b56670448d1f4c77ad6a4dcd3de60164 : SUCCESS in 26m 47s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/1011dda5b1eb4abb9b82d843873d18ce : SUCCESS in 24m 32s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/7e41584385ba461ea993e48b21e0e8ef : SUCCESS in 13m 59s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/97a8ef2e19c4472b8223801ad497c1dd : SUCCESS in 11m 19s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/a2d6904e57204ac3bbc94a6adcebd78f : SUCCESS in 15m 50s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/871fcd0346f9447abf831998dc64a1fa : SUCCESS in 15m 48s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/e4cb7125d3d240bdb9b1230030606585 : SUCCESS in 15m 37s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/6f37308266d84556afd96278515bbf3d : SUCCESS in 6m 33s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/8da0356902064886b09fc1ab0beab624 : SUCCESS in 9m 49s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/50af991d19864115b3e7a15ba79cc571 : SUCCESS in 9m 07s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/522c84771c3c4c98beda8f0d3e428d02 : SUCCESS in 38m 57s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c61f8fa4bd8241f4b3d4ec460a662274 : SUCCESS in 49m 37s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/c19d7931038540c8baec0dde753b264a : SUCCESS in 35m 06s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/155c38ef9a2747a19a39607a12093814 : SUCCESS in 29m 17s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8dfe30f9124a42acbdce11779c23723c : SUCCESS in 4m 32s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/2ca227a5801047b99365db992c6234ab : SUCCESS in 26m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ba027ab56271406bb39af64252c49127 : SUCCESS in 1h 11m 25s","accounts_in_message":[],"_revision_number":80},{"id":"af5e4ba696541d26332fabcfb97e7db0690d4dd0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-09 09:28:15.000000000","message":"Uploaded patch set 81: Patch Set 80 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":81},{"id":"e33915dad262e5a1e132f858ee1fd36ac059cc6b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 10:47:38.000000000","message":"Patch Set 81: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6d0ffe5b112e43b58e87fcb2565d2c60\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bdb4c2ea675847bba57a82b604ccfe84 : SUCCESS in 10m 34s\n- grenade https://zuul.opendev.org/t/openstack/build/0c54ae4badb745b2923df5e39c45fd28 : SUCCESS in 1h 03m 36s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/7f0c2660149346419adb3df3f27ee763 : SUCCESS in 1h 13m 31s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/1be10a3d63104db1bae029aae909ec74 : SUCCESS in 53m 46s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3e65af9da034410cbf71a49550b1a1c6 : SUCCESS in 50m 01s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/822bf3d31b8f4e01b6a419ce9b4589c4 : SUCCESS in 17m 08s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5a8c0df3309442f78f041f1c843cd478 : SUCCESS in 19m 21s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/78e5482b8da04391928073730a58414e : SUCCESS in 20m 41s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/e04c0d0d5e3e498a9a91bfb12ecad235 : SUCCESS in 7m 43s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/cc7c6a92022b4994b324cbaca43c16c3 : SUCCESS in 25m 29s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/222ec78502c74c2993d6a66408a6a2ca : SUCCESS in 20m 33s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/035d02b9c0d444c582ec267e711fc95b : SUCCESS in 31m 56s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/f53ad6c1d10847c9b12a69b08f90813f : SUCCESS in 20m 24s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/24f850f0c36a4cbb9a9394da5992f745 : SUCCESS in 13m 24s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/4711d578973140da8f15c81a3cbad6dc : SUCCESS in 15m 33s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/e7c6b8876e7f4e5f883af56ef6ca2d87 : SUCCESS in 15m 38s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/7a0a8943954f4943902ad2d71e9ac1f2 : SUCCESS in 5m 48s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e98a791a2fa94c47bf9a012154ceba58 : SUCCESS in 14m 54s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/cb271d5f970f411c931dcee6d8f1240f : SUCCESS in 9m 05s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/0736f455b9334c17ad07d22f6c790739 : SUCCESS in 59m 42s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7fd8e8a68ba34aef92edd664d8c436e7 : SUCCESS in 39m 00s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ecfdaa5daa0b4fa4a1c44b1357f8df29 : SUCCESS in 50m 16s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1687b39abcb142bf8f193b8a1c6417b4 : SUCCESS in 28m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/514ac1ea9e184a2ea72d7429d52304d9 : SUCCESS in 4m 06s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/4da03ea912204cfab892d47636829e78 : SUCCESS in 18m 29s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/60c388eb47ce4bbebc91e73f90ff0f69 : SUCCESS in 1h 01m 19s","accounts_in_message":[],"_revision_number":81},{"id":"b46b73e81fa6dab236ea3bf9acdce1ea9a151300","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 12:25:15.000000000","message":"Patch Set 81:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/71ad5d7b4f614615aab4c39cd6e6925a\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/73af66bfe44e48ec93fb3733ca1c5953 : SUCCESS in 34m 25s","accounts_in_message":[],"_revision_number":81},{"id":"2190657d894aad676b8f8beb012ec8cac052c260","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-13 09:47:51.000000000","message":"Patch Set 82: Patch Set 81 was rebased\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":82},{"id":"6aab408be29ef83bfa3222d8bbbaaf4a39cee563","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 12:18:26.000000000","message":"Patch Set 82: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c85e29a5f1584ad4affb728ff1a897b0\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5a4616faf1dc48cf8b092fc3b6142e53 : SUCCESS in 5m 41s\n- grenade https://zuul.opendev.org/t/openstack/build/d386d099a159418dbe465967081e3723 : SUCCESS in 1h 08m 07s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/f733a7e8d3fc422580dfeb19994c1454 : SUCCESS in 1h 02m 28s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/48f82057cff544698efd1be7e014006f : SUCCESS in 54m 12s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c0b53e446f7e49bbb465e0c65cd2956b : SUCCESS in 45m 25s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ac49210372c54fd297bcbeae8d638774 : SUCCESS in 19m 41s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/370d395acdde4a08b1726461fc766139 : SUCCESS in 20m 27s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/360bee94f55f48aa9baf5baac71f102b : SUCCESS in 22m 08s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/b386f8de18eb4a088df6193f10686ae9 : SUCCESS in 6m 51s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b651c7d3f35046dfa0c1b685c5035888 : SUCCESS in 28m 18s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/93b60d0cdbbc47f0b373f2e5f479fc9b : SUCCESS in 22m 41s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/ac782c56200f4fceab9f6922765f33f1 : SUCCESS in 22m 22s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/7f9e3129abb94542ac767043d7a5ce98 : SUCCESS in 21m 21s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/410d00c875af43b08a08a6bbbf00b158 : SUCCESS in 12m 02s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/000e7a8549d1414fbcbe70a979b7b528 : SUCCESS in 15m 25s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/fea7bda1588548d78d28274c88ca6009 : SUCCESS in 13m 29s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/521889c5d92d4f2d82f84c339c94f84f : SUCCESS in 7m 59s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/7818fda8efd047ea91a8b28063a3c78c : SUCCESS in 19m 09s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/814b30ef701b4f8a943b49162f11889b : SUCCESS in 9m 10s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/30c0dfc6c87944ee94c441cf8c271ad8 : SUCCESS in 56m 04s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/ebc541ac237d482cb267869dc4b3d532 : SUCCESS in 56m 55s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/e2dc1a1d913642f9b91d44820338ff5d : SUCCESS in 58m 49s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f3a827cc3b4f478b845c41412a978b69 : SUCCESS in 30m 16s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a7b89e5dcb8d4eb68435d42b4d4f3e36 : SUCCESS in 4m 26s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/95091abf48974933bfd3c4e814c937ce : SUCCESS in 20m 50s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/96b471bd19dd476e97b37c1369125760 : SUCCESS in 58m 55s","accounts_in_message":[],"_revision_number":82},{"id":"1e3282bd416557da2ee52fd4cf1b0b9356fa9035","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 16:29:33.000000000","message":"Patch Set 82:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0c0dd1fc7ee946ec90f444fa4693ee6e\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8be7d850b4ab4db6845f2a07840e271f : SUCCESS in 35m 01s","accounts_in_message":[],"_revision_number":82},{"id":"b9354fd57e86f8d4d0795dacaa72053324ab734a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-14 15:10:38.000000000","message":"Uploaded patch set 83: Patch Set 82 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":83},{"id":"0fdae3c5f4d1fccfa2a1958997c7bcdfc4105d0a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 16:37:25.000000000","message":"Patch Set 83: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ae235da8833041729460e69d538a2517\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a2d18f9650984470b1bb3059a4821e75 : SUCCESS in 10m 15s\n- grenade https://zuul.opendev.org/t/openstack/build/27f0662314f24fa6ad59f40dd0d7d2c4 : SUCCESS in 1h 08m 01s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/df8a8c4a03c842e09a3cb673ea5b289f : SUCCESS in 1h 10m 40s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/124a270f64dd4fdd9e5980f0f6273e43 : SUCCESS in 1h 00m 05s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f45737f71d264299a8214c081ab1ac37 : SUCCESS in 1h 11m 52s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0691278564f3413db522f8a27dee38fd : SUCCESS in 20m 15s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/57d88afc73a24f588f083b1d26d0e63c : SUCCESS in 20m 26s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/41a81078c9dd47c791e5a49296d65d52 : SUCCESS in 20m 16s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/8d2384eff40849bb83bfd3b2d215d0e2 : SUCCESS in 6m 29s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/3ff9a103be584f2793c036b368ecf5e2 : SUCCESS in 29m 03s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/c8d98557cc8f452299dfefb3daba37dd : SUCCESS in 27m 03s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/675dcc6e2cd34c8c860a8610acc22626 : SUCCESS in 32m 47s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/fc7e6835969e439fb011ae36fad33b3f : SUCCESS in 23m 50s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/ff921f9fe8c34c1eb5ff5aec66ea81a7 : SUCCESS in 16m 47s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/0627c90bd55443b6afb6b408b9028af7 : SUCCESS in 10m 27s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/2178ef0818d74c5b8c32b318f39e10b8 : SUCCESS in 16m 09s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/be19af334c7e401abbb033efe1e8e344 : SUCCESS in 7m 11s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/99070c11b0b44ce9a0d5b04a8a33a012 : SUCCESS in 19m 17s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/0ff48ccccc6d4193b68cc3bef0539d80 : SUCCESS in 9m 41s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/209caf93a4434c45831492f9dc12ca5b : SUCCESS in 42m 29s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/f1a5c75b32854b48ab00f240641f10d1 : SUCCESS in 58m 00s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/9eeb8ead2cd74ba8af7055969da75801 : SUCCESS in 50m 01s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/ec4aa14aacd649019b94a5e3d14772e8 : SUCCESS in 30m 59s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7b668718e753426f8bf8683600ea108b : SUCCESS in 4m 30s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/c6345284a8f1419c81c6ab6428c59374 : SUCCESS in 19m 27s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2bc762172f164e71b77d831637506d42 : SUCCESS in 1h 01m 09s","accounts_in_message":[],"_revision_number":83},{"id":"4eddcd7c667ade542c0e51f80829f17519c0155d","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 16:58:46.000000000","message":"Patch Set 83:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3b53c5bcdc464b25a4948df27af50fa7\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/335a752a65e34f69a9fd8104cc15b0cf : SUCCESS in 41m 30s","accounts_in_message":[],"_revision_number":83},{"id":"42ab100792af6d5b8400461d33dc26332dc22104","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-16 15:48:27.000000000","message":"Uploaded patch set 84.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":84},{"id":"ddc3d20d8922b615ddf0f4739620ca2f22992528","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-16 15:49:05.000000000","message":"Uploaded patch set 85: New patch set was added with same tree, parent tree, and commit message as Patch Set 84.","accounts_in_message":[],"_revision_number":85},{"id":"07945135dbfaab165e42657652f7770bf6d841c8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-16 15:58:13.000000000","message":"Uploaded patch set 86: Patch Set 85 was rebased.","accounts_in_message":[],"_revision_number":86},{"id":"8c13e857b05a98bfc810172726159159f4a0d911","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-16 17:06:31.000000000","message":"Patch Set 86: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5f196a86cdb84c8e8314dc6aaebb5057\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2a2ce86634eb487f9894b124c5972740 : SUCCESS in 5m 02s\n- grenade https://zuul.opendev.org/t/openstack/build/333940d0489e4b328b2dc32b6f752b7d : SUCCESS in 30m 40s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/577426f873464f6d93d74fd55580fd18 : SUCCESS in 31m 05s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8b828f11686746c69af901467b718e60 : SUCCESS in 44m 53s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/cd8fd66f101644218570b5e78385d72a : SUCCESS in 37m 39s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c10c7dddcc7e4062ad436b01e22947a7 : SUCCESS in 12m 16s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8e8512b4fef04ec19a4c5e22b95d8eea : SUCCESS in 13m 04s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/71fbcd83e12748aabc8ed0f41e0546f5 : SUCCESS in 21m 03s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/10f332c73a1343d587fa2806fd43628f : SUCCESS in 8m 00s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/f4353ba7061d47daa765a81e2d8a7452 : SUCCESS in 14m 23s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/3ca7845d8c6d49d1b4a17cb14e19d8e5 : SUCCESS in 24m 01s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/bb0fd6bc8a2e4df188c14efcafd41b14 : SUCCESS in 22m 54s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/57d2b08c7b4546ddb83326529a6241e5 : SUCCESS in 11m 42s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8657cd6a60a94b39b786ca3c64d4125c : SUCCESS in 14m 40s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/8a6038a05dab4c5d8d6307804a181cdd : SUCCESS in 15m 21s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/5be5ff8a30f84a54abba356f57a894e9 : SUCCESS in 15m 25s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/6d09019120f440a3b4559fe3461d6ae2 : SUCCESS in 8m 08s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/1568c5e84c314870836ce8cbb2fe83ba : SUCCESS in 17m 19s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/6ded9ab427c0425ab705555c44f654b0 : SUCCESS in 5m 48s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/17a54919d7f34dd78c337d3649d0a9d7 : SUCCESS in 1h 00m 05s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/9a92f926811c45d6ad9e5dd48fe831c0 : SUCCESS in 50m 48s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/f11b81ee798d4c04811192496bdd928f : SUCCESS in 35m 32s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e12ccef6154f4dbc89f8f5658f81301e : SUCCESS in 22m 37s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/728dc32c595b4edd9e8a728c5ae6aa45 : SUCCESS in 2m 54s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/2e63a2be16994af4b1a4ca28ed5608ce : SUCCESS in 15m 43s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d7394e4f0da94adea80ffb99cc032ae5 : SUCCESS in 1h 02m 20s","accounts_in_message":[],"_revision_number":86},{"id":"4fcad7c34feb2c3383f6caf78fe55463f162cbd7","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-16 17:29:32.000000000","message":"Patch Set 86:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c0df4845684f4bb2afb8f3ff4c9432ad\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/78b9f89a56de4f13bab98273708f9e3e : SUCCESS in 33m 59s","accounts_in_message":[],"_revision_number":86},{"id":"783565da6b462686e602ad1a8247cb9f9360832d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-05-07 10:32:45.000000000","message":"Uploaded patch set 87.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":87},{"id":"28df20fd5bd83daa1804dbf83a978957a913fe4a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-07 11:08:12.000000000","message":"Patch Set 87:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d9755fa342ec4c8bba2cf488ff48fe33\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/5c55088061144339b59551228c9289ea : SUCCESS in 33m 28s","accounts_in_message":[],"_revision_number":87},{"id":"46915a49da25b967e5620ba0869eb527bb3d6816","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-07 11:43:00.000000000","message":"Patch Set 87: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/88d435b8d711436ab8f7033f82cfe4c7\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c3199ff652cd432192c4d3e368b5f34a : SUCCESS in 5m 41s\n- grenade https://zuul.opendev.org/t/openstack/build/f5926e85bd064c0187a655ab6ab29291 : SUCCESS in 38m 26s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3cbb0d34b64e4b9fa96417c8d6777881 : SUCCESS in 31m 47s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/203cf718769644eab5daa68ca5f29613 : SUCCESS in 50m 46s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/88d84a2853d5444ebb61471a1f833e32 : SUCCESS in 1h 04m 21s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/f0ab1682607446d7bec56cc1b06610f5 : SUCCESS in 16m 47s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cffb1c8bc9cf4b449c9189099dcd5981 : SUCCESS in 11m 49s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/03c594375f1346a9b7cecd3f679fba84 : SUCCESS in 20m 12s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/af72ef8a0c324dc997a00a47e184fb07 : SUCCESS in 4m 03s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/f6a763a0957848a183efadafad5ccf4f : SUCCESS in 20m 23s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/31b470ef67784dffaab23884553b2a68 : SUCCESS in 22m 54s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/158cc9c03af948b286266cf9ff68426f : SUCCESS in 30m 59s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/22d0318e10034387b8d4b0f718b14f0e : SUCCESS in 11m 03s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/bb841e2cdaa049f38d9182d328691136 : SUCCESS in 14m 04s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/dc1f69651fa349e29cd723ee96451572 : SUCCESS in 10m 12s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/ec1a167c9f0342d988a7e4bda5e6cdb6 : SUCCESS in 8m 06s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/0e01d388058348c38f1158a8a97cc00b : SUCCESS in 8m 29s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/8c53863d697b42fa88d157348b26db23 : SUCCESS in 19m 20s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/f3dc01e3eae649b7960ec114cc0ad0b6 : SUCCESS in 7m 50s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/efa7c443baa84e82b796454f214b91db : SUCCESS in 59m 20s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/91509de227fc43d48353ff9b3e094c78 : SUCCESS in 55m 19s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/2e5fee8341354d6085cdf0eff9f9688c : SUCCESS in 54m 57s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/94975fc3d7814e969b684be364965dac : SUCCESS in 24m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b574eee9029e4c0294cb1a72b1a64ff7 : SUCCESS in 2m 55s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/95ae8965df334c0ebc4d6e39050631be : SUCCESS in 10m 40s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/de289b5afd1d41608f29694f6721bf40 : SUCCESS in 45m 10s","accounts_in_message":[],"_revision_number":87},{"id":"f2dfe3d707ad0137c4f59e4ac89b453b1c808c8b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-05-12 23:10:36.000000000","message":"Uploaded patch set 88.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":88},{"id":"06f0d04f715a4e8f1ba0923471fb6ee27d9d031e","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-05-12 23:16:57.000000000","message":"Patch Set 87: Code-Review+1\n\n(14 comments)","accounts_in_message":[],"_revision_number":87},{"id":"14479520b6c58859d70112419fad72266fcec49e","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-12 23:53:31.000000000","message":"Patch Set 88:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/dac42bf8380749d7842436b8cb33a515\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/e1385f5e05764e87b4f82a6e1d37c9ce : SUCCESS in 35m 08s","accounts_in_message":[],"_revision_number":88},{"id":"a38f1ca4e4c08c018735dc69e75f77cbe89fce68","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 00:16:33.000000000","message":"Patch Set 88: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7f442898d50949e99ea68a78d94fdf06\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/63f8da27af8441e8b4c9fc2c51ed4105 : SUCCESS in 10m 49s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a33301c3cb3a407cbcb9aecf273b221b : SUCCESS in 8m 03s\n- grenade https://zuul.opendev.org/t/openstack/build/b9005f88cf624c7c896da5a259075896 : SUCCESS in 36m 20s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/24d24cc7082e469fa1a3236872128eec : SUCCESS in 37m 45s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/04671392513b4be68a5719fe102a5fb9 : SUCCESS in 50m 26s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d1934ffd4d8c4735b57aada92b61d24c : SUCCESS in 59m 59s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0470c021340843048d3bf7575243d5ef : SUCCESS in 20m 09s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/254d281b633b4bcf972db9a50589ad7d : SUCCESS in 10m 20s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/180532e698e0485780fe47503e75ebde : SUCCESS in 17m 14s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/4dbfafc93fb744a4bb8f2088e66d9969 : SUCCESS in 4m 09s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/99be976449984ede8ebaadc286af0af2 : SUCCESS in 10m 31s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/bef9293d0c5440de87de31249376bb46 : SUCCESS in 25m 40s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/96fd70e3139b430e99aa33e26f3b2a32 : SUCCESS in 32m 56s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/e87eeffb17c8462982512ca264606f47 : SUCCESS in 11m 24s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/237feb6ab6874ca596be0663e1ecb825 : SUCCESS in 7m 52s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/41f29fa056b44a358c0f5cd3f9401306 : SUCCESS in 15m 05s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/260e195c81324275870ea823d33b0347 : SUCCESS in 15m 18s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/02322b5a71b94c4b8fc4d03eddf8b9e1 : SUCCESS in 4m 19s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/1f7426eb1ef94d8d86d405692f01c98d : SUCCESS in 22m 10s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/22db4ebe886148b18d6036f6cc9fc5d7 : SUCCESS in 8m 04s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/6eb605fd5d2e40c98d59d88cad5e8596 : SUCCESS in 57m 21s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5cc4f6bac35c4b82871cf50ad6dd4a54 : SUCCESS in 37m 47s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/26d4880d694e4dd482aa6cc08572e070 : SUCCESS in 50m 45s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/da7f1b7750384fda8f364b944cb0e9df : SUCCESS in 31m 23s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2594a7f5bfba4a6fa852df87dfc387ff : SUCCESS in 3m 02s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/39989ee87e50471f82de2c07501b1e04 : SUCCESS in 18m 29s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2c1548b820c94bfca6bf627c5a28ffe8 : SUCCESS in 45m 19s","accounts_in_message":[],"_revision_number":88},{"id":"887d526a32f0c25adb2d3894166c21e56e8da222","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-05-13 22:21:21.000000000","message":"Uploaded patch set 89.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":89},{"id":"1ee911c2a450035502ea6a25d5e8efa3b5968030","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 23:26:14.000000000","message":"Patch Set 89:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4365036e856448b3890f378097e887cf\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/9e177e64ab944e0889329da83235ed0b : SUCCESS in 33m 48s","accounts_in_message":[],"_revision_number":89},{"id":"475f0fe91b94027cca2d725f288e90cdc9706471","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 23:39:46.000000000","message":"Patch Set 89: 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/abffb94c3a8d4b7282f8edb126754731\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0e350a1334a34adc8593f4ac51681577 : SUCCESS in 10m 27s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d78c5df68743433ba44a6682fc24a26e : SUCCESS in 8m 48s\n- grenade https://zuul.opendev.org/t/openstack/build/d7e0402c7df14112a9c855753fac8c3b : SUCCESS in 1h 04m 21s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ae5f967759d744b880946758f69cd615 : SUCCESS in 1h 06m 07s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/ea4b1deb53e94426a5b2025b933b0d0f : POST_FAILURE in 1h 11m 38s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/07ea8b43f3ce40798cdc91a54505cad0 : SUCCESS in 1h 03m 38s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3a79faab5535489d82dd8d6798f2be26 : SUCCESS in 22m 52s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c5eba500d3f249dc863561a7f3dd5201 : SUCCESS in 21m 16s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a1033868d2f241c0936a8494a16b46b5 : SUCCESS in 21m 08s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/ea0451d2c0094c09b4528c8bc79d75ca : SUCCESS in 6m 12s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/34c13bb87e364be9910b550d529742e2 : SUCCESS in 27m 48s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/921bfb487bc746bd93e479f14618a8fa : SUCCESS in 22m 45s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/1d57aa3ffe6748edaaf4c9049d9519af : SUCCESS in 15m 03s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/fce04dd26bef49d3af776068b83b229e : SUCCESS in 9m 12s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/34e15b020f8f484a9cbd6534194617fb : SUCCESS in 14m 24s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/75de7211f11f4c9083e32c6a99428750 : SUCCESS in 15m 05s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/eca3e364101f4c4cb149d74664c14a55 : SUCCESS in 14m 40s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/7d6084f1516c4bf1a8877d7319ffb3d1 : SUCCESS in 4m 30s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/74915d7f10ee43ddae900a352b192777 : SUCCESS in 20m 39s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/9e2800e41b1a4621b0e6b29f8635620c : SUCCESS in 7m 55s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/7c70ee6ecda64477a7f5dcefeffbe536 : SUCCESS in 52m 06s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c6601630c8794c5db3e984f2ca3f5492 : SUCCESS in 50m 08s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/77f34bb9d61e4265be7feced821c0233 : SUCCESS in 34m 17s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e2bc87ff123448919cc312869a605f9d : SUCCESS in 29m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/177409a277284620a3533fbd8945206f : SUCCESS in 3m 00s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/66e9772e5ebe4d6787aecb8926cc010b : SUCCESS in 17m 39s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0ef98d04b7814f9883d2e0fb9755be84 : SUCCESS in 1h 02m 32s","accounts_in_message":[],"_revision_number":89},{"id":"f16dbc44ebf4c0abd242b5c03d18bac3d5016aaa","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-05-14 14:00:23.000000000","message":"Patch Set 89:\n\n(8 comments)","accounts_in_message":[],"_revision_number":89},{"id":"958a510d178a02c1cea91709ce275c26616813e0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-05-15 10:44:31.000000000","message":"Uploaded patch set 90.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":90},{"id":"7414572bdc799fc73fb6b9922198c50b9c654489","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-15 12:03:12.000000000","message":"Patch Set 90: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/faef04746619445db4f9182b3d3c6e58\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b1d7e4c1c70e46a3875f055fd54db370 : SUCCESS in 10m 46s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9535c558d47846ca9fa5f67ba903c8b9 : SUCCESS in 8m 37s\n- grenade https://zuul.opendev.org/t/openstack/build/c728aaa4c58c4b0bb40b6ec7d5c8859b : SUCCESS in 44m 00s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/30e4588fd0d44336851d3e2de3f621f1 : SUCCESS in 46m 07s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/ea572096235843a0b865b98663d880fc : SUCCESS in 30m 40s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/6b7432698211432bb506ae7b010393d0 : SUCCESS in 34m 22s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4e6e07cd18d6469fb6685e9296c1a8cc : SUCCESS in 14m 31s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/05f827b88a3446e4a06052cec6f4dec1 : SUCCESS in 11m 29s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/7665afc648bc43f5b86cc8a8910ee1c7 : SUCCESS in 15m 09s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/e9cca7c2dd354fc38e8ceedbc5f8aa91 : SUCCESS in 5m 13s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/63c787cb5f0043889bb8ce11eca237a5 : SUCCESS in 15m 51s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/c21824150a6b4bf3988fbb441ecd9739 : SUCCESS in 9m 48s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/7062455fc41a422bbe1dfed80883dce8 : SUCCESS in 11m 58s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/1bf1498e68f94d458f1c1bf8a7c09acf : SUCCESS in 18m 19s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/9075079de4f34571aaa6473ab66b9187 : SUCCESS in 8m 22s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/996bd10baf694a769dc76ef458204d29 : SUCCESS in 8m 39s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0128afb4015545d782ec7445828a0a1b : SUCCESS in 10m 26s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/287a1f46946b410985b1a697a44445da : SUCCESS in 7m 15s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/33990b54436f48e7b96d38e26aa6697a : SUCCESS in 19m 00s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/003ae9041cfb4a4f9cf85d29d308f1ad : SUCCESS in 8m 30s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/23e00a7427fa47309e74f71ca69cb207 : SUCCESS in 1h 15m 13s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/9e500cc1978a4930b67952c83b646375 : SUCCESS in 34m 20s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8c91d8794dd14c32a77f71886b84fe40 : SUCCESS in 52m 02s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/9ae283ff0f434621aee80c6b51eacc6a : SUCCESS in 32m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5c865a5b5e7646b0a60bbb26910db28b : SUCCESS in 4m 33s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a97f49d1818744cf9bb0dd2e95452af8 : SUCCESS in 18m 45s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e9836c1eeada4f41960b179d1ff89299 : SUCCESS in 43m 46s","accounts_in_message":[],"_revision_number":90},{"id":"a52bae1930704a139dca4109d8a0bc67534dff07","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-15 12:52:04.000000000","message":"Patch Set 90:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1dcc1f945d4e403bb7ba38e65632e4c7\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/1f93dc73a2e04b3f9bda69077480d64f : SUCCESS in 30m 33s","accounts_in_message":[],"_revision_number":90},{"id":"66b48d3bb51a3b10e4a1cec731ceefa5b5c6cebb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-05-21 07:12:44.000000000","message":"Uploaded patch set 91.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":91},{"id":"bf413ae661fd8e14572a999a85a8b4b08d72eabe","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 08:23:07.000000000","message":"Patch Set 91: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b199a4247c014c1d97bccfae46308a99\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d2c3bbb53ce24b8ab64e39b360ffbaa2 : SUCCESS in 5m 45s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/871161b508f64da7adece6af898a705d : SUCCESS in 6m 49s\n- grenade https://zuul.opendev.org/t/openstack/build/8cf6a1d64dad461987d8863e522b815b : SUCCESS in 53m 55s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/da0617b3ffd54c429e98761ccbf9bf1f : SUCCESS in 1h 03m 34s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/25f4f36e203d45af80067cf40d44667b : SUCCESS in 58m 19s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/984f21c29f034fe2a5a580f3bee1a190 : SUCCESS in 1h 04m 15s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/81f3bd9a25fe4129a11f21c35e73d8f1 : SUCCESS in 12m 09s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cd5dc87c660944af984089140294e0fd : SUCCESS in 19m 43s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/7dc6d83904244168a2328a2c6bf7e014 : SUCCESS in 21m 09s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/bf4aa03aad0c45849a6b1def7223ae2c : SUCCESS in 4m 22s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b44a1731d50640a19c0dc0e3eae4890b : SUCCESS in 20m 19s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/024a33ff474f428eb4663edd20779280 : SUCCESS in 9m 17s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/04a5755a6a80491faa98ac07cbd1a5ac : SUCCESS in 30m 46s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/fc5bc1e1a3e44488a5e2025ff7a6a434 : SUCCESS in 21m 37s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/707d5226564f4672b9364bf67daee481 : SUCCESS in 14m 05s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/229beb1f30054378b624802863d04a04 : SUCCESS in 14m 43s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/a1deda9f5b86494196f9cd7e56fb0cdd : SUCCESS in 15m 22s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/3c0acc2b7bf64bcaa67fa5fc6bcd04b3 : SUCCESS in 4m 24s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/08f5c8ac6126463f901e73fa977d2b54 : SUCCESS in 17m 11s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/008a92e0a0464909b04119ab3009eaf3 : SUCCESS in 8m 40s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/b4a5a7c25eac41adbfc393f1853fb897 : SUCCESS in 38m 20s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/451f3c40525c47fb823d72c142cf26a1 : SUCCESS in 51m 29s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/de7d63a47c9d493eb8ddfe4a8ccc513e : SUCCESS in 26m 14s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8fc849d1a11f4ac7b70480c7f09ddcae : SUCCESS in 12m 40s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f14c1554eea94d0f9347dcff9b74bf8c : SUCCESS in 3m 01s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/80f0a38e7d4a4647be8b0e34fa6de9cc : SUCCESS in 18m 54s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e4b59354200f4a77aaec803af86dc5cf : SUCCESS in 1h 01m 10s","accounts_in_message":[],"_revision_number":91},{"id":"eb6dcfa940fa4594b2b6ded99e0a4e02547c2555","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 09:28:53.000000000","message":"Patch Set 91:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4bd33bf5a8734492a31856fed5e793db\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/4d23578a093f4e599531b374d74a70fc : SUCCESS in 55m 05s","accounts_in_message":[],"_revision_number":91},{"id":"027c7e8d1f4aa697c13f84626c040cd01aeaeec7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-06-01 09:53:47.000000000","message":"Uploaded patch set 92.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":92},{"id":"0cf1b50ef8e9cd292870c36018135e9c81ffea98","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 10:35:58.000000000","message":"Patch Set 92:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e7912e08ee3d413499e17530de6f96d3\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/95e8338dcc8243a18797ed56857e42a7 : SUCCESS in 33m 44s","accounts_in_message":[],"_revision_number":92},{"id":"1132e7ddebeaf46507676ee622856390eec8cc13","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 11:08:00.000000000","message":"Patch Set 92: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b1119ddc1aaa41ee855546d5d3633353\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a12540675e80490b9e76ffe09327adae : SUCCESS in 8m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d1407c9bbf264d57b49d7c6c606f475e : SUCCESS in 4m 36s\n- grenade https://zuul.opendev.org/t/openstack/build/1630a33e6dbc49f9b05f3dbd2c1fb2bc : SUCCESS in 1h 08m 25s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/89815dacebdb4366a3bd3d0af91a767a : SUCCESS in 1h 02m 43s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f875ba63d05e4204a081ca76558cfd0d : SUCCESS in 57m 52s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d8e3c67802cc4b7e8ff3b491f7244480 : SUCCESS in 1h 06m 56s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1c2ef420c913462ba63bce59b447c1e6 : SUCCESS in 11m 28s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1975b936d1484e0fb1a365b08825630c : SUCCESS in 19m 05s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a6730b36fc6145278eb8e3626c1af1f3 : SUCCESS in 16m 35s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/8d23bdf3c9254c8690fa4f995c748257 : SUCCESS in 4m 46s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/5a5b10c316aa4818b80f619e751786e2 : SUCCESS in 13m 26s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/82f0f4bb4b3d4813af5c5b0933a6779a : SUCCESS in 23m 10s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/af2a1278767a44558d223d0de53cdf75 : SUCCESS in 26m 08s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/44f2d9237be94ad99728fa2933db2e1f : SUCCESS in 9m 41s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/5e16c050a8384da98518124ce5d58599 : SUCCESS in 15m 38s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/e34190f22b6740dc9e066f6cef0d2927 : SUCCESS in 9m 31s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/12b70fb972b04005bb293183e48c47df : SUCCESS in 8m 34s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/613f3e0b0b7d485c8821da2181771f59 : SUCCESS in 5m 54s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2cce9d0112c445d19a848098707198e6 : SUCCESS in 9m 36s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/9e381523dd6b417e8b7bec4b5caf604b : SUCCESS in 9m 14s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/6caddcda40b044f3abd9e991178acad6 : SUCCESS in 54m 48s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b09dec60b1954b7588bb97095ba54b87 : SUCCESS in 51m 26s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/7521440a92cc4768a0d6f3b1caa41d70 : SUCCESS in 52m 56s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/694fd11a31854906b16427df25ba5658 : SUCCESS in 21m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6a27e831432e4f3f8a79ac8a7b628bfa : SUCCESS in 3m 21s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/75f92f708fc2479b90f7e4b9812f870d : SUCCESS in 19m 55s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/6696989cb5994cf396fe968c5e2bc57e : SUCCESS in 44m 21s","accounts_in_message":[],"_revision_number":92},{"id":"11727de84411d9cfb332602135c26e2ed8ec0dfc","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-06-25 07:16:03.000000000","message":"Patch Set 92:\n\n(1 comment)","accounts_in_message":[],"_revision_number":92},{"id":"42b8129a86d18d8c9d6a865a3c1faea3352265c6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-06-26 07:45:17.000000000","message":"Uploaded patch set 93.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":93},{"id":"69c82983d233b042f3c36540424edc3df05bf269","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2026-06-26 07:50:15.000000000","message":"Patch Set 93: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":93},{"id":"b386b3b5b3b32032e2c4c1c022fcfb6a71f3f893","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 08:41:32.000000000","message":"Patch Set 93:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2f1bd2a0fb544ab7aea9db7cfc9cc8b2\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/71b465c7e86d4b11bd7bfb44481ad1cc : FAILURE in 42m 21s","accounts_in_message":[],"_revision_number":93},{"id":"fbaea1c724f7e5aee4079655602b0b5174c26079","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 09:00:31.000000000","message":"Patch Set 93: Verified-1\n\n(2 comments)\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/2ceb4337bb094ad29ffc62cf6e2b85e7\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6c75395fc0e9403e98d974a4810ec702 : SUCCESS in 10m 08s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/25706f79ba784de9afed3bc5c81f2642 : SUCCESS in 9m 03s\n- grenade https://zuul.opendev.org/t/openstack/build/40998e48605440289042f5c43bd92bba : SUCCESS in 1h 06m 39s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/dc185c1b146246aeb2d868ff76055605 : SUCCESS in 1h 08m 15s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/bf3e15b799b94363805fc1f5fca9012b : SUCCESS in 54m 59s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/e84667ac728f4410b73d0327a3729b5d : SUCCESS in 1h 04m 26s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d96e71ce666a432c9d24c4b6e2ff8b72 : SUCCESS in 18m 44s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3ec83f8fb01b4b78bf1cc11851f46c8d : SUCCESS in 20m 22s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d03bffe805084a34bb2df01130a53672 : SUCCESS in 21m 06s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/887d3a0b8dff4eddb1be320d58210afa : SUCCESS in 6m 52s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/a5a5de91faf04c2f823dd14f582bcbf6 : FAILURE in 26m 15s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/df022320982447a1905e6977da69706d : FAILURE in 23m 14s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/7fb977cf36e74891b773f1fca1a13f19 : FAILURE in 32m 13s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/50e3787276bc4852bf3007f94beb4525 : FAILURE in 22m 19s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/7f1c063f6fd849d1a6295d466a77d4c1 : SUCCESS in 11m 22s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/174f592f25d443d2a69aa465d46386ca : SUCCESS in 15m 23s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/7739d4c8630a435c9c9613e0126ceb6c : SUCCESS in 15m 17s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/20ccab5201de42d599bab0860f3c3998 : SUCCESS in 4m 30s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/6cf2445e4485416abfc60851c8fb81d2 : SUCCESS in 18m 09s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/12abcc8b52a74957a538248e4b291ae0 : SUCCESS in 5m 25s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/4d2f98fbff1d41bc88df7d6fc78799cf : SUCCESS in 1h 07m 15s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/5f41843de59e4da7a8c2763ca4bfd2a5 : SUCCESS in 1h 00m 52s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/961dbd9c57af40b8ac4ca992080167fd : SUCCESS in 51m 36s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a9f53288b5e147ffbbd43735d396b65d : FAILURE in 11m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7b5c71404dce4c05b0d3d25408062938 : FAILURE in 3m 50s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/e5f894133fe144ce83ad481241c54987 : SUCCESS in 10m 34s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/038f5180d6cd49ae9c90968f3e251e92 : SUCCESS in 33m 23s","accounts_in_message":[],"_revision_number":93},{"id":"0d4285ab4beb7ba03c653ca8d39852701fbd4c57","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-06-29 20:22:22.000000000","message":"Uploaded patch set 94.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":94},{"id":"2a89255a3c4e5eeaf8c05eb2205dfa282dc948d6","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-29 21:11:33.000000000","message":"Patch Set 94:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e20e2f432f004a38aa0cac2aa91b007c\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/52eb45e46df049689d49cfe0064d9eb8 : SUCCESS in 37m 47s","accounts_in_message":[],"_revision_number":94},{"id":"5ba0f1172097b0d4b522211281a714629bbd259d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-29 21:43:12.000000000","message":"Patch Set 94: Verified-1\n\n(2 comments)\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/af4e92d4999b4c078ce2b46ea8085ba1\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0394e7f825004f7495cca778c43f302b : SUCCESS in 11m 12s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/73da2531dfdb4e13bbcc6b77eb79b0ad : SUCCESS in 6m 32s\n- grenade https://zuul.opendev.org/t/openstack/build/c5ca52d191e344a7902b893fe39047e7 : SUCCESS in 36m 58s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/9f5cdfd87e474425b5850781809be84f : SUCCESS in 1h 09m 41s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/80e59e9b860f4aef9676333932f35c39 : SUCCESS in 56m 51s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/01ac8ffe3f3744fe8a789f825f47f221 : SUCCESS in 1h 04m 15s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b6b32141c23f454385380aa6675e8337 : SUCCESS in 21m 49s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/25e33516f41c405482cfbf08f2eff291 : SUCCESS in 12m 26s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/830b5004f41c44b08a0b669994695d1d : SUCCESS in 19m 45s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1bd8aa04d66d44fe85da7e8d0aa5a512 : SUCCESS in 7m 36s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/d023b9c2f15d4511b79f72d12ac884e4 : SUCCESS in 11m 27s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/ccc61d1328ec4a64a43a3cbbeac79809 : SUCCESS in 11m 27s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2518777fa1ba4b389e70958a8146b13f : SUCCESS in 12m 05s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/04d340cd310f48afa1235848b4930425 : SUCCESS in 21m 46s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e39ab0e90c6f4923a0af610b3c8ad6a1 : SUCCESS in 15m 51s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/d93131349fc941fba01b92f7e191c693 : SUCCESS in 16m 25s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/863f186d1c8445c79f1a9710ced58f5a : SUCCESS in 16m 19s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/39c93524f1494282abb296e74614b927 : SUCCESS in 6m 53s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/84fa0603270040a7be84a55749e7fbea : SUCCESS in 10m 48s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/cb0cba51c06d43c4be6de57b55a02649 : SUCCESS in 5m 24s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/612fdd6327f8411aaf3b199c286c564b : SUCCESS in 48m 28s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/530fbe88a23b4f0bba7e2ee6dd0ff138 : SUCCESS in 55m 29s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8214e4d3e5504f2caf08ce5433f9cf9e : SUCCESS in 1h 00m 48s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/38b0d4c1033c433ba0b527553d0ea803 : SUCCESS in 11m 55s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ad121310822b49e08f7258cf739693b3 : FAILURE in 4m 04s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/290d8d613f1c40f5af81042808ff4d5d : SUCCESS in 20m 52s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5553e73562674056873a4fe828b65aa1 : SUCCESS in 45m 42s\n\nWarning:\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 .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.","accounts_in_message":[],"_revision_number":94},{"id":"4a96e8026af4aff3fe4e3cb1a265d320d693ffb8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-06-29 22:28:14.000000000","message":"Uploaded patch set 95.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":95},{"id":"73737ac9d7cb8646c3b9231e4bc6119fd6c1fcc2","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-29 22:58:49.000000000","message":"Patch Set 95:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8764ad0b581b416896ba73f6d070364a\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/91273f74dab44c9fa01d97478fa0e0a8 : SUCCESS in 26m 56s","accounts_in_message":[],"_revision_number":95},{"id":"85b5d73aac7b87cacb777c2cc2dffd34446aea2b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-29 23:45:25.000000000","message":"Patch Set 95: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/72db19555b9b4103a47ec1fd1a1e5ead\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fcbfb59bbba0434bad8aeca96803e010 : SUCCESS in 9m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9e9a8f964f0f4494bb5434e04f10e68b : SUCCESS in 5m 41s\n- grenade https://zuul.opendev.org/t/openstack/build/efab95ae8c3e40da9a83a8bba527e187 : SUCCESS in 46m 30s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/91ead11c435048eca5bd3ddb7ec3bba4 : SUCCESS in 1h 04m 27s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/565203ff4d1d4be2aa600f70a1d14df1 : SUCCESS in 54m 02s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/884e33b0a72d4b55a1fa4e7ba55fefe1 : SUCCESS in 1h 08m 38s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0ae141bdb85c42acb5f56e9e9c53449d : SUCCESS in 15m 09s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e750fa20214b4e60a2bff0581c65b4a5 : SUCCESS in 21m 43s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a84bad30591244c0aa846d74008edbda : SUCCESS in 19m 58s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/78c9d4dc90d44f7dbae3da1288254495 : SUCCESS in 6m 21s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9be61052c97c4a1f820ac99cc4b5e152 : SUCCESS in 25m 25s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/880010906594401b9fe73796660eb839 : SUCCESS in 21m 57s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/9df5c01b6dc84c34a7fd9b820aa60653 : SUCCESS in 21m 23s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/78c44bac36a749b5bb56438f1c7c9328 : SUCCESS in 21m 54s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/da5403b087c9459ea891407707952fa4 : SUCCESS in 8m 48s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/26813924acda4db2b8551102032843b6 : SUCCESS in 13m 32s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/24cd349e684443b3bb552491d18a1021 : SUCCESS in 15m 23s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c7a6b42759774d059f61eef2825cf2e4 : SUCCESS in 6m 06s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/82ccfae4fd3f45a2aafe7feba50294b2 : SUCCESS in 22m 03s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/5813a26109314d188a41c6244c4d4ea9 : SUCCESS in 7m 44s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/111799ef8a654496affafc0ddcb27a44 : SUCCESS in 37m 01s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/480cf4c21f6549f5831625eb12eec790 : SUCCESS in 55m 47s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/69bb76d5334c4b5099aebae3eaefa0c9 : SUCCESS in 49m 38s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1a807c7e16184594838aed19f6680256 : SUCCESS in 12m 30s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d0b5bef98f144ab3a39d6a1acdd3f462 : SUCCESS in 4m 52s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/fd9de2d9aaf34363aaeed4f3dfa8eb85 : SUCCESS in 19m 01s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/36677ee8fbcf46ffb7ed2135606713a6 : SUCCESS in 46m 14s\n\nWarning:\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":95},{"id":"317564862e89685e0db4abbc7c4b35905110de01","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-06-30 11:29:56.000000000","message":"Uploaded patch set 96.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":96},{"id":"3fd8cb3c1fe1301276e77dec57272e05a1503d67","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-30 12:15:03.000000000","message":"Patch Set 96:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b73d63f2c96149eeb6589efa325f497c\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/64d3036caf9241718930cb72c8299823 : SUCCESS in 42m 26s","accounts_in_message":[],"_revision_number":96},{"id":"d78bdd40bd1b3225c53d3c1d195fd1ab1beed2e7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-30 12:40:06.000000000","message":"Patch Set 96: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/70a2e5e5a38c432d993e66b12ebc1467\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c4ca6cc00dbb41cfb84805566acdec34 : SUCCESS in 11m 12s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/112dbea8449c447f805a5dd53070385a : SUCCESS in 8m 33s\n- grenade https://zuul.opendev.org/t/openstack/build/204c6b1ff756419d9439d7bf29a4d43f : SUCCESS in 53m 04s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/451d8fe33742412684c7548f549c579e : SUCCESS in 1h 01m 09s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/72856f2f19a1474ca930cf3f8d6ec377 : SUCCESS in 58m 58s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/a9e38224a4184a37a26bdadc88de9ea3 : SUCCESS in 1h 07m 13s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/ae419a64f6744d899ec51c03b71986b4 : SUCCESS in 12m 03s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/07e4aa835d0746c1bf414adbb4176359 : SUCCESS in 20m 19s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/db7959bf53fa4a788d7521f18d17e2d5 : SUCCESS in 21m 47s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1e83036053874f999507bfef31903475 : SUCCESS in 8m 27s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/3745c06100ce499095009b880b3bb673 : SUCCESS in 22m 47s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/7d9c6bf993b34b0eba22a8f78d01ca1b : SUCCESS in 12m 19s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/ddefd7c56f1d4157a655404a51e2e122 : SUCCESS in 13m 27s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/9cf6a0eea1e049d7a0133b8104c6d0a8 : SUCCESS in 21m 54s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8c481cc24d794049857a2190fcf58d1c : SUCCESS in 8m 53s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/ec467cc8ca054bb5870186e7a9b99668 : SUCCESS in 9m 13s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/e3e05ad913104fe2bef9394032cd8bb1 : SUCCESS in 15m 52s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/ae4dacc53b474e85bfb34e2a901d0d8d : SUCCESS in 6m 20s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/9299c25aa1f1424e988bf514f7850f47 : SUCCESS in 22m 03s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/be0b3758a0a448529b38ed95d1eaeabd : SUCCESS in 11m 53s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/ce88886c98e64b7d904e5228c21796b0 : SUCCESS in 1h 03m 22s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6b0942aa78454f4dbb0152d99dd75c02 : SUCCESS in 54m 33s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/f38132f5515b46a09704da41a3676d20 : SUCCESS in 54m 37s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/6ba75450fd934627ae5756cd9e27eea8 : SUCCESS in 31m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/edde89dff5bf4f27bacb44d95658beff : SUCCESS in 2m 55s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/3695b4a88eac48a6bd533e3a5cda9a36 : SUCCESS in 18m 58s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/526643fd019d418bbfc0a22ed58cabd8 : SUCCESS in 29m 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.  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 .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.","accounts_in_message":[],"_revision_number":96},{"id":"f02be01c03737705c9dcc2ef040fa8e678064b12","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-07-06 13:30:47.000000000","message":"Uploaded patch set 97.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":97},{"id":"16691257821ebb6d6baf48c080f3eb6c11c57424","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 14:46:07.000000000","message":"Patch Set 97: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b47f5a1143424cedbabf116e5ea5aabc\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/eed35a3307a948c2af2af43adcfe4eb4 : SUCCESS in 11m 08s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4f5258a9fdde450997712909282211a1 : SUCCESS in 9m 35s\n- grenade https://zuul.opendev.org/t/openstack/build/cdf4b85052e6420ca4fba93f2d0389d4 : SUCCESS in 1h 03m 36s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5e3087a83c954528bdede22ce3f9ddc8 : SUCCESS in 1h 00m 52s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/dda05d277fd749f6b0fb917be44b7d0d : SUCCESS in 45m 33s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/a0a09b85d8ed4298b0c62dbda9d02d43 : SUCCESS in 1h 03m 01s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b097ef4fe94b42819416e5e63519bd1a : SUCCESS in 17m 22s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4a216dca139c4cff92c9baa92daed95f : SUCCESS in 16m 36s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3e7fa8c5f1f94000a88eef80b9dc1429 : SUCCESS in 23m 43s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/51a3bb11f8b84ab2bbe1a73fca26a7a3 : SUCCESS in 7m 57s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/985de75206174b998e8afe03eeccd56f : SUCCESS in 26m 48s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/9e22ccf7a0ed4bc4b07126df2fa131e1 : SUCCESS in 27m 58s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/48684943b8fa4f17a0bd18f3064a9d2e : SUCCESS in 30m 42s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/c0d6ffcc621045bba16f68b773e75814 : SUCCESS in 17m 05s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/216e7d39e7474570a938caf50b0c0da8 : SUCCESS in 15m 23s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/bcc1901fc00d4ccaa7536acd08a64374 : SUCCESS in 15m 12s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/c1e41867bb7b49a4bee880bccec6d025 : SUCCESS in 15m 31s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/d58ce330447d41e580fa23078d16f83b : SUCCESS in 9m 13s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/c81261f8474d4c11b70a0bc72f65ab51 : SUCCESS in 19m 12s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/ab4aa3db4d5a4a63a865bba39f3c562d : SUCCESS in 12m 27s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/284ef6714b494966aaeec85f50dfcdae : SUCCESS in 1h 02m 49s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/eea63107e57347a6805dd9a6919e3dd8 : SUCCESS in 54m 20s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/d6801cbfdd5e4bcc81ad353bedfd7ca1 : SUCCESS in 56m 46s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c70bcdc213384fe79a6943f646070b7c : SUCCESS in 31m 02s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/472ae42314a046988798989d970d1ffc : SUCCESS in 4m 35s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/c912c478da9c45c7a099c0749fa757c4 : SUCCESS in 21m 07s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/297363aa009948aa99f0638eccafb758 : SUCCESS in 54m 41s\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-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":97},{"id":"3617f073d917b31f455acb246d790ea1b644e121","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 18:43:36.000000000","message":"Patch Set 97:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4f06e43378a04c9780191b16937ccdfb\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8189d4b8e1c34f63ad0f7cd974c93613 : SUCCESS in 33m 03s","accounts_in_message":[],"_revision_number":97}],"current_revision_number":97,"current_revision":"91120e58800875c79ff8493cd5acc6ab0bae04de","revisions":{"a65ed87d7438993fe6e65bbb05078a8d861a3b96":{"kind":"REWORK","_number":1,"created":"2025-11-19 19:33:34.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/1"}}},"commit":{"parents":[{"commit":"676e68fc0f563f8971cb97e0b862518fbb08d7c3","subject":"Merge \"trivial: tests: add failure context to flakey assertion\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/676e68fc0f563f8971cb97e0b862518fbb08d7c3"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 19:33:20.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a65ed87d7438993fe6e65bbb05078a8d861a3b96"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a65ed87d7438993fe6e65bbb05078a8d861a3b96"}]},"branch":"refs/heads/master"},"859e809dc1c0a1f722908df5609339d8f5614272":{"kind":"REWORK","_number":2,"created":"2025-11-20 19:01:23.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/2"}}},"commit":{"parents":[{"commit":"676e68fc0f563f8971cb97e0b862518fbb08d7c3","subject":"Merge \"trivial: tests: add failure context to flakey assertion\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/676e68fc0f563f8971cb97e0b862518fbb08d7c3"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-20 18:47:30.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/859e809dc1c0a1f722908df5609339d8f5614272"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/859e809dc1c0a1f722908df5609339d8f5614272"}]},"branch":"refs/heads/master"},"5d6eb8e12465b140461dc45af612c78c82a384d3":{"kind":"REWORK","_number":3,"created":"2025-11-21 18:35:40.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/3"}}},"commit":{"parents":[{"commit":"676e68fc0f563f8971cb97e0b862518fbb08d7c3","subject":"Merge \"trivial: tests: add failure context to flakey assertion\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/676e68fc0f563f8971cb97e0b862518fbb08d7c3"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-21 18:27:59.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5d6eb8e12465b140461dc45af612c78c82a384d3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5d6eb8e12465b140461dc45af612c78c82a384d3"}]},"branch":"refs/heads/master"},"62246b1aedf6b1e71373a40e4efe2975ec16c13d":{"kind":"REWORK","_number":4,"created":"2025-11-24 17:41:33.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/4"}}},"commit":{"parents":[{"commit":"5924923c15c69a8ab1e60aab2da430853cd7d7b7","subject":"Add a Timestamp.zero() method","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5924923c15c69a8ab1e60aab2da430853cd7d7b7"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-24 17:09:20.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/62246b1aedf6b1e71373a40e4efe2975ec16c13d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/62246b1aedf6b1e71373a40e4efe2975ec16c13d"}]},"branch":"refs/heads/master"},"2467d0d90a25b19e6fefc785392ae3993a882cb1":{"kind":"NO_CHANGE","_number":5,"created":"2025-11-24 18:28:00.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/5"}}},"commit":{"parents":[{"commit":"08d0ff2b503393af01e564cee75229f97d7f6429","subject":"Add a Timestamp.zero() method","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/08d0ff2b503393af01e564cee75229f97d7f6429"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-24 18:27:48.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2467d0d90a25b19e6fefc785392ae3993a882cb1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2467d0d90a25b19e6fefc785392ae3993a882cb1"}]},"branch":"refs/heads/master"},"7f712a6db90f0f3d8b6063289f75d8e93c49dfdf":{"kind":"REWORK","_number":6,"created":"2025-11-25 14:17:58.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/6"}}},"commit":{"parents":[{"commit":"a3982a92d97f7f49077930064100b78e89ade55f","subject":"Add a Timestamp.zero() method","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a3982a92d97f7f49077930064100b78e89ade55f"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-25 14:17:44.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7f712a6db90f0f3d8b6063289f75d8e93c49dfdf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7f712a6db90f0f3d8b6063289f75d8e93c49dfdf"}]},"branch":"refs/heads/master"},"6b1f6f24c06495b2cc496e46e19545162b07cbe7":{"kind":"REWORK","_number":7,"created":"2025-11-25 17:52:18.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/7"}}},"commit":{"parents":[{"commit":"ba1c03e56a8e01d88c89be8e45db050e2dce6863","subject":"WIP timestamps: quote string timestamp in sql query","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ba1c03e56a8e01d88c89be8e45db050e2dce6863"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-25 17:51:45.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6b1f6f24c06495b2cc496e46e19545162b07cbe7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6b1f6f24c06495b2cc496e46e19545162b07cbe7"}]},"branch":"refs/heads/master"},"ac59feec5c51e8eee765bc4adb88b73469bfeecd":{"kind":"TRIVIAL_REBASE","_number":8,"created":"2025-11-25 18:41:11.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/8"}}},"commit":{"parents":[{"commit":"2a83c232b9252aceba287fd0e5b0bc8c6eaa302b","subject":"WIP timestamps: quote string timestamp in sql query","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2a83c232b9252aceba287fd0e5b0bc8c6eaa302b"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-25 18:40:58.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ac59feec5c51e8eee765bc4adb88b73469bfeecd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ac59feec5c51e8eee765bc4adb88b73469bfeecd"}]},"branch":"refs/heads/master"},"b9c4b1e72ffca5bb358fae79f9edc4f76f2a95e3":{"kind":"TRIVIAL_REBASE","_number":9,"created":"2025-11-26 05:25:32.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/9"}}},"commit":{"parents":[{"commit":"a849b7224961e2abf7894384039b04ed50995ad2","subject":"WIP TombstoneReclaimer: quote string timestamp in sql query","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a849b7224961e2abf7894384039b04ed50995ad2"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-11-26 05:23:44.000000000","tz":660},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b9c4b1e72ffca5bb358fae79f9edc4f76f2a95e3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b9c4b1e72ffca5bb358fae79f9edc4f76f2a95e3"}]},"branch":"refs/heads/master"},"10a3fc2ad9edf8b46a02adca8e4480f0608c4f08":{"kind":"REWORK","_number":10,"created":"2025-11-26 14:11:36.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/10"}}},"commit":{"parents":[{"commit":"22cb2ead3a379402ece273d9c9fea3445ee8d80d","subject":"sharder: use correct Timestamp format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/22cb2ead3a379402ece273d9c9fea3445ee8d80d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-26 14:11:14.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/10a3fc2ad9edf8b46a02adca8e4480f0608c4f08"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/10a3fc2ad9edf8b46a02adca8e4480f0608c4f08"}]},"branch":"refs/heads/master"},"ab618f00f244167ba0a6d59b14ff9b699a8073e1":{"kind":"REWORK","_number":11,"created":"2025-11-26 18:24:08.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/11"}}},"commit":{"parents":[{"commit":"5a06d41041c94a6c32d84c8a259deae21acf630e","subject":"sharder: use correct Timestamp format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5a06d41041c94a6c32d84c8a259deae21acf630e"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-26 16:35:30.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ab618f00f244167ba0a6d59b14ff9b699a8073e1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ab618f00f244167ba0a6d59b14ff9b699a8073e1"}]},"branch":"refs/heads/master"},"fdded0b89422ebc2b22c10e44c1dbb7043ff9df2":{"kind":"TRIVIAL_REBASE","_number":12,"created":"2025-11-27 04:59:45.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/12"}}},"commit":{"parents":[{"commit":"4864a09140b2f93cf67d7b32afec9829f9cf8656","subject":"sharder: use correct Timestamp format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4864a09140b2f93cf67d7b32afec9829f9cf8656"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-11-27 01:53:58.000000000","tz":660},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fdded0b89422ebc2b22c10e44c1dbb7043ff9df2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fdded0b89422ebc2b22c10e44c1dbb7043ff9df2"}]},"branch":"refs/heads/master"},"8bae623f972eec2d4afccadd8854e7d1f6192bad":{"kind":"TRIVIAL_REBASE","_number":13,"created":"2025-11-27 18:26:04.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/13"}}},"commit":{"parents":[{"commit":"53889a8ce47b034c5bb2ecacee10ff61686c2790","subject":"sharder: use correct Timestamp format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/53889a8ce47b034c5bb2ecacee10ff61686c2790"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-27 18:25:44.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8bae623f972eec2d4afccadd8854e7d1f6192bad"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8bae623f972eec2d4afccadd8854e7d1f6192bad"}]},"branch":"refs/heads/master"},"d039a6e59752949fd8dcc6bae8aaf40b8d14e520":{"kind":"REWORK","_number":14,"created":"2025-11-28 18:13:23.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/14"}}},"commit":{"parents":[{"commit":"1d79a37477201afd792c6eecc18655ee11eaeba0","subject":"sharder: use correct Timestamp format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1d79a37477201afd792c6eecc18655ee11eaeba0"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-28 18:13:13.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d039a6e59752949fd8dcc6bae8aaf40b8d14e520"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d039a6e59752949fd8dcc6bae8aaf40b8d14e520"}]},"branch":"refs/heads/master"},"fc2473f4d23853ef5d7d00019ea3bf944fb6505a":{"kind":"TRIVIAL_REBASE","_number":15,"created":"2025-12-01 15:37:49.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/15"}}},"commit":{"parents":[{"commit":"cc27a177b908629c139367f9c939112aa161f1be","subject":"sharder: use correct Timestamp format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/cc27a177b908629c139367f9c939112aa161f1be"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-01 15:36:53.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fc2473f4d23853ef5d7d00019ea3bf944fb6505a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fc2473f4d23853ef5d7d00019ea3bf944fb6505a"}]},"branch":"refs/heads/master"},"c272d5a7bbcda63d22c1c273e34d04d3b9539fb6":{"kind":"TRIVIAL_REBASE","_number":16,"created":"2025-12-02 06:20:27.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/16"}}},"commit":{"parents":[{"commit":"8b3feb378f80378cd23875e3c6ab0a07a1fdec34","subject":"ssync: Refactor tests to use Timestamp and new assert","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8b3feb378f80378cd23875e3c6ab0a07a1fdec34"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-12-02 06:19:50.000000000","tz":660},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c272d5a7bbcda63d22c1c273e34d04d3b9539fb6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c272d5a7bbcda63d22c1c273e34d04d3b9539fb6"}]},"branch":"refs/heads/master"},"f21a4bd4a7ac14fca41b7be03290ec0121c2008a":{"kind":"REWORK","_number":17,"created":"2025-12-02 18:34:39.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/17","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/17","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/17"}}},"commit":{"parents":[{"commit":"655326a88578afa9de5ed6550bad7478cc01708a","subject":"sharder: use correct Timestamp formats","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/655326a88578afa9de5ed6550bad7478cc01708a"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-02 18:34:21.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f21a4bd4a7ac14fca41b7be03290ec0121c2008a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f21a4bd4a7ac14fca41b7be03290ec0121c2008a"}]},"branch":"refs/heads/master"},"f34a834132973d964138ae0e8fab2953f016a957":{"kind":"TRIVIAL_REBASE","_number":18,"created":"2025-12-02 23:57:02.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/18","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/18","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/18"}}},"commit":{"parents":[{"commit":"bfaf9873f760ddf70e9f8ce15b0c25f7afef1261","subject":"ssync: Refactor tests to use Timestamp and new assert","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bfaf9873f760ddf70e9f8ce15b0c25f7afef1261"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-12-02 23:56:40.000000000","tz":660},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f34a834132973d964138ae0e8fab2953f016a957"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f34a834132973d964138ae0e8fab2953f016a957"}]},"branch":"refs/heads/master"},"adea08ec32be88ad157e6ebe6f3e07aef07f13bf":{"kind":"REWORK","_number":19,"created":"2025-12-03 05:19:52.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/19","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/19","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/19"}}},"commit":{"parents":[{"commit":"ceb0b7784080588f6445011eaa3e6dacb77a3144","subject":"ssync: Refactor tests to use Timestamp and new assert","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ceb0b7784080588f6445011eaa3e6dacb77a3144"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-12-03 05:19:39.000000000","tz":660},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/adea08ec32be88ad157e6ebe6f3e07aef07f13bf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/adea08ec32be88ad157e6ebe6f3e07aef07f13bf"}]},"branch":"refs/heads/master"},"04d0f9216f2c4426ced707a6b15845d8bb91444f":{"kind":"TRIVIAL_REBASE","_number":20,"created":"2025-12-03 07:55:22.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/20","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/20","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/20 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/20 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/20 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/20"}}},"commit":{"parents":[{"commit":"0c6fa76a1afb08ccd93332867256b0a1669765e9","subject":"test: reconciler tests to use Timestamp class over time","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0c6fa76a1afb08ccd93332867256b0a1669765e9"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-12-03 07:55:03.000000000","tz":660},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/04d0f9216f2c4426ced707a6b15845d8bb91444f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/04d0f9216f2c4426ced707a6b15845d8bb91444f"}]},"branch":"refs/heads/master"},"3340a9c0c5b439c6af6b377992fe50bc2e10dff7":{"kind":"TRIVIAL_REBASE","_number":21,"created":"2025-12-04 06:07:12.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/21","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/21","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/21 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/21 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/21 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/21"}}},"commit":{"parents":[{"commit":"9ecc03736a1a27b5b1515966332a3371b0c0798b","subject":"container tests: Use TS.normal for db_names","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9ecc03736a1a27b5b1515966332a3371b0c0798b"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2025-12-04 06:05:48.000000000","tz":660},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3340a9c0c5b439c6af6b377992fe50bc2e10dff7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3340a9c0c5b439c6af6b377992fe50bc2e10dff7"}]},"branch":"refs/heads/master"},"f31199c60a7156273bf7e9a7640fc9f2640882ac":{"kind":"REWORK","_number":22,"created":"2025-12-05 15:07:41.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/22","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/22","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/22 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/22 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/22 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/22"}}},"commit":{"parents":[{"commit":"cfec4faddfd8b17bd194948add80c405f4dbef75","subject":"container tests: Use TS.normal for db_names","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/cfec4faddfd8b17bd194948add80c405f4dbef75"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-05 13:04:18.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f31199c60a7156273bf7e9a7640fc9f2640882ac"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f31199c60a7156273bf7e9a7640fc9f2640882ac"}]},"branch":"refs/heads/master"},"fe748035e19cd90b838074e83f5e2013e4ced97b":{"kind":"TRIVIAL_REBASE","_number":23,"created":"2025-12-05 16:02:50.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/23","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/23","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/23 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/23 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/23 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/23"}}},"commit":{"parents":[{"commit":"31834682f65e5715b2e9d0a097a1f776970c24d2","subject":"container/test_server: cleanup Timestamp usage","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/31834682f65e5715b2e9d0a097a1f776970c24d2"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-05 16:01:19.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fe748035e19cd90b838074e83f5e2013e4ced97b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fe748035e19cd90b838074e83f5e2013e4ced97b"}]},"branch":"refs/heads/master"},"55817c93ccfe8b28c9d523d8dd1a90a1d0028a07":{"kind":"TRIVIAL_REBASE","_number":24,"created":"2025-12-05 16:53:26.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/24","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/24","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/24 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/24 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/24 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/24"}}},"commit":{"parents":[{"commit":"45b0d23fdc38c61327e56e584d51ea5acfe1f0b7","subject":"container/test_server: cleanup Timestamp usage","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/45b0d23fdc38c61327e56e584d51ea5acfe1f0b7"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-05 16:53:07.000000000","tz":0},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/55817c93ccfe8b28c9d523d8dd1a90a1d0028a07"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/55817c93ccfe8b28c9d523d8dd1a90a1d0028a07"}]},"branch":"refs/heads/master"},"3a730558e7000d5dfcb5db97daed8b9c69ad6d6d":{"kind":"TRIVIAL_REBASE","_number":25,"created":"2025-12-13 12:50:38.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/25","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/25","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/25 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/25 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/25 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/25"}}},"commit":{"parents":[{"commit":"f18e695e5eba6b1fd345141cc7bbaa9f7609a1ae","subject":"proxy/test_server.py: fix response timestamp format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f18e695e5eba6b1fd345141cc7bbaa9f7609a1ae"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-13 12:47:40.000000000","tz":-360},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3a730558e7000d5dfcb5db97daed8b9c69ad6d6d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3a730558e7000d5dfcb5db97daed8b9c69ad6d6d"}]},"branch":"refs/heads/master"},"5c45ccb9ccf4d62775f6626f094d1daa880d03ed":{"kind":"TRIVIAL_REBASE","_number":26,"created":"2025-12-13 23:22:44.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/26","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/26","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/26 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/26 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/26 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/26"}}},"commit":{"parents":[{"commit":"f13d2e5fcc6fd36196e7b22e26d24c84256f7130","subject":"OldestAsyncPendingTracker accepts Timestamp.internal","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f13d2e5fcc6fd36196e7b22e26d24c84256f7130"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-13 23:22:09.000000000","tz":-360},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5c45ccb9ccf4d62775f6626f094d1daa880d03ed"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5c45ccb9ccf4d62775f6626f094d1daa880d03ed"}]},"branch":"refs/heads/master"},"838bb722b863daecebeb54181a17b322d45bdb38":{"kind":"REWORK","_number":27,"created":"2025-12-14 18:47:57.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/27","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/27","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/27 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/27 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/27 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/27"}}},"commit":{"parents":[{"commit":"bbf7ad5a3856e29c3d05127b1f2901578bdb9b96","subject":"WIP: timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bbf7ad5a3856e29c3d05127b1f2901578bdb9b96"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-11-19 18:29:09.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-14 18:47:28.000000000","tz":-360},"subject":"WIP Timestamp: add random part to offset field","message":"WIP Timestamp: add random part to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch introduces v2 Timestamps which have a randomly generated\njitter component that increases the effective precision of the\nTimestamp.\n\nv2 Timestamps have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is composed of:\n* a prefix \u00272\u0027 which indicates the Timestamp version.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor v2 Timestamps, Timestamp.internal will always return the full\nstring representation shown above. Timestamp.normal continues to\nreturn a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as Legacy (v1) Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas v2 Timestamps and it will not be possible to increment their offset\nbecause it alredy exceeds the 6 hex digit max offset allowed for a v2\nTimestamp.\n\nLegacy Timestamps retain their internal format.\n\nv2 Timestamps strings can be safely parsed by older versions of the\nTimestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy v1 Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/838bb722b863daecebeb54181a17b322d45bdb38"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/838bb722b863daecebeb54181a17b322d45bdb38"}]},"branch":"refs/heads/master"},"8141afb5bea83f39864f64c927b01fa758199e79":{"kind":"REWORK","_number":28,"created":"2025-12-19 16:25:20.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/28","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/28","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/28 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/28 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/28 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/28"}}},"commit":{"parents":[{"commit":"de2ad1c2885dc0548755ab16cbe4f20b8422b432","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/de2ad1c2885dc0548755ab16cbe4f20b8422b432"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-19 16:23:39.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8141afb5bea83f39864f64c927b01fa758199e79"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8141afb5bea83f39864f64c927b01fa758199e79"}]},"branch":"refs/heads/master"},"d3cca927a0011d4371621bdc88ad3caf31dcf58d":{"kind":"REWORK","_number":29,"created":"2025-12-22 20:22:46.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/29","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/29","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/29 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/29 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/29 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/29"}}},"commit":{"parents":[{"commit":"4cfae210350dcb0bf82ca2f3b4dcc23c6c3e5e9d","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4cfae210350dcb0bf82ca2f3b4dcc23c6c3e5e9d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-22 20:22:28.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d3cca927a0011d4371621bdc88ad3caf31dcf58d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d3cca927a0011d4371621bdc88ad3caf31dcf58d"}]},"branch":"refs/heads/master"},"28aed647f88955e865c57f88281398f7e2f93352":{"kind":"REWORK","_number":30,"created":"2025-12-23 19:13:26.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/30","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/30","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/30 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/30 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/30 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/30"}}},"commit":{"parents":[{"commit":"894b05ed2a9597f2fa27dba0f0d34904f52a824e","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/894b05ed2a9597f2fa27dba0f0d34904f52a824e"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-23 19:13:16.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\nfix more tests\nfix Timestamp docstrings\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/28aed647f88955e865c57f88281398f7e2f93352"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/28aed647f88955e865c57f88281398f7e2f93352"}]},"branch":"refs/heads/master"},"7d4ed41e472e34cc79240b28a1a3314808d403d1":{"kind":"REWORK","_number":31,"created":"2025-12-24 16:36:11.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/31","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/31","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/31 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/31 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/31 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/31"}}},"commit":{"parents":[{"commit":"894b05ed2a9597f2fa27dba0f0d34904f52a824e","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/894b05ed2a9597f2fa27dba0f0d34904f52a824e"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-24 16:15:40.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\nfix failing probe tests\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7d4ed41e472e34cc79240b28a1a3314808d403d1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7d4ed41e472e34cc79240b28a1a3314808d403d1"}]},"branch":"refs/heads/master"},"5b0d304ad25448f86cfbeea716101d6087d15eed":{"kind":"REWORK","_number":32,"created":"2026-01-02 15:19:52.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/32","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/32","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/32 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/32 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/32 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/32"}}},"commit":{"parents":[{"commit":"444ddad4895f7cfc11e5160d113d86f300f15b0b","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/444ddad4895f7cfc11e5160d113d86f300f15b0b"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-02 15:18:57.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5b0d304ad25448f86cfbeea716101d6087d15eed"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5b0d304ad25448f86cfbeea716101d6087d15eed"}]},"branch":"refs/heads/master"},"2f266155bd6819016690293ddd81726250aa83f7":{"kind":"REWORK","_number":33,"created":"2026-01-02 18:23:35.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/33","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/33","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/33 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/33 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/33 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/33"}}},"commit":{"parents":[{"commit":"444ddad4895f7cfc11e5160d113d86f300f15b0b","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/444ddad4895f7cfc11e5160d113d86f300f15b0b"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-02 18:22:59.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2f266155bd6819016690293ddd81726250aa83f7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2f266155bd6819016690293ddd81726250aa83f7"}]},"branch":"refs/heads/master"},"10580f6d67672d8ff0bf01a75b43778b2bc06427":{"kind":"TRIVIAL_REBASE","_number":34,"created":"2026-01-02 18:27:12.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/34","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/34","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/34 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/34 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/34 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/34"}}},"commit":{"parents":[{"commit":"36bd7966b54f9b7c4408910c3ff91d6bd8a9b9b4","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/36bd7966b54f9b7c4408910c3ff91d6bd8a9b9b4"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-02 18:27:00.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/10580f6d67672d8ff0bf01a75b43778b2bc06427"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/10580f6d67672d8ff0bf01a75b43778b2bc06427"}]},"branch":"refs/heads/master"},"665df0c40d141d1f465bd2549475db0166367d15":{"kind":"TRIVIAL_REBASE","_number":35,"created":"2026-01-05 10:38:39.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/35","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/35","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/35 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/35 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/35 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/35"}}},"commit":{"parents":[{"commit":"617fc726df7cb8caf54a631bc7f07595bd4b7480","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/617fc726df7cb8caf54a631bc7f07595bd4b7480"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-05 10:37:27.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/665df0c40d141d1f465bd2549475db0166367d15"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/665df0c40d141d1f465bd2549475db0166367d15"}]},"branch":"refs/heads/master"},"84386b50c583146290109e454994767049f06f9f":{"kind":"REWORK","_number":36,"created":"2026-01-05 16:17:50.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/36","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/36","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/36 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/36 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/36 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/36"}}},"commit":{"parents":[{"commit":"bb5ffae9d3d5dc3fe10950d1034bd80e5356b0cf","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bb5ffae9d3d5dc3fe10950d1034bd80e5356b0cf"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-05 14:34:58.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/84386b50c583146290109e454994767049f06f9f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/84386b50c583146290109e454994767049f06f9f"}]},"branch":"refs/heads/master"},"dbb873462c5a8fcd1d194e043a1393a61782ee50":{"kind":"REWORK","_number":37,"created":"2026-01-06 17:43:16.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/37","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/37","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/37 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/37 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/37 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/37"}}},"commit":{"parents":[{"commit":"ec99e8bcca8068b6a9bf17583d15baffb41c3586","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ec99e8bcca8068b6a9bf17583d15baffb41c3586"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-06 15:24:29.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/dbb873462c5a8fcd1d194e043a1393a61782ee50"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/dbb873462c5a8fcd1d194e043a1393a61782ee50"}]},"branch":"refs/heads/master"},"3690ca3f77179340acd80225bdb739d5cf6017c9":{"kind":"REWORK","_number":38,"created":"2026-01-06 18:04:45.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/38","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/38","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/38 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/38 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/38 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/38"}}},"commit":{"parents":[{"commit":"2a6341107c076ec290431db7c9e05f89d2c4720c","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2a6341107c076ec290431db7c9e05f89d2c4720c"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-06 18:03:15.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3690ca3f77179340acd80225bdb739d5cf6017c9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3690ca3f77179340acd80225bdb739d5cf6017c9"}]},"branch":"refs/heads/master"},"a6120b81b6240390f8f8b395d6c42f7862645d76":{"kind":"REWORK","_number":39,"created":"2026-01-07 12:12:42.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/39","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/39","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/39 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/39 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/39 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/39"}}},"commit":{"parents":[{"commit":"9381ddbab810802cbb475fd0d5537aa29041ff46","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9381ddbab810802cbb475fd0d5537aa29041ff46"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-07 12:03:30.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a6120b81b6240390f8f8b395d6c42f7862645d76"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a6120b81b6240390f8f8b395d6c42f7862645d76"}]},"branch":"refs/heads/master"},"78c947335ad3a0b797798ce9b98a6786ddb5219c":{"kind":"REWORK","_number":40,"created":"2026-01-07 12:30:16.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/40","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/40","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/40 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/40 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/40 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/40"}}},"commit":{"parents":[{"commit":"9381ddbab810802cbb475fd0d5537aa29041ff46","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9381ddbab810802cbb475fd0d5537aa29041ff46"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-07 12:25:08.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/78c947335ad3a0b797798ce9b98a6786ddb5219c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/78c947335ad3a0b797798ce9b98a6786ddb5219c"}]},"branch":"refs/heads/master"},"fc2a45470612f943d5fce18109c71d3a545e826c":{"kind":"REWORK","_number":41,"created":"2026-01-07 18:16:52.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/41","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/41","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/41 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/41 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/41 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/41"}}},"commit":{"parents":[{"commit":"806504fe1fbe18e316967337af92887ca952dfc5","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/806504fe1fbe18e316967337af92887ca952dfc5"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-07 14:53:54.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nCotainer DB object table rows don\u0027t retain meta or ctype timestamp\njitter so cannot resolve POST updates in the same deca-microsecond.\n\nContainer sync can only compare the jitter-less normal format of\nremote and local object timestamps, so is unable to sync objects with\nprecision less than a deca-microsecond.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fc2a45470612f943d5fce18109c71d3a545e826c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fc2a45470612f943d5fce18109c71d3a545e826c"}]},"branch":"refs/heads/master"},"8e6e1cbfead0ffe06915beeab07fef3f1d0e01de":{"kind":"REWORK","_number":42,"created":"2026-01-07 18:21:49.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/42","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/42","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/42 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/42 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/42 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/42"}}},"commit":{"parents":[{"commit":"806504fe1fbe18e316967337af92887ca952dfc5","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/806504fe1fbe18e316967337af92887ca952dfc5"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-07 18:17:58.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, remove jitter from object POST timestamps until\nthe backend servers have been enhanced to both tolerate and preserve\nthe jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8e6e1cbfead0ffe06915beeab07fef3f1d0e01de"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8e6e1cbfead0ffe06915beeab07fef3f1d0e01de"}]},"branch":"refs/heads/master"},"8da12d1f83a41779bce9ac2788660412a637691b":{"kind":"REWORK","_number":43,"created":"2026-01-13 14:18:58.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/43","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/43","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/43 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/43 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/43 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/43"}}},"commit":{"parents":[{"commit":"1631460545016036746736f712efe843d1c7c59c","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1631460545016036746736f712efe843d1c7c59c"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-13 14:18:10.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, remove jitter from object POST timestamps until\nthe backend servers have been enhanced to both tolerate and preserve\nthe jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8da12d1f83a41779bce9ac2788660412a637691b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8da12d1f83a41779bce9ac2788660412a637691b"}]},"branch":"refs/heads/master"},"06e181d7e44aefa04719ee9687e31865fbb33fd3":{"kind":"REWORK","_number":44,"created":"2026-01-14 14:51:16.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/44","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/44","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/44 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/44 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/44 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/44"}}},"commit":{"parents":[{"commit":"8aaf3c9852460ed7d76fe748abb4893f99a1d83c","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8aaf3c9852460ed7d76fe748abb4893f99a1d83c"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-14 14:25:21.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to include a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nOn disk filename encoding cannot represent the hex part of a\ncontent-type timestamp when it differs from the meta timestamp. As a\nresult, the hex part precision is lost when comparing meta files with\ncontent-type.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, remove jitter from object POST timestamps until\nthe backend servers have been enhanced to both tolerate and preserve\nthe jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/06e181d7e44aefa04719ee9687e31865fbb33fd3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/06e181d7e44aefa04719ee9687e31865fbb33fd3"}]},"branch":"refs/heads/master"},"e9bb0783cf74d43015b22910312e67ad6cb6c146":{"kind":"REWORK","_number":45,"created":"2026-01-16 17:43:41.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/45","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/45","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/45 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/45 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/45 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/45"}}},"commit":{"parents":[{"commit":"5bd6cb569705f1a8aee4796fd679ff299b7dff27","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5bd6cb569705f1a8aee4796fd679ff299b7dff27"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-16 17:42:41.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e9bb0783cf74d43015b22910312e67ad6cb6c146"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e9bb0783cf74d43015b22910312e67ad6cb6c146"}]},"branch":"refs/heads/master"},"e67e85df951dc8dfdd2cea7446c193bdc161bf27":{"kind":"REWORK","_number":46,"created":"2026-01-19 18:25:13.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/46","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/46","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/46 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/46 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/46 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/46"}}},"commit":{"parents":[{"commit":"aeaa648c52e00bf1a357db50ad1ad83a3d86eefc","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/aeaa648c52e00bf1a357db50ad1ad83a3d86eefc"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-19 18:24:55.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e67e85df951dc8dfdd2cea7446c193bdc161bf27"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e67e85df951dc8dfdd2cea7446c193bdc161bf27"}]},"branch":"refs/heads/master"},"585b317079397185e6293283a32020529f597063":{"kind":"REWORK","_number":47,"created":"2026-01-20 17:05:12.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/47","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/47","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/47 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/47 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/47 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/47"}}},"commit":{"parents":[{"commit":"5a7cb15186f0dd60bbb79623cfd69622f1c5da28","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5a7cb15186f0dd60bbb79623cfd69622f1c5da28"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-20 15:25:16.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/585b317079397185e6293283a32020529f597063"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/585b317079397185e6293283a32020529f597063"}]},"branch":"refs/heads/master"},"f96a0730510d2094dec1636b5111b403a6366380":{"kind":"TRIVIAL_REBASE","_number":48,"created":"2026-01-21 10:11:20.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/48","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/48","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/48 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/48 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/48 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/48"}}},"commit":{"parents":[{"commit":"092d5a5a5658c746d967493b81740e869ea77bf2","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/092d5a5a5658c746d967493b81740e869ea77bf2"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-01-21 10:10:08.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f96a0730510d2094dec1636b5111b403a6366380"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f96a0730510d2094dec1636b5111b403a6366380"}]},"branch":"refs/heads/master"},"c45563740c4d84db48381e8038d660879b4c30dc":{"kind":"TRIVIAL_REBASE","_number":49,"created":"2026-01-29 03:56:58.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/49","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/49","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/49 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/49 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/49 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/49"}}},"commit":{"parents":[{"commit":"c12de992b0bdf36e3fc2ca3fb6b828fc0f2cdd69","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c12de992b0bdf36e3fc2ca3fb6b828fc0f2cdd69"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2026-01-29 03:55:28.000000000","tz":660},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c45563740c4d84db48381e8038d660879b4c30dc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c45563740c4d84db48381e8038d660879b4c30dc"}]},"branch":"refs/heads/master"},"57d83462328c7d6a9cde6288fcaccad14e0a3711":{"kind":"REWORK","_number":50,"created":"2026-02-10 18:55:59.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/50","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/50","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/50 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/50 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/50 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/50"}}},"commit":{"parents":[{"commit":"9caa17685df58d29e13f3a0d89f7a3a7ad0f9044","subject":"Stop using normalize_timestamp","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9caa17685df58d29e13f3a0d89f7a3a7ad0f9044"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-10 18:55:42.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\nconstrain v1 timestamp offset to 0xffffff\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/57d83462328c7d6a9cde6288fcaccad14e0a3711"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/57d83462328c7d6a9cde6288fcaccad14e0a3711"}]},"branch":"refs/heads/master"},"25bdbf9676953b49ce5f3d7ff8056f87bac9f739":{"kind":"TRIVIAL_REBASE","_number":51,"created":"2026-02-11 19:07:43.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/51","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/51","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/51 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/51 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/51 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/51"}}},"commit":{"parents":[{"commit":"7a4aee28a52741128bd1268b15effe003fc6c153","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7a4aee28a52741128bd1268b15effe003fc6c153"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-11 18:47:22.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\nconstrain v1 timestamp offset to 0xffffff\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/25bdbf9676953b49ce5f3d7ff8056f87bac9f739"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/25bdbf9676953b49ce5f3d7ff8056f87bac9f739"}]},"branch":"refs/heads/master"},"0e79af4aa0471ef114dbc56669537c7aef39f404":{"kind":"REWORK","_number":52,"created":"2026-02-12 19:09:11.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/52","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/52","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/52 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/52 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/52 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/52"}}},"commit":{"parents":[{"commit":"68014f782523fc463f314435c730fba2c2ac0b76","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/68014f782523fc463f314435c730fba2c2ac0b76"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-12 18:18:50.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\npossibly constrain v1 timestamp offset to 0xffffff\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0e79af4aa0471ef114dbc56669537c7aef39f404"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0e79af4aa0471ef114dbc56669537c7aef39f404"}]},"branch":"refs/heads/master"},"1964da5195e0d4fe96e89e98d418d1ded010a9ad":{"kind":"REWORK","_number":53,"created":"2026-02-13 15:48:12.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/53","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/53","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/53 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/53 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/53 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/53"}}},"commit":{"parents":[{"commit":"458e63b686ce0204e40dafa7487011c539bcf45d","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/458e63b686ce0204e40dafa7487011c539bcf45d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-13 15:27:12.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\ncheck normalize_delete_at_timestamp\ncheck use of Timestamp.short\npossibly constrain v1 timestamp offset to 0xffffff\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nI think there could be repeated (ssync) replication until object\nservers are all upgraded because meta files aren\u0027t handled\nconsistently w.r.t. content type timestamps.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1964da5195e0d4fe96e89e98d418d1ded010a9ad"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1964da5195e0d4fe96e89e98d418d1ded010a9ad"}]},"branch":"refs/heads/master"},"632c8359d8d5c3c3908cbe32a53e40b922acea50":{"kind":"REWORK","_number":54,"created":"2026-02-16 17:42:54.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/54","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/54","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/54 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/54 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/54 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/54"}}},"commit":{"parents":[{"commit":"bd39a2dee98c79794a586c2259099442d9f2b9c5","subject":"timestamps: add SimpleTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bd39a2dee98c79794a586c2259099442d9f2b9c5"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-16 17:42:24.000000000","tz":0},"subject":"WIP Timestamp: add random jitter to offset field","message":"WIP Timestamp: add random jitter to offset field\n\nTODO:\n - possibly constrain v1 timestamp offset to 0xffffff\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes are required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/632c8359d8d5c3c3908cbe32a53e40b922acea50"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/632c8359d8d5c3c3908cbe32a53e40b922acea50"}]},"branch":"refs/heads/master"},"70256a85180c445a1d513c846d812d125d01a2b8":{"kind":"REWORK","_number":55,"created":"2026-02-18 17:13:51.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/55","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/55","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/55 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/55 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/55 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/55"}}},"commit":{"parents":[{"commit":"2df6b46445869d551a226c9071597575ec6f1170","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2df6b46445869d551a226c9071597575ec6f1170"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-18 17:13:04.000000000","tz":0},"subject":"Timestamp: add random jitter to the hex field","message":"Timestamp: add random jitter to the hex field\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nWith this patch the new jitter component is only applied to object PUT\nrequests.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format; jitter is not added\nretrospectively to existing timestamps.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for existing Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/70256a85180c445a1d513c846d812d125d01a2b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/70256a85180c445a1d513c846d812d125d01a2b8"}]},"branch":"refs/heads/master"},"30b13736f4e091e7ceeb6c472cf10b8ba4631ab5":{"kind":"REWORK","_number":56,"created":"2026-02-19 13:13:14.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/56","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/56","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/56 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/56 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/56 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/56"}}},"commit":{"parents":[{"commit":"4494e43b26e8a374b66ecaa80897ce9c630514d9","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4494e43b26e8a374b66ecaa80897ce9c630514d9"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-19 13:12:28.000000000","tz":0},"subject":"Timestamp: add random jitter to the hex field","message":"Timestamp: add random jitter to the hex field\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp.\n\nWith this patch the new jitter component is only applied to client\nobject PUT requests.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format; jitter is not added\nretrospectively to existing timestamps.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for existing Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/30b13736f4e091e7ceeb6c472cf10b8ba4631ab5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/30b13736f4e091e7ceeb6c472cf10b8ba4631ab5"}]},"branch":"refs/heads/master"},"eba8d9d87a87cde66f2f7578cde519c5846a834b":{"kind":"REWORK","_number":57,"created":"2026-02-19 15:35:08.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/57","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/57","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/57 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/57 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/57 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/57"}}},"commit":{"parents":[{"commit":"6941e0c22708f5a73e900146bf9bcd033a748334","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6941e0c22708f5a73e900146bf9bcd033a748334"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-19 15:34:02.000000000","tz":0},"subject":"Introduce v2 Timestamps with jitter","message":"Introduce v2 Timestamps with jitter\n\nTODO: add list of requests with jitter in commit message.\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format; jitter is not added\nretrospectively to existing timestamps.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for existing Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/eba8d9d87a87cde66f2f7578cde519c5846a834b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/eba8d9d87a87cde66f2f7578cde519c5846a834b"}]},"branch":"refs/heads/master"},"fdda21a7bcfabbd6b5be9c80e6df17ed45886b1a":{"kind":"TRIVIAL_REBASE","_number":58,"created":"2026-02-19 17:44:50.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/58","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/58","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/58 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/58 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/58 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/58"}}},"commit":{"parents":[{"commit":"b190af8eb99b196201c8cb98bfae9119f276d887","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b190af8eb99b196201c8cb98bfae9119f276d887"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-19 17:44:12.000000000","tz":0},"subject":"Introduce v2 Timestamps with jitter","message":"Introduce v2 Timestamps with jitter\n\nTODO: add list of requests with jitter in commit message.\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format; jitter is not added\nretrospectively to existing timestamps.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for existing Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fdda21a7bcfabbd6b5be9c80e6df17ed45886b1a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fdda21a7bcfabbd6b5be9c80e6df17ed45886b1a"}]},"branch":"refs/heads/master"},"48f938c7b9f8a5666f830b1a81552c808376cc7d":{"kind":"TRIVIAL_REBASE","_number":59,"created":"2026-02-23 03:45:31.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/59","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/59","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/59 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/59 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/59 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/59"}}},"commit":{"parents":[{"commit":"b90a92f31a53ffd6b29ff01d9120ac7064f529b5","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b90a92f31a53ffd6b29ff01d9120ac7064f529b5"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2026-02-23 03:37:41.000000000","tz":660},"subject":"Introduce v2 Timestamps with jitter","message":"Introduce v2 Timestamps with jitter\n\nTODO: add list of requests with jitter in commit message.\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nTimestamps with jitter will now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present (2 ~ version).\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy Timestamps retain their internal format; jitter is not added\nretrospectively to existing timestamps.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for existing Timestamps that may have offset values.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/48f938c7b9f8a5666f830b1a81552c808376cc7d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/48f938c7b9f8a5666f830b1a81552c808376cc7d"}]},"branch":"refs/heads/master"},"026fe0c57bae6f6bef354f2e627120834f9de446":{"kind":"REWORK","_number":60,"created":"2026-02-23 19:06:36.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/60","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/60","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/60 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/60 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/60 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/60"}}},"commit":{"parents":[{"commit":"75f75c2b3cd2548bb765bcef6c2497a874e719dd","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/75f75c2b3cd2548bb765bcef6c2497a874e719dd"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-23 18:09:56.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nTODO: add list of requests with jitter in commit message.\n\nThis patch modifies the Timestamp class to support an optional\nrandomly generated jitter component that increases the effective\nprecision of the Timestamp. The jitter is encoded in the 16 digit hex\npart of the timestamp added in the Related-Change.\n\nTimestamps now have the following internal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nTimestamp strings whose 16 digit hex part (offset) starts with 0 or 1\nwill still be parsed as legacy Timestamps. However, with this\npatch, Timestamp strings whose hex part starts with a digit greater\nthan 1 (i.e. offsets greater than 0x1fffffffffffffff) will be parsed\nas modern Timestamps.\n\nThe offset attribute of a Timestamp with jitter is constrained to 6\nhex digits.\n\nLegacy timestamp strings will be parsed as before; jitter is not added\nretrospectively to existing timestamps when they are parsed.\n\nThe hex part range 0x0000000000000000 to 0x1fffffffffffffff is\nreserved for legacy Timestamps that may have offset values larger than\nthe maximum offset allowed for Timestamps with jitter.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nImpacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter is NOT applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/026fe0c57bae6f6bef354f2e627120834f9de446"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/026fe0c57bae6f6bef354f2e627120834f9de446"}]},"branch":"refs/heads/master"},"3b4cdeed1c1f9456e04bed2f54e644d342128b85":{"kind":"REWORK","_number":61,"created":"2026-02-24 18:04:17.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/61","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/61","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/61 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/61 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/61 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/61"}}},"commit":{"parents":[{"commit":"03bc65a6273824041654ca95b35481b42a1e2e4b","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/03bc65a6273824041654ca95b35481b42a1e2e4b"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-24 17:53:43.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal formt will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3b4cdeed1c1f9456e04bed2f54e644d342128b85"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3b4cdeed1c1f9456e04bed2f54e644d342128b85"}]},"branch":"refs/heads/master"},"a70327460b04baf94cb663ec9ee6bd91784e7132":{"kind":"REWORK","_number":62,"created":"2026-02-26 17:52:51.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/62","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/62","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/62 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/62 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/62 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/62"}}},"commit":{"parents":[{"commit":"c8343131b0d830f5be20c6a6ae21267ecfa93d7d","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c8343131b0d830f5be20c6a6ae21267ecfa93d7d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-26 16:39:37.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal formt will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a70327460b04baf94cb663ec9ee6bd91784e7132"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a70327460b04baf94cb663ec9ee6bd91784e7132"}]},"branch":"refs/heads/master"},"bce3e42d3f31422218ab8b7a2130832870a3bf07":{"kind":"REWORK","_number":63,"created":"2026-02-26 18:48:23.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/63","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/63","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/63 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/63 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/63 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/63"}}},"commit":{"parents":[{"commit":"0bdde42c52bb7499db343b3dbff021b629b1340f","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0bdde42c52bb7499db343b3dbff021b629b1340f"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-26 18:47:13.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal formt will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bce3e42d3f31422218ab8b7a2130832870a3bf07"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bce3e42d3f31422218ab8b7a2130832870a3bf07"}]},"branch":"refs/heads/master"},"7c7d2168013b8c6f6083dc74f42a456eea11ca7e":{"kind":"REWORK","_number":64,"created":"2026-02-27 14:50:10.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/64","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/64","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/64 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/64 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/64 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/64"}}},"commit":{"parents":[{"commit":"2c928272ee3cf4fe70b51c97b0ea0cc92441cb44","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2c928272ee3cf4fe70b51c97b0ea0cc92441cb44"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-27 14:47:53.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal formt will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7c7d2168013b8c6f6083dc74f42a456eea11ca7e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7c7d2168013b8c6f6083dc74f42a456eea11ca7e"}]},"branch":"refs/heads/master"},"4713725f37e090c9ea96a7f4dd2707cacb72b9f6":{"kind":"REWORK","_number":65,"created":"2026-02-27 17:04:02.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/65","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/65","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/65 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/65 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/65 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/65"}}},"commit":{"parents":[{"commit":"2c928272ee3cf4fe70b51c97b0ea0cc92441cb44","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2c928272ee3cf4fe70b51c97b0ea0cc92441cb44"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-02-27 15:42:51.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal formt will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4713725f37e090c9ea96a7f4dd2707cacb72b9f6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4713725f37e090c9ea96a7f4dd2707cacb72b9f6"}]},"branch":"refs/heads/master"},"9ea0d0b5909fe47ea1c53fb8b84a350c566b2dca":{"kind":"REWORK","_number":66,"created":"2026-03-02 14:49:05.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/66","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/66","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/66 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/66 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/66 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/66"}}},"commit":{"parents":[{"commit":"bea356d47e1e96aacc5b2ac33ed820c137f15bb3","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bea356d47e1e96aacc5b2ac33ed820c137f15bb3"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-02 12:57:16.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9ea0d0b5909fe47ea1c53fb8b84a350c566b2dca"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9ea0d0b5909fe47ea1c53fb8b84a350c566b2dca"}]},"branch":"refs/heads/master"},"4b985199ba1823f1aeb42b7ad60593add0dea710":{"kind":"TRIVIAL_REBASE","_number":67,"created":"2026-03-03 20:59:26.000000000","uploader":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"ref":"refs/changes/38/967738/67","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/67","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/67 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/67 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/67 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/67"}}},"commit":{"parents":[{"commit":"6600749df64533239163d135d30172b0c1a7bd63","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6600749df64533239163d135d30172b0c1a7bd63"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-03-03 20:56:10.000000000","tz":-480},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4b985199ba1823f1aeb42b7ad60593add0dea710"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4b985199ba1823f1aeb42b7ad60593add0dea710"}]},"branch":"refs/heads/master"},"83cad733ff167d1ae06a8299ac27886fa16020e9":{"kind":"TRIVIAL_REBASE","_number":68,"created":"2026-03-06 15:45:36.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/68","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/68","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/68 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/68 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/68 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/68"}}},"commit":{"parents":[{"commit":"2d726b729d23173fdbef57500373100e9e5913d7","subject":"sq: ts FIX: autocreate db\u0027s with NormalTimestamps","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2d726b729d23173fdbef57500373100e9e5913d7"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-06 15:45:17.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/83cad733ff167d1ae06a8299ac27886fa16020e9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/83cad733ff167d1ae06a8299ac27886fa16020e9"}]},"branch":"refs/heads/master"},"3a0e181af341c32af0aea60566c27e10b8bb9514":{"kind":"TRIVIAL_REBASE","_number":69,"created":"2026-03-06 15:48:21.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/69","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/69","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/69 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/69 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/69 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/69"}}},"commit":{"parents":[{"commit":"c56ad1a8fff89b93c750c0105011e2af2b0a498a","subject":"sq: ts FIX: autocreate db\u0027s with NormalTimestamps","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c56ad1a8fff89b93c750c0105011e2af2b0a498a"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-06 15:48:10.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3a0e181af341c32af0aea60566c27e10b8bb9514"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3a0e181af341c32af0aea60566c27e10b8bb9514"}]},"branch":"refs/heads/master"},"e84c2ee59ab811e94da030d0170d38fe0367a9ad":{"kind":"REWORK","_number":70,"created":"2026-03-09 12:32:55.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/70","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/70","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/70 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/70 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/70 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/70"}}},"commit":{"parents":[{"commit":"99a0a9e73963e06ffd30be39ba058f56f16f2ae2","subject":"sq: ts FIX: autocreate db\u0027s with NormalTimestamps","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/99a0a9e73963e06ffd30be39ba058f56f16f2ae2"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-09 12:32:20.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e84c2ee59ab811e94da030d0170d38fe0367a9ad"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e84c2ee59ab811e94da030d0170d38fe0367a9ad"}]},"branch":"refs/heads/master"},"5291c4e7fea0704158cb7ff54608bed8ebfe23b8":{"kind":"TRIVIAL_REBASE","_number":71,"created":"2026-03-09 13:12:34.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/71","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/71","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/71 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/71 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/71 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/71"}}},"commit":{"parents":[{"commit":"1899ac3702bbfa724c9fccd6b06a19627f91ad51","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1899ac3702bbfa724c9fccd6b06a19627f91ad51"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-09 13:12:14.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5291c4e7fea0704158cb7ff54608bed8ebfe23b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5291c4e7fea0704158cb7ff54608bed8ebfe23b8"}]},"branch":"refs/heads/master"},"95c1f67e15927180399b6a41f12f5675a620e4ed":{"kind":"REWORK","_number":72,"created":"2026-03-09 14:26:47.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/72","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/72","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/72 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/72 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/72 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/72"}}},"commit":{"parents":[{"commit":"1899ac3702bbfa724c9fccd6b06a19627f91ad51","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1899ac3702bbfa724c9fccd6b06a19627f91ad51"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-09 14:26:23.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/95c1f67e15927180399b6a41f12f5675a620e4ed"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/95c1f67e15927180399b6a41f12f5675a620e4ed"}]},"branch":"refs/heads/master"},"57c4bf8d7ad2d61e5d4ae92556cd88532e1e63f9":{"kind":"REWORK","_number":73,"created":"2026-03-10 16:53:30.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/73","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/73","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/73 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/73 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/73 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/73"}}},"commit":{"parents":[{"commit":"26432faab511caaa3a7b4ad12c13ea69e17d7b0a","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/26432faab511caaa3a7b4ad12c13ea69e17d7b0a"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-10 16:53:08.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/57c4bf8d7ad2d61e5d4ae92556cd88532e1e63f9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/57c4bf8d7ad2d61e5d4ae92556cd88532e1e63f9"}]},"branch":"refs/heads/master"},"3860917a3f03d7664a26683b0f5a9575a0b9de04":{"kind":"REWORK","_number":74,"created":"2026-03-16 18:48:01.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/74","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/74","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/74 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/74 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/74 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/74"}}},"commit":{"parents":[{"commit":"ae06117bd612bf96e288c7ad9d9a1eced9f4e63c","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ae06117bd612bf96e288c7ad9d9a1eced9f4e63c"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-16 13:47:24.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3860917a3f03d7664a26683b0f5a9575a0b9de04"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3860917a3f03d7664a26683b0f5a9575a0b9de04"}]},"branch":"refs/heads/master"},"29cc5848ca993ea5d3d11eb2019b5dc56dac281d":{"kind":"REWORK","_number":75,"created":"2026-03-17 15:34:31.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/75","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/75","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/75 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/75 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/75 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/75"}}},"commit":{"parents":[{"commit":"9444127fc8e799d3db1d4c6ee042c965ea2a1262","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9444127fc8e799d3db1d4c6ee042c965ea2a1262"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-17 15:29:52.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp. The jitter is encoded in the 16 digit hex part of the\ntimestamp added in the Related-Change.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that include jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now() will return a Timestamp with the following internal\nformat:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor Timestamps with jitter, Timestamp.internal will always return\nthe full string representation shown above. Timestamp.normal continues\nto return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method\npreviously returned Timestamps with no hex part whose internal form\nwould have only the float part e.g. 1234567890.12345. With this patch,\nthe Timestamp returned will always have a hex part with random jitter,\nand the internal format will always be of the extended form\ne.g. 1234567890.12345_2abcdef123000000.\n\nCallers wishing to construct a Timestamp with no jitter should pass a\nnormal format string value to the constructor. Alternatively, and\nlikely more appropriately, consider using NormalTimestamp(\u003cfloat\u003e).\n\nCallers using Timestamp() or Timestamp.now() to generate an\nX-Timestamp header value should instead use\nswob.Request.ensure_x_timestamp().\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/29cc5848ca993ea5d3d11eb2019b5dc56dac281d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/29cc5848ca993ea5d3d11eb2019b5dc56dac281d"}]},"branch":"refs/heads/master"},"d09e4b5579a3db80f8bfee8486b9b9d7b2b00da7":{"kind":"REWORK","_number":76,"created":"2026-03-17 15:56:21.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/76","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/76","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/76 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/76 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/76 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/76"}}},"commit":{"parents":[{"commit":"9444127fc8e799d3db1d4c6ee042c965ea2a1262","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9444127fc8e799d3db1d4c6ee042c965ea2a1262"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-17 15:35:09.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d09e4b5579a3db80f8bfee8486b9b9d7b2b00da7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d09e4b5579a3db80f8bfee8486b9b9d7b2b00da7"}]},"branch":"refs/heads/master"},"1d6813c656835bc81acba9504c428c5c41e988c8":{"kind":"TRIVIAL_REBASE","_number":77,"created":"2026-03-18 14:50:56.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/77","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/77","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/77 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/77 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/77 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/77"}}},"commit":{"parents":[{"commit":"297da3cb38579e724d2fde5f165ad23b25615bf6","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/297da3cb38579e724d2fde5f165ad23b25615bf6"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-18 14:50:41.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1d6813c656835bc81acba9504c428c5c41e988c8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1d6813c656835bc81acba9504c428c5c41e988c8"}]},"branch":"refs/heads/master"},"eddb2f1810577c3527eae25ba6666c1c61013648":{"kind":"REWORK","_number":78,"created":"2026-03-24 18:12:53.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/78","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/78","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/78 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/78 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/78 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/78"}}},"commit":{"parents":[{"commit":"ae0ef5d59cc824b2ac05c717a79aff61f86999de","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ae0ef5d59cc824b2ac05c717a79aff61f86999de"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-24 18:12:34.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/eddb2f1810577c3527eae25ba6666c1c61013648"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/eddb2f1810577c3527eae25ba6666c1c61013648"}]},"branch":"refs/heads/master"},"426995ff22bdce29ad8e7b5d2a38e405c64a0dc8":{"kind":"REWORK","_number":79,"created":"2026-03-31 14:54:16.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/79","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/79","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/79 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/79 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/79 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/79"}}},"commit":{"parents":[{"commit":"59f4a402f9a015b969dbbf16ee1fee48b58ff37a","subject":"tests: fix timestamp to version_id conversions","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/59f4a402f9a015b969dbbf16ee1fee48b58ff37a"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-03-31 14:53:56.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/426995ff22bdce29ad8e7b5d2a38e405c64a0dc8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/426995ff22bdce29ad8e7b5d2a38e405c64a0dc8"}]},"branch":"refs/heads/master"},"4c3ccb43607b1f3f2ec1699442033039372b96a9":{"kind":"TRIVIAL_REBASE","_number":80,"created":"2026-04-07 13:17:09.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/80","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/80","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/80 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/80 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/80 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/80"}}},"commit":{"parents":[{"commit":"963b0b1eedc2b0717c5c58ed3dfe9fa9bfad3af5","subject":"versioning: use x-backend-timestamp as source version","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/963b0b1eedc2b0717c5c58ed3dfe9fa9bfad3af5"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-07 13:16:58.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4c3ccb43607b1f3f2ec1699442033039372b96a9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4c3ccb43607b1f3f2ec1699442033039372b96a9"}]},"branch":"refs/heads/master"},"d29d7691b8990ff036b7bad6ef6deb54bc0d53b4":{"kind":"TRIVIAL_REBASE","_number":81,"created":"2026-04-09 09:28:15.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/81","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/81","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/81 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/81 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/81 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/81"}}},"commit":{"parents":[{"commit":"fa792e5ad5eec34d69c624136d995c5f9ff689b1","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fa792e5ad5eec34d69c624136d995c5f9ff689b1"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-09 09:23:07.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d29d7691b8990ff036b7bad6ef6deb54bc0d53b4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/d29d7691b8990ff036b7bad6ef6deb54bc0d53b4"}]},"branch":"refs/heads/master"},"e1907b77175b4fa3b136054e70dad908d9b248ac":{"kind":"TRIVIAL_REBASE","_number":82,"created":"2026-04-13 09:47:51.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/82","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/82","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/82 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/82 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/82 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/82"}}},"commit":{"parents":[{"commit":"5c8af87ca882ef822fe675f5a2cead1180a210b3","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5c8af87ca882ef822fe675f5a2cead1180a210b3"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-13 09:47:51.000000000","tz":0},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e1907b77175b4fa3b136054e70dad908d9b248ac"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e1907b77175b4fa3b136054e70dad908d9b248ac"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"ours":"d29d7691b8990ff036b7bad6ef6deb54bc0d53b4","theirs":"5c8af87ca882ef822fe675f5a2cead1180a210b3","contains_conflicts":false}},"92a826cfb0eedf70930c681aafc12e5459766c51":{"kind":"TRIVIAL_REBASE","_number":83,"created":"2026-04-14 15:10:38.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/83","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/83","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/83 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/83 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/83 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/83"}}},"commit":{"parents":[{"commit":"2710b1ff9fc434b41f2d8427e864451bd2c064d7","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2710b1ff9fc434b41f2d8427e864451bd2c064d7"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-14 15:10:14.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/92a826cfb0eedf70930c681aafc12e5459766c51"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/92a826cfb0eedf70930c681aafc12e5459766c51"}]},"branch":"refs/heads/master"},"7658b96a645f31e2bc90d963f7b459df0489ae92":{"kind":"REWORK","_number":84,"created":"2026-04-16 15:48:27.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/84","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/84","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/84 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/84 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/84 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/84"}}},"commit":{"parents":[{"commit":"1ad91cfb4ae9958f14d885ebe30e5450819c6a7e","subject":"sq? timestamps: use NormalTimestamp.internal format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1ad91cfb4ae9958f14d885ebe30e5450819c6a7e"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-16 15:44:49.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7658b96a645f31e2bc90d963f7b459df0489ae92"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7658b96a645f31e2bc90d963f7b459df0489ae92"}]},"branch":"refs/heads/master"},"c3dcbd4e8e3e0ed9f9f2e57109d62838a287791f":{"kind":"NO_CHANGE","_number":85,"created":"2026-04-16 15:49:05.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/85","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/85","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/85 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/85 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/85 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/85"}}},"commit":{"parents":[{"commit":"7b5c965238ddf7a43f69684074ea3a98e53e7efe","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7b5c965238ddf7a43f69684074ea3a98e53e7efe"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-16 15:48:53.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c3dcbd4e8e3e0ed9f9f2e57109d62838a287791f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c3dcbd4e8e3e0ed9f9f2e57109d62838a287791f"}]},"branch":"refs/heads/master"},"07d2788cffd993bbb2422c8e6689dcf7c9e3ee3f":{"kind":"TRIVIAL_REBASE","_number":86,"created":"2026-04-16 15:58:13.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/86","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/86","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/86 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/86 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/86 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/86"}}},"commit":{"parents":[{"commit":"cf5df8fac80ff354ee8e6369dbf18a5e1fd75343","subject":"timestamps: add NormalTimestamp for ShardRanges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/cf5df8fac80ff354ee8e6369dbf18a5e1fd75343"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-16 15:57:33.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/07d2788cffd993bbb2422c8e6689dcf7c9e3ee3f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/07d2788cffd993bbb2422c8e6689dcf7c9e3ee3f"}]},"branch":"refs/heads/master"},"5fcc81d447adf1afd164197182ed7431de474a88":{"kind":"REWORK","_number":87,"created":"2026-05-07 10:32:45.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/87","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/87","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/87 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/87 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/87 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/87"}}},"commit":{"parents":[{"commit":"ae89a535aadad6d77c07c12ef4b58eb4470decdb","subject":"object-server: stop using normalize_timestamp","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ae89a535aadad6d77c07c12ef4b58eb4470decdb"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-05-07 10:32:30.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5fcc81d447adf1afd164197182ed7431de474a88"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5fcc81d447adf1afd164197182ed7431de474a88"}]},"branch":"refs/heads/master"},"40fcb7ddb00e81f5c29d8d57221ce021d748dfec":{"kind":"REWORK","_number":88,"created":"2026-05-12 23:10:36.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/38/967738/88","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/88","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/88 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/88 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/88 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/88"}}},"commit":{"parents":[{"commit":"33967853276f0987a58e5b3aca450173adadc064","subject":"timestamps: check offset is an integer during construction","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/33967853276f0987a58e5b3aca450173adadc064"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-05-12 23:05:45.000000000","tz":-300},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/40fcb7ddb00e81f5c29d8d57221ce021d748dfec"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/40fcb7ddb00e81f5c29d8d57221ce021d748dfec"}]},"branch":"refs/heads/master"},"78c1a0586d612c83beca33a69867cf86096c1f19":{"kind":"REWORK","_number":89,"created":"2026-05-13 22:21:21.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/38/967738/89","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/89","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/89 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/89 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/89 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/89"}}},"commit":{"parents":[{"commit":"ada6585714967f3cfd0f78248ca8860a756b583d","subject":"object-server: raise 500 on ec timestamp collision","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ada6585714967f3cfd0f78248ca8860a756b583d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-05-13 21:52:15.000000000","tz":-300},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/78c1a0586d612c83beca33a69867cf86096c1f19"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/78c1a0586d612c83beca33a69867cf86096c1f19"}]},"branch":"refs/heads/master"},"e07563a2dc0a5fb99e1557d0055f961efcdc7044":{"kind":"REWORK","_number":90,"created":"2026-05-15 10:44:31.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/90","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/90","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/90 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/90 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/90 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/90"}}},"commit":{"parents":[{"commit":"ada6585714967f3cfd0f78248ca8860a756b583d","subject":"object-server: raise 500 on ec timestamp collision","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ada6585714967f3cfd0f78248ca8860a756b583d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-05-15 10:43:30.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e07563a2dc0a5fb99e1557d0055f961efcdc7044"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e07563a2dc0a5fb99e1557d0055f961efcdc7044"}]},"branch":"refs/heads/master"},"cd94a8f42ddb17d227d58d841340460f93e7143e":{"kind":"REWORK","_number":91,"created":"2026-05-21 07:12:44.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/91","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/91","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/91 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/91 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/91 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/91"}}},"commit":{"parents":[{"commit":"9f7411de74169e38d642d31869f25df2653ce159","subject":"object-server: raise 500 on ec timestamp collision","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9f7411de74169e38d642d31869f25df2653ce159"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2026-05-21 07:11:47.000000000","tz":600},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/cd94a8f42ddb17d227d58d841340460f93e7143e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/cd94a8f42ddb17d227d58d841340460f93e7143e"}]},"branch":"refs/heads/master"},"be6009a882f9d9fc9ff2695928df6b0442dc53f3":{"kind":"REWORK","_number":92,"created":"2026-06-01 09:53:47.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/92","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/92","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/92 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/92 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/92 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/92"}}},"commit":{"parents":[{"commit":"c189d64890ed12f193f7d29248a0315cafc7ab37","subject":"object-server: raise 500 on ec timestamp collision","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c189d64890ed12f193f7d29248a0315cafc7ab37"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-06-01 09:52:10.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/be6009a882f9d9fc9ff2695928df6b0442dc53f3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/be6009a882f9d9fc9ff2695928df6b0442dc53f3"}]},"branch":"refs/heads/master"},"f9a2b30eed13bafec12fd14971a5fc2db4818af3":{"kind":"REWORK","_number":93,"created":"2026-06-26 07:45:17.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/38/967738/93","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/93","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/93 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/93 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/93 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/93"}}},"commit":{"parents":[{"commit":"357d37635324eb69cf9e5ee4fde5f3ee4f86d37d","subject":"object-server: raise 500 on ec timestamp collision","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/357d37635324eb69cf9e5ee4fde5f3ee4f86d37d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2026-06-26 07:44:46.000000000","tz":600},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f9a2b30eed13bafec12fd14971a5fc2db4818af3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f9a2b30eed13bafec12fd14971a5fc2db4818af3"}]},"branch":"refs/heads/master"},"b7a94f07f4efb6f7ba3eac470c0cd9e90bfe6de1":{"kind":"REWORK","_number":94,"created":"2026-06-29 20:22:22.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/38/967738/94","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/94","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/94 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/94 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/94 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/94"}}},"commit":{"parents":[{"commit":"357d37635324eb69cf9e5ee4fde5f3ee4f86d37d","subject":"object-server: raise 500 on ec timestamp collision","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/357d37635324eb69cf9e5ee4fde5f3ee4f86d37d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-06-29 20:20:18.000000000","tz":-300},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b7a94f07f4efb6f7ba3eac470c0cd9e90bfe6de1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b7a94f07f4efb6f7ba3eac470c0cd9e90bfe6de1"}]},"branch":"refs/heads/master"},"bd88479b25198d4ecd2feb346143007908865548":{"kind":"REWORK","_number":95,"created":"2026-06-29 22:28:14.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/38/967738/95","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/95","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/95 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/95 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/95 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/95"}}},"commit":{"parents":[{"commit":"357d37635324eb69cf9e5ee4fde5f3ee4f86d37d","subject":"object-server: raise 500 on ec timestamp collision","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/357d37635324eb69cf9e5ee4fde5f3ee4f86d37d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-06-29 22:27:58.000000000","tz":-300},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bd88479b25198d4ecd2feb346143007908865548"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/bd88479b25198d4ecd2feb346143007908865548"}]},"branch":"refs/heads/master"},"b995a31d3197763edfc0e6a8c5e9468f3161bb8a":{"kind":"REWORK","_number":96,"created":"2026-06-30 11:29:56.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/96","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/96","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/96 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/96 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/96 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/96"}}},"commit":{"parents":[{"commit":"357d37635324eb69cf9e5ee4fde5f3ee4f86d37d","subject":"object-server: raise 500 on ec timestamp collision","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/357d37635324eb69cf9e5ee4fde5f3ee4f86d37d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-06-30 11:28:57.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b995a31d3197763edfc0e6a8c5e9468f3161bb8a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b995a31d3197763edfc0e6a8c5e9468f3161bb8a"}]},"branch":"refs/heads/master"},"91120e58800875c79ff8493cd5acc6ab0bae04de":{"kind":"REWORK","_number":97,"created":"2026-07-06 13:30:47.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/38/967738/97","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/38/967738/97","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/97 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/97 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/38/967738/97 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/38/967738/97"}}},"commit":{"parents":[{"commit":"083c4b89e893cb1f7278b82830c30ee07e3e3189","subject":"object-server: raise 500 on ec timestamp collision","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/083c4b89e893cb1f7278b82830c30ee07e3e3189"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2025-12-18 11:42:13.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-07-06 13:29:50.000000000","tz":60},"subject":"Introduce a jitter component to Timestamp","message":"Introduce a jitter component to Timestamp\n\nThis patch modifies the Timestamp class to support a randomly\ngenerated jitter component that increases the effective precision of\nthe Timestamp in order to avoid timestamp collisions when requests\narrive in the same deca-microsecond. The jitter is encoded in the 16\ndigit hex part of the timestamp that was added in the Related-Change.\n\nTo maintain backwards compatibility, the Timestamp class will only add\njitter to the hex part when the constructor is called with a new\nargument \u0027version\u003d2\u0027. However, newly generated Timestamps should\nhenceforth be constructed with \u0027version\u003d2\u0027. Callers that require a\ntimestamp with no hex part should use NormalTimestamp instead.\n\nTo isolate callers from the details of the Timestamp constructor, a\nnew function \u0027timestamp2()\u0027 is introduced which will return a freshly\ngenerated version 2 Timestamp, with jitter, in the current\ndeca-microsecond. A new \u0027generate_timestamp()\u0027 function is also\nintroduced which will return a timestamp of the type appropriate for a\ngiven request type.\n\nWith this patch, the following request types will have X-Timestamp\nheaders that are version 2 Timestamps with jitter:\n\n* object PUT requests\n* object DELETE requests that are sent by the reconciler\n* container shard GET requests that are spawned by object PUTs\n\nOther request types, particularly object POSTs (see below), do not yet\nhave jitter included in their X-Timestamp headers.\n\nObject servers and container object tables cannot yet accurately\nrecord the finer precision of timestamp jitter for user metadata and\ncontent-type updates that are POST\u0027ed to an object. Furthermore,\nbackend server changes will be required to prevent jitter in POST\ntimestamps causing on-disk file naming inconsistencies between\nreplicas. Therefore, jitter cannot applied to object POST timestamps\nuntil the backend servers have been enhanced to both tolerate and\npreserve the jitter by future work.\n\nTimestamp.now(version\u003d2) will return a Timestamp with the following\ninternal format:\n\n\u003c  float part  \u003e \u003c   hex part   \u003e\n1234567890.12345_2jjjjjjjjjoooooo\n\nThe hex part is normally composed of:\n* a prefix \u00272\u0027 which indicates that jitter is present.\n* 9 digits of random jitter (j).\n* 6 digits of offset (o).\n\nFor version 2 Timestamps with jitter, Timestamp.internal will always\nreturn the full string representation shown above. Timestamp.normal\ncontinues to return a string with only the float part.\n\nThe Timestamp constructor will still parse any timestamp string, with\nor without jitter. Jitter is not added to a parsed timestamp string.\n\nTimestamp strings with jitter (i.e. whose hex part starts with 2)\nhave their offset value constrained to 6 digits.  Timestamp strings\ncreated prior to this patch (i.e. whose hex part starts with 0 or 1)\nare allowed to have offset values up to 0x1fffffffffffffff. It is\nassumed that there are no existing timestamp strings with offset\ngreater than 0x1fffffffffffffff.\n\nThe hex part range 0x3000000000 to 0xffffffffff is reserved for\nfuture versions that may wish to carve the hex part up differently.\n\nTimestamps strings with jitter can be safely parsed by older versions\nof the Timestamp class.\n\nUpgrade Impacts:\n\nClients are still only aware of the normalized timestamp of objects\ni.e. only the float part. As a result, Container sync cannot\ndifferentiate between internal timestamps in a remote container that\nare both within the same deca-microsecond.\n\nThe Timestamp(\u003cfloat\u003e) constructor and Timestamp.now() method without\na version argument continue to return legacy Timestamps with no hex\npart whose internal form would have only the float part\ne.g. 1234567890.12345. It is recommended that callers are upgraded to\ngenerate version 2 Timestamps when appropriate using either timestamp2\nor generate_timestamp functions, or to use NormalTimestamp when no hex\npart is required.\n\nRelated-Change: Id85c960b126ec919a481dc62469bf172b7fb8549\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nChange-Id: I7e2643ecddd79049d34a609516b1c06f780a719e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/91120e58800875c79ff8493cd5acc6ab0bae04de"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/91120e58800875c79ff8493cd5acc6ab0bae04de"}]},"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":""}}}]}
