)]}'
{"id":"openstack%2Fswift~667030","triplet_id":"openstack%2Fswift~master~Ie105210fd4dc627d61d0cbd28fd468be4917f558","project":"openstack/swift","branch":"master","topic":"auto_sharding-patch13","attention_set":{"7233":{"account":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"last_update":"2024-03-20 07:28: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":"2024-03-20 06:23:35.000000000","reason":"Vote got outdated and was removed: Code-Review+1"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Ie105210fd4dc627d61d0cbd28fd468be4917f558","subject":"Auto-sharding: first attempt at _elect_leader","status":"NEW","created":"2019-06-24 07:15:53.000000000","updated":"2024-12-05 19:20:09.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":17,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"75297616df6a131e502dc1f2c20e1190cdff5b73","_number":667030,"virtual_id_number":667030,"owner":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"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"},{"tag":"autogenerated:zuul:check","value":1,"date":"2024-04-08 06:15:08.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-06-04 02:08:17.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":"2020-06-04 05:51:54.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"},{"updated":"2024-12-05 19:20:09.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"}],"messages":[{"id":"8e96012a3daf96ed6d2c8c5107514acc1289ac95","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-06-24 07:15:53.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ac3f48279c2bf0d24891d1ee081c23027b1323e1","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-06-24 07:16:25.000000000","message":"Patch Set 1: Workflow-1","accounts_in_message":[],"_revision_number":1},{"id":"fd6056a930091b1c561882edc1fdc93a9265f51a","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-06-24 07:20:32.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"dcb84d14cc1204475d90ca8dfc28e3b5569c7c4d","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-06-24 07:50:13.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs http://logs.openstack.org/30/667030/1/check/openstack-tox-docs/5882cbb/html/ : SUCCESS in 5m 12s\n- swift-build-image http://logs.openstack.org/30/667030/1/check/swift-build-image/6460f70/ : SUCCESS in 8m 54s (non-voting)\n- swift-tox-py27 http://logs.openstack.org/30/667030/1/check/swift-tox-py27/ffbad45/ : FAILURE in 10m 46s\n- swift-tox-py36 http://logs.openstack.org/30/667030/1/check/swift-tox-py36/3de87d0/ : FAILURE in 10m 17s (non-voting)\n- swift-tox-py37 http://logs.openstack.org/30/667030/1/check/swift-tox-py37/d960a68/ : FAILURE in 10m 34s\n- swift-tox-func http://logs.openstack.org/30/667030/1/check/swift-tox-func/edf9ecd/ : SUCCESS in 9m 08s\n- swift-tox-func-py37 http://logs.openstack.org/30/667030/1/check/swift-tox-func-py37/59676a0/ : SUCCESS in 10m 01s\n- swift-tox-func-encryption http://logs.openstack.org/30/667030/1/check/swift-tox-func-encryption/7924b33/ : SUCCESS in 8m 43s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/30/667030/1/check/swift-tox-func-domain-remap-staticweb/4f986bb/ : SUCCESS in 8m 33s\n- swift-tox-func-ec http://logs.openstack.org/30/667030/1/check/swift-tox-func-ec/3adb8f1/ : SUCCESS in 9m 05s\n- swift-tox-func-s3api http://logs.openstack.org/30/667030/1/check/swift-tox-func-s3api/5105e67/ : SUCCESS in 12m 53s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/30/667030/1/check/swift-tox-func-s3api-ceph-s3tests-tempauth/f3eda24/ : SUCCESS in 13m 59s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/30/667030/1/check/swift-probetests-centos-7/41716b1/ : SUCCESS in 30m 53s\n- swift-dsvm-functional http://logs.openstack.org/30/667030/1/check/swift-dsvm-functional/dacdb0c/ : SUCCESS in 26m 55s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/30/667030/1/check/swift-dsvm-functional-ipv6/ce93964/ : SUCCESS in 26m 03s\n- swift-tox-lower-constraints http://logs.openstack.org/30/667030/1/check/swift-tox-lower-constraints/8568841/ : FAILURE in 10m 58s\n- openstack-tox-pep8 http://logs.openstack.org/30/667030/1/check/openstack-tox-pep8/bfb23b7/ : FAILURE in 4m 44s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/30/667030/1/check/swift-multinode-rolling-upgrade/97ebf6e/ : FAILURE in 8m 10s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"c69b6193c2e3fcd9c214684ddf0eeb1d1d97c428","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-06-24 23:40:08.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"f31ac9216de07abea88b089e561fbd55a18ab9b9","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-06-24 23:41:20.000000000","message":"Patch Set 2: Workflow-1\n\njust fixed the current test failures. Haven\u0027t added anything else yet.","accounts_in_message":[],"_revision_number":2},{"id":"94d141374c8e128a5b9c7c1e9188e6d0cca06259","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-06-25 03:16:48.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs http://logs.openstack.org/30/667030/2/check/openstack-tox-docs/088db5e/html/ : SUCCESS in 5m 03s\n- swift-build-image http://logs.openstack.org/30/667030/2/check/swift-build-image/28a2bb5/ : SUCCESS in 8m 19s (non-voting)\n- swift-tox-py27 http://logs.openstack.org/30/667030/2/check/swift-tox-py27/8860ee4/ : SUCCESS in 14m 57s\n- swift-tox-py36 http://logs.openstack.org/30/667030/2/check/swift-tox-py36/a3067d7/ : SUCCESS in 11m 15s (non-voting)\n- swift-tox-py37 http://logs.openstack.org/30/667030/2/check/swift-tox-py37/225cd90/ : SUCCESS in 11m 15s\n- swift-tox-func http://logs.openstack.org/30/667030/2/check/swift-tox-func/bf47db9/ : SUCCESS in 9m 39s\n- swift-tox-func-py37 http://logs.openstack.org/30/667030/2/check/swift-tox-func-py37/e236984/ : SUCCESS in 11m 01s\n- swift-tox-func-encryption http://logs.openstack.org/30/667030/2/check/swift-tox-func-encryption/21352b7/ : SUCCESS in 8m 34s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/30/667030/2/check/swift-tox-func-domain-remap-staticweb/8e374de/ : SUCCESS in 12m 12s\n- swift-tox-func-ec http://logs.openstack.org/30/667030/2/check/swift-tox-func-ec/4a7e9b0/ : SUCCESS in 10m 06s\n- swift-tox-func-s3api http://logs.openstack.org/30/667030/2/check/swift-tox-func-s3api/daa0765/ : SUCCESS in 11m 19s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/30/667030/2/check/swift-tox-func-s3api-ceph-s3tests-tempauth/4e8549f/ : SUCCESS in 13m 30s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/30/667030/2/check/swift-probetests-centos-7/2fdecc0/ : SUCCESS in 31m 49s\n- swift-dsvm-functional http://logs.openstack.org/30/667030/2/check/swift-dsvm-functional/4794697/ : SUCCESS in 25m 16s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/30/667030/2/check/swift-dsvm-functional-ipv6/b84c6d7/ : SUCCESS in 28m 35s\n- swift-tox-lower-constraints http://logs.openstack.org/30/667030/2/check/swift-tox-lower-constraints/5b35708/ : SUCCESS in 12m 54s\n- openstack-tox-pep8 http://logs.openstack.org/30/667030/2/check/openstack-tox-pep8/94da6a6/ : SUCCESS in 5m 32s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/30/667030/2/check/swift-multinode-rolling-upgrade/42f1f0c/ : FAILURE in 11m 09s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"7730aea15e858bf3b1fa317092c99af0b46e8e40","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-06-28 07:17:52.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"40d53fe834ae11c90c4f3fa4824b1d5456f62035","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-06-28 07:18:23.000000000","message":"Patch Set 3: Workflow-1\n\nstill a wip","accounts_in_message":[],"_revision_number":3},{"id":"904a2468509d305aba3bcf1f935a78800af4ee3a","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-06-28 09:02:58.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs http://logs.openstack.org/30/667030/3/check/openstack-tox-docs/20025b7/html/ : SUCCESS in 5m 21s\n- swift-build-image http://logs.openstack.org/30/667030/3/check/swift-build-image/b3c0005/ : SUCCESS in 9m 15s (non-voting)\n- swift-tox-py27 http://logs.openstack.org/30/667030/3/check/swift-tox-py27/b6802a7/ : FAILURE in 11m 33s\n- swift-tox-py36 http://logs.openstack.org/30/667030/3/check/swift-tox-py36/5894ca8/ : FAILURE in 10m 38s (non-voting)\n- swift-tox-py37 http://logs.openstack.org/30/667030/3/check/swift-tox-py37/1a7f4be/ : FAILURE in 8m 31s\n- swift-tox-func http://logs.openstack.org/30/667030/3/check/swift-tox-func/442eb86/ : FAILURE in 3m 30s\n- swift-tox-func-py37 http://logs.openstack.org/30/667030/3/check/swift-tox-func-py37/505b5f0/ : FAILURE in 3m 32s\n- swift-tox-func-encryption http://logs.openstack.org/30/667030/3/check/swift-tox-func-encryption/c3bac38/ : FAILURE in 3m 36s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/30/667030/3/check/swift-tox-func-domain-remap-staticweb/74daabf/ : FAILURE in 4m 41s\n- swift-tox-func-ec http://logs.openstack.org/30/667030/3/check/swift-tox-func-ec/e51a11f/ : FAILURE in 3m 31s\n- swift-tox-func-s3api http://logs.openstack.org/30/667030/3/check/swift-tox-func-s3api/db5778c/ : FAILURE in 3m 30s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/30/667030/3/check/swift-tox-func-s3api-ceph-s3tests-tempauth/270c770/ : SUCCESS in 14m 43s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/30/667030/3/check/swift-probetests-centos-7/13eb490/ : SUCCESS in 31m 46s\n- swift-dsvm-functional http://logs.openstack.org/30/667030/3/check/swift-dsvm-functional/982128e/ : SUCCESS in 26m 32s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/30/667030/3/check/swift-dsvm-functional-ipv6/2174da3/ : SUCCESS in 28m 49s\n- swift-tox-lower-constraints http://logs.openstack.org/30/667030/3/check/swift-tox-lower-constraints/b5335ab/ : FAILURE in 11m 17s\n- openstack-tox-pep8 http://logs.openstack.org/30/667030/3/check/openstack-tox-pep8/5fb80a7/ : SUCCESS in 5m 57s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/30/667030/3/check/swift-multinode-rolling-upgrade/0d79ca6/ : FAILURE in 9m 12s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"334e53e10d3015d6e64b6baf899dbcdd74c22c4e","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-07-03 23:56:56.000000000","message":"Patch Set 3:\n\n(4 comments)\n\nI\u0027m debating about breaking the ring changes out ... they seem like they might be pretty small and easier to land, plus (probably) useful in other places.","accounts_in_message":[],"_revision_number":3},{"id":"a7f6ff2a5de182bb968a3e3f03e0bb3a4dc87ce5","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-07-12 23:11:32.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"203cead7faf482c60355f42a789d80e69b14bb1b","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-07-22 09:49:07.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"d62a45d1b5cd1c08cf0bbe4170766d8a0323118d","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-22 10:41:47.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs http://logs.openstack.org/30/667030/4/check/openstack-tox-docs/b7a378e/html/ : SUCCESS in 4m 24s\n- swift-build-image http://logs.openstack.org/30/667030/4/check/swift-build-image/8899229/ : SUCCESS in 8m 14s (non-voting)\n- swift-tox-py27 http://logs.openstack.org/30/667030/4/check/swift-tox-py27/1c01d9c/ : FAILURE in 8m 52s\n- swift-tox-py36 http://logs.openstack.org/30/667030/4/check/swift-tox-py36/ef691cf/ : FAILURE in 10m 24s (non-voting)\n- swift-tox-py37 http://logs.openstack.org/30/667030/4/check/swift-tox-py37/cc22a39/ : FAILURE in 10m 24s\n- swift-tox-func http://logs.openstack.org/30/667030/4/check/swift-tox-func/730c2d3/ : FAILURE in 4m 28s\n- swift-tox-func-encryption http://logs.openstack.org/30/667030/4/check/swift-tox-func-encryption/4ab7b75/ : FAILURE in 4m 13s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/30/667030/4/check/swift-tox-func-domain-remap-staticweb/8ccf81f/ : FAILURE in 4m 09s\n- swift-tox-func-ec http://logs.openstack.org/30/667030/4/check/swift-tox-func-ec/fdbc316/ : FAILURE in 5m 52s\n- swift-tox-func-s3api http://logs.openstack.org/30/667030/4/check/swift-tox-func-s3api/5f70eef/ : FAILURE in 7m 21s\n- swift-tox-func-py37 http://logs.openstack.org/30/667030/4/check/swift-tox-func-py37/14b5b91/ : FAILURE in 4m 30s\n- swift-tox-func-domain-remap-staticweb-py37 http://logs.openstack.org/30/667030/4/check/swift-tox-func-domain-remap-staticweb-py37/4b7eb7e/ : FAILURE in 5m 18s\n- swift-tox-func-ec-py37 http://logs.openstack.org/30/667030/4/check/swift-tox-func-ec-py37/9d3b250/ : FAILURE in 9m 13s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/30/667030/4/check/swift-tox-func-s3api-ceph-s3tests-tempauth/c54d3c1/ : SUCCESS in 21m 09s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/30/667030/4/check/swift-probetests-centos-7/d2cd5ed/ : SUCCESS in 36m 40s\n- swift-dsvm-functional http://logs.openstack.org/30/667030/4/check/swift-dsvm-functional/a746ca7/ : SUCCESS in 27m 48s\n- swift-dsvm-functional-py3 http://logs.openstack.org/30/667030/4/check/swift-dsvm-functional-py3/1b42bfc/ : SUCCESS in 30m 35s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/30/667030/4/check/swift-dsvm-functional-ipv6/c179dac/ : SUCCESS in 32m 48s\n- swift-tox-lower-constraints http://logs.openstack.org/30/667030/4/check/swift-tox-lower-constraints/b36afbb/ : FAILURE in 9m 32s\n- openstack-tox-pep8 http://logs.openstack.org/30/667030/4/check/openstack-tox-pep8/bce4153/ : SUCCESS in 6m 07s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/30/667030/4/check/swift-multinode-rolling-upgrade/1688e65/ : SUCCESS in 22m 10s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"a88cade5a91473c1d681eac624a2ba0f46fa2c77","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-10-08 03:28:00.000000000","message":"Patch Set 5: Patch Set 4 was rebased","accounts_in_message":[],"_revision_number":5},{"id":"d2d280f2fb87edfff61c9396613c26cf62d2e4b2","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2019-10-08 03:54:49.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased.","accounts_in_message":[],"_revision_number":6},{"id":"698f5b5db68b807036d9d691933c3b6a6a2737f8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-10-08 05:03:28.000000000","message":"Patch Set 6: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0aeb70cd742e463aa704a82b79eb6855 : SUCCESS in 18m 32s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/ab1764fda4c6441891f57c7328e6583e : SUCCESS in 50m 51s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/873a06eeed3a4cb4816c232e08bd1cb7 : SUCCESS in 1h 01m 53s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6f7669cc05d34d0aa50bba2b3f4b2503 : SUCCESS in 7m 56s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/357b22cae7b44c0c80764159644700af : SUCCESS in 8m 17s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/a27cbec288e348fead32807f243d60e0 : FAILURE in 20m 50s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/203b69965344493f84f53d9f9dbd670f : FAILURE in 10m 01s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8235bb7587d842c1bd6046f82f7b4d57 : FAILURE in 10m 17s\n- swift-tox-func https://zuul.opendev.org/t/openstack/build/66019b3a83674ba18f0d1843da4cec1f : FAILURE in 4m 52s\n- swift-tox-func-encryption https://zuul.opendev.org/t/openstack/build/fe35a2a51c6d4e8fbad13533ca316c9b : FAILURE in 6m 23s\n- swift-tox-func-domain-remap-staticweb https://zuul.opendev.org/t/openstack/build/bcc648b16f004022a8835852837772f9 : FAILURE in 4m 31s\n- swift-tox-func-ec https://zuul.opendev.org/t/openstack/build/5289d915c58f4e6080f56ba96512354f : FAILURE in 4m 31s\n- swift-tox-func-s3api https://zuul.opendev.org/t/openstack/build/687195a53a5a4df8ad0ba46ec0e1fa7b : FAILURE in 4m 27s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/4f51e6cca55045e0b0b38fbe080b5c91 : FAILURE in 9m 09s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/83072d90966948a4a3b781e1a27c00ec : FAILURE in 5m 09s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/a7f467a60f054326892b069f591f6918 : FAILURE in 5m 21s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/2101d374606d4d76a6dc66496a3d9b94 : FAILURE in 4m 44s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/73f5bfa264344ed89a519ff1e4413edc : FAILURE in 4m 16s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2c646f21b7be4092903f75e24b6b1485 : SUCCESS in 17m 43s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/9c976614830e4181b2dcf337990135f2 : FAILURE in 28m 42s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/8c8bb7c99c4b4e159f25cf473ff8f184 : SUCCESS in 29m 27s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/9a96cd42c8b34ef582dcdde180a98c09 : SUCCESS in 27m 14s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/30d685fafab34d8f8597675e46cbca0b : SUCCESS in 28m 34s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b9860132f42243d9b6246612a362d954 : FAILURE in 11m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b12cbd9ae78f433caf66a318aee8fba5 : SUCCESS in 5m 35s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/237cd36786994e568920d54f343b0a54 : SUCCESS in 16m 51s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ae5f13000c9b45ea98128e1ce463eea7 : SUCCESS in 48m 45s","accounts_in_message":[],"_revision_number":6},{"id":"ebda2882875465e2b9825479ee766c054703ca78","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2020-04-20 07:15:38.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"f469721fbbb336faa1728bc0bbf943287a118a37","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-04-20 08:21:39.000000000","message":"Patch Set 7: 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\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2101c1ca0f7844f8ba3ac84630b34536 : SUCCESS in 12m 37s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/52a52abcba3145339c5b0010b8f8e711 : SUCCESS in 1h 03m 40s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/5d674bec56b14098b2d3fb780c040092 : SUCCESS in 53m 24s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/68a7b43aa29844ccb140c4a6dd6a9e34 : SUCCESS in 9m 25s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/853325d432334f50ac5abd804e9b1bd7 : SUCCESS in 11m 01s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/e566744053414015a5e1cb607c4e8bd0 : FAILURE in 21m 23s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/363a2e1b98754cc9b2a8eb61ebcb6261 : FAILURE in 22m 13s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/21676b265b32418b97a251bbf0e543a8 : FAILURE in 14m 15s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/b2f64ee2f21947eba00ec3c7078ef783 : FAILURE in 12m 18s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/01c393c06418497ba28c6ec73b2e1637 : FAILURE in 6m 18s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/168cbfd33e484e6ca72eb7289bf0479c : FAILURE in 4m 56s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/dd2ef4544e6c43a78f57a258d3b505a8 : FAILURE in 4m 45s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/339af96d22e34ba6a284f02a0a0ebeeb : FAILURE in 6m 30s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/7ea12ed87c8e4d129e2ab7acbaf148ed : FAILURE in 4m 38s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/4a74909f81c745df9ee1ff2ae53df083 : FAILURE in 4m 59s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/a2a62fa9fbdf4dfd8f01c2cca38bee01 : FAILURE in 6m 43s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/b7966ee7d0814b4b91cce2ce52d282f9 : FAILURE in 5m 05s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/1006bb1656744e9380eab7f257ec1cef : FAILURE in 5m 50s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/65a68cf95ecd42ff9fda22ab7eb19259 : FAILURE in 4m 26s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/5029137b43af4cbcb663d68b6ac900a7 : SUCCESS in 24m 16s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/ee21cb24e6294ce399e33fe1c5268627 : SUCCESS in 47m 40s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c3b6eeeceafa49209cc8c8ea54587644 : SUCCESS in 38m 34s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/5c7d34615c3e4d75a08b89c475f30945 : SUCCESS in 37m 30s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ff0f4fe71eaf42479317cfc0fb5030fa : SUCCESS in 30m 44s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f182f90f92964e9b8ec793971ef5f6fb : FAILURE in 11m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1618fdc4d9b74a459960e532b57db154 : SUCCESS in 7m 39s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/2f1c85e5d48f40c59d3a2cb6ef136f63 : RETRY_LIMIT in 9m 55s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4721945557b446a28203f17b21903804 : SUCCESS in 1h 00m 34s","accounts_in_message":[],"_revision_number":7},{"id":"42707b417a464a784eb47c9e582ea36aca7f8663","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2020-04-21 04:24:32.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"fb531c528e6b2b0c09c93cc3ba1f02b6dfea10b9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-04-21 05:44:09.000000000","message":"Patch Set 8: 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\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b3d4be026eea417083fb06900e29a317 : SUCCESS in 7m 47s\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/526234d84ef44cb197a45049059b19b6 : SUCCESS in 1h 17m 34s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/013ba5dffb444c65b61b6435c0c95348 : SUCCESS in 52m 49s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/993611f9332c496eba9aaeed9a34d105 : SUCCESS in 8m 55s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/3ae1e2464996478b98d5dd702abcd53c : SUCCESS in 10m 08s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/c81fe302b9ef4c069d81f5e5b7ca6b85 : SUCCESS in 32m 14s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/2807722a581646e2b04600b432153083 : SUCCESS in 13m 05s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b1d154d309a043d1923193266c5e5c61 : SUCCESS in 31m 35s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/None : NODE_FAILURE in 0s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/dac35e923744421291a175759f378c30 : SUCCESS in 30m 26s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/b8259f3da3b94ae0b01f59a81fb325d0 : SUCCESS in 33m 40s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/a62f6a0558864fc6b6786ed9495bc66d : SUCCESS in 30m 14s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/1a8567d3881c4a9aba14aef510459e00 : SUCCESS in 38m 07s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/bc76bf367a3e45e49959008be86dd892 : TIMED_OUT in 41m 07s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/e733e58f377047ddbe7a0d47d9ce8711 : SUCCESS in 36m 35s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/4a6bbf99023b42f7a8d026b38c532a99 : TIMED_OUT in 41m 04s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/5db0b7aaf61f4fe598378e398384a82a : SUCCESS in 22m 47s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/3bf5837279574586b7895703eb98b85c : SUCCESS in 38m 49s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/df00493ebb8940cf9de4338ade6da989 : TIMED_OUT in 41m 07s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/09de47452ca348bc9c0007e3a79ed050 : TIMED_OUT in 41m 11s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/d4e89b0b2e16498ba188b362704a35d5 : TIMED_OUT in 1h 01m 12s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/159123dc8e4449a68defc4d38e121543 : SUCCESS in 38m 05s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/aa8441f6adc24a71a8c31efc742f112a : SUCCESS in 38m 19s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/39f7faa938054fb88f9bb25fb682be83 : SUCCESS in 38m 31s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c4b4105cce6941618a15307990e891ea : SUCCESS in 21m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0b80b4b7ba4d418fb0400e38d02210f1 : SUCCESS in 6m 04s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/7f4f25fcbe2d47549cfac6521a31e7f6 : FAILURE in 40m 22s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/a84aa842c8d84cda8e5bd0db2480f702 : SUCCESS in 1h 08m 03s","accounts_in_message":[],"_revision_number":8},{"id":"9bbb2b86a687ab25670eb9c0a567141613718954","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2020-06-04 01:03:26.000000000","message":"Uploaded patch set 9: Patch Set 8 was rebased.","accounts_in_message":[],"_revision_number":9},{"id":"a691582a3819f1d84fc75df7f318e892957cbd4e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-06-04 02:08:17.000000000","message":"Patch Set 9: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/362dff761b7c4fd8bfd6c0dd988cd8ee : SUCCESS in 8m 02s\n- grenade https://zuul.opendev.org/t/openstack/build/e3a26f61b94a4bbf8a96f30c9765a371 : SUCCESS in 1h 03m 38s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/2bf260e342dd4ed7bf9d87e09bdcf846 : SUCCESS in 37m 24s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1053acdefde74abd8e405af426e0b67d : SUCCESS in 8m 15s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/0da6644775aa4d3e9b5457f7a133e611 : SUCCESS in 9m 01s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/0469746bdbbe498689c4a463e8d566c2 : SUCCESS in 12m 12s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/3a873a8975b04b85af8018b0b93361bf : SUCCESS in 12m 01s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/65ea7a4d68e1493e9fc7281e4d0d1bfd : SUCCESS in 12m 04s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/4363b3d1d818448fb02cc7aa1a224d01 : SUCCESS in 30m 54s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/158270350a844ec18bc14e564f1d865a : SUCCESS in 14m 42s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/3a4a2369d1914ad7a39528b1bd8840d1 : SUCCESS in 15m 17s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/dee0715abb754514b0019a0b72305108 : SUCCESS in 16m 00s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/2083d0defd604b7b9ed70557324df740 : SUCCESS in 19m 05s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/65eff438da184345a45ed754e3c19692 : SUCCESS in 20m 54s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/ce4ee0d846534255a54a5ff7452582dd : SUCCESS in 17m 09s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/449848e840fa4bef80cddc3a91bbd394 : SUCCESS in 20m 44s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/1b44f951d4e241dea06fce3b57e9f92b : SUCCESS in 42m 37s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/3f0b0133ac504cd4911cb54521d28803 : SUCCESS in 44m 30s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/bd2c4a96b64643cdb78e2e1f2ea8ea7b : SUCCESS in 48m 00s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/5f6d19a5d0f74b6287aa235b05142241 : SUCCESS in 12m 37s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6e6b91365a57427caeaecd0046e46520 : SUCCESS in 5m 22s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/5bec19dc45174c1fa01493f89e40c939 : RETRY_LIMIT in 8m 37s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/69eb783cb335440499811689364eebbe : SUCCESS in 59m 51s","accounts_in_message":[],"_revision_number":9},{"id":"55373b13f92d20f880983a5b0074eb6508da111e","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2020-06-04 05:51:54.000000000","message":"Patch Set 9: Code-Review+1\n\n(8 comments)\n\nYeah, this all seems pretty straight-forward... ELECT could probably use some tests and we might end up wanting to squash in https://review.opendev.org/#/c/667579/ so we have consumers for the new verb, though.","accounts_in_message":[],"_revision_number":9},{"id":"a865cb8307563cadd1b06ee7a0a5806db81bb5d7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2024-03-20 06:23:35.000000000","message":"Uploaded patch set 10.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":10},{"id":"545ab175712c7f17fdac7a87c0b89a9c94e2c3a0","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2024-03-20 06:24:24.000000000","message":"Patch Set 10:\n\n(1 comment)","accounts_in_message":[],"_revision_number":10},{"id":"3e637b7d46ad961da1fffae25d3eef7c06116865","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-20 06:44:27.000000000","message":"Patch Set 10:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e28a9a9be3874af3917f39665abe0864\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/ef245c6d64504590bbcb3ebb78b29fb4 : FAILURE in 16m 10s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/daaad8f2324b447b9f031e905a8f5696 : FAILURE in 16m 30s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/71f1943bc31e4753ac05a6e997ff1d1b : SUCCESS in 19m 51s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/bc8b8668ea974302b39f346b0336695c : SUCCESS in 17m 18s","accounts_in_message":[],"_revision_number":10},{"id":"71a3e99d04b656071e611da076dc3bb02acdcc49","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-20 07:28:46.000000000","message":"Patch Set 10: 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\n\nhttps://zuul.opendev.org/t/openstack/buildset/b8a831bf75b34ca2b36ecdd4a9b29b1f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/24e40513cbb3486ba58e785d40f2adcf : SUCCESS in 6m 59s\n- grenade https://zuul.opendev.org/t/openstack/build/01df916f0bbf45a0a7fd14b984f848cb : SUCCESS in 38m 55s\n- grenade-skip-level https://zuul.opendev.org/t/openstack/build/fe948bdfd2c148168dcd1d9d3ff5414b : SUCCESS in 40m 17s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f516823fe0d840b792b97fe688f8a2ef : SUCCESS in 32m 56s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f61c29ecdb0246cda8b85a557ae9e3a7 : SUCCESS in 39m 02s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4e860609e47845dc9778d6da77a6c756 : SUCCESS in 20m 50s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d1987728acec4fe1838c5c90c1a12441 : SUCCESS in 18m 10s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0a2ae248d2b844ffb99fb0df74a23602 : SUCCESS in 19m 23s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/e18a243cb3ad42aeb4c34297b87812ec : SUCCESS in 10m 19s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/7f115c13d9914b6e8262a4446bc059cc : SUCCESS in 5m 44s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/61cf319f247040b8b79597d13ef37e48 : FAILURE in 19m 40s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/39efa1fdf76043fb848efab890b27559 : FAILURE in 12m 46s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/1072ccb1fc4148b8a810a9dc33048679 : FAILURE in 18m 19s\n- swift-tox-py311 https://zuul.opendev.org/t/openstack/build/6d04753c05a94ec0816e611aa35cf370 : FAILURE in 17m 26s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/5146512e74b04fa2a8dd790f9a9418a9 : SUCCESS in 16m 54s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/be6c86eb37214770bf20ffc63b60c632 : SUCCESS in 18m 21s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/893720a836a9446ba66fa6604fefdf7b : SUCCESS in 18m 31s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/62a9fe2399254b90b9e5a266b5aa5896 : SUCCESS in 15m 30s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/2a64c2617fae4d23a5fdb3fb2cee617a : SUCCESS in 15m 42s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/6dd801d421a94a56a3c434b4ae24e6a8 : SUCCESS in 16m 38s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/db0237634f1a426a9b9772e03554d1ef : SUCCESS in 6m 42s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/290a6526480143fda08bfd6f13005128 : SUCCESS in 15m 49s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/be723996cd694be08e61f95ed6c1cc91 : SUCCESS in 7m 08s\n- swift-probetests-centos-8-stream https://zuul.opendev.org/t/openstack/build/2087fbb6d6d5446e8bd629bf8f84c0b3 : FAILURE in 56m 36s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/25dde3541d234c25aa5e945ca4274d7a : SUCCESS in 36m 10s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/8a5a9c7710b4496f9fa68d5a5d068048 : SUCCESS in 51m 46s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a8a072db134846429621d0a64483b023 : FAILURE in 19m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4772c6a353d644c29fbceeff37034916 : SUCCESS in 4m 09s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/3442588492f641a79453bcb634f61a50 : SUCCESS in 17m 39s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/357f2312e41e4755b248161fab5c51b4 : SUCCESS in 59m 37s","accounts_in_message":[],"_revision_number":10},{"id":"9420e234b64246210bd40e3276364ab18100f99a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2024-03-21 05:53:31.000000000","message":"Uploaded patch set 11.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":11},{"id":"cd560f72965970c5bc98f05f8ec1ab0cd69b19df","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-21 06:19:11.000000000","message":"Patch Set 11:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a9d674a327d046d09424ffb3da2a9944\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/7cc5c13d66024be0a361315280b79243 : SUCCESS in 16m 09s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/751695e9d219458b97ebefb2810e805c : SUCCESS in 17m 16s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/401734500a2d4f83a594f5d00aa78eb3 : SUCCESS in 19m 47s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/c99b65e12d5d46699b3e6d7a17bc69ac : SUCCESS in 24m 27s","accounts_in_message":[],"_revision_number":11},{"id":"230e58c55efed6e5ea1482e0af97b9436c5514ff","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-21 08:15:03.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\n\nhttps://zuul.opendev.org/t/openstack/buildset/710733949990428998ddfc9989e35284\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a2d7f7989d3646d4ac5614d1e833e3b6 : SUCCESS in 8m 19s\n- grenade https://zuul.opendev.org/t/openstack/build/0703a9a611ea44648fa262362035aab5 : SUCCESS in 1h 07m 51s\n- grenade-skip-level https://zuul.opendev.org/t/openstack/build/e31f838ccf0a4cab8d4e820f42208e22 : SUCCESS in 57m 44s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/e57bba28c83245e8a6377f40ea931661 : SUCCESS in 51m 59s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7186ca3d088d42c29eff0e2ec7ffd78f : SUCCESS in 1h 06m 06s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5e602f93e151475799c26412aaabe5a7 : SUCCESS in 19m 02s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b8fb9eb24ebf4a289816b02556d3f675 : SUCCESS in 18m 50s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/887514f0d16744d98506957f7208c4e7 : SUCCESS in 19m 39s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/4d9b4edc43034ad284324e57d77f5dae : RETRY_LIMIT in 2m 21s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/5a6606e2c1e44022a906c899aa46a624 : RETRY_LIMIT in 3m 04s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/eeef4f5a75864edb90ae7286528c7b2e : SUCCESS in 18m 33s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/b5db14bb2f2a4ff8a2abe00fe15026c3 : SUCCESS in 17m 36s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/e9aa78c7eec647808d7f0cabc65651c1 : SUCCESS in 17m 16s\n- swift-tox-py311 https://zuul.opendev.org/t/openstack/build/72661cd50ac34f1290372f560fb97f53 : SUCCESS in 17m 37s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/1aa38cdc4f2745f2b0e35ef4781bf160 : SUCCESS in 17m 09s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/0877b2c94b96449382423cd9922e88af : SUCCESS in 18m 35s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/1f8edcd0eb4145bbbe34445cdadc0255 : SUCCESS in 22m 56s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/0fe32341da7b4339addd05920ddaa3de : SUCCESS in 15m 19s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/bd95bbedba60449193a138d37ddbe9f9 : SUCCESS in 19m 33s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/26d336cf8fd14ebb939419916a79f158 : SUCCESS in 15m 51s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/780b3afd7fb74b80a29521e1e0960c4f : SUCCESS in 6m 27s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/edbc9518687d4c77910f2bad47b560de : SUCCESS in 14m 50s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/14f28503ce944913aeecb8069a3448de : SUCCESS in 6m 53s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/fef7a711681848a78dd91ac2ed35484e : TIMED_OUT in 2h 00m 43s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/79425bc50c7045b4a69b354ac739fd96 : SUCCESS in 42m 52s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/2007242ae2aa4d7a88352b113796ed36 : SUCCESS in 1h 00m 08s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/52140a29857c43878cff6d76a7ec5b4e : SUCCESS in 22m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a2271ab28b114815a01cd067b91359ca : SUCCESS in 3m 55s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/b7dfc6086aca404aa20058ac196863a6 : SUCCESS in 18m 07s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/02de2a45bfc249cdba430ac555282c79 : SUCCESS in 58m 32s","accounts_in_message":[],"_revision_number":11},{"id":"11e3c72809a7c498c13256a09ec85aa90ae68a55","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2024-03-22 05:57:14.000000000","message":"Uploaded patch set 12.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":12},{"id":"71e5d24af0922f22888705c25e2c1f3fe1129438","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-22 07:22:59.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\n\nhttps://zuul.opendev.org/t/openstack/buildset/fb65b1fb7cea4d21b89ee18dbddfb832\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/933725f6f7b9413fa75bf62736d7b34d : SUCCESS in 8m 47s\n- grenade https://zuul.opendev.org/t/openstack/build/aa795fbe09ac4ac8b40c57f2eb6533a8 : SUCCESS in 1h 04m 36s\n- grenade-skip-level https://zuul.opendev.org/t/openstack/build/25d123e154c4477b9bce1b438b90c65c : SUCCESS in 1h 04m 02s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d60ab5c97d1147e784403f1d722eff4e : SUCCESS in 54m 26s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/66b33a502a4c46a5a097f3ff55fe353d : SUCCESS in 1h 06m 22s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/08050785297842ecb13ded656813ccb7 : SUCCESS in 18m 58s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0e836e644ad64cbaaa95bf4b79ed9b22 : SUCCESS in 22m 28s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8c6d93f984974d19b3d3e896613c6c92 : SUCCESS in 25m 19s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/62ce5897a76245e2b864d240dec323cd : SUCCESS in 11m 18s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/2f4fd64d57744b6bb2e4c0d4ac7c8258 : SUCCESS in 5m 10s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/b305e4913d204614bf5b0eeb0871c72e : FAILURE in 28m 21s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/c1d731878cfc420eb9676634a38f94e8 : FAILURE in 13m 20s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/65874d202dc34381bdaa1a19cc410cb0 : FAILURE in 26m 27s\n- swift-tox-py311 https://zuul.opendev.org/t/openstack/build/4abd7fd7724342fb896a9370fa2abc4c : FAILURE in 23m 21s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/113b7ef2e495470fb861b1dbfacf7d2c : SUCCESS in 23m 44s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/80e9a3fe5fa3410491f37da82a37aaba : SUCCESS in 16m 25s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/54c0794ed3054b95aa6e0edc3d351ba8 : SUCCESS in 23m 20s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/89129a611b9241bdbf9da72f604f3b2e : SUCCESS in 21m 18s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/abe3dda4ca00445f9170a07c88ed94ce : SUCCESS in 22m 53s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/f5eb0e6cfb9644a6a36f545bab5b9f75 : SUCCESS in 14m 10s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/12f82f4f45154856a3c045c038a4352a : SUCCESS in 6m 05s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/9f791a02b24c418f9c26bf11aeaeff80 : SUCCESS in 13m 59s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/445ed0b146394817b5ad93603b216412 : SUCCESS in 7m 34s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/e843c99612fc484badba14cd18591005 : SUCCESS in 55m 59s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/bcc70aaa745747a4b91954dfd11724d2 : SUCCESS in 33m 08s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/fb2b4af34ebc4bd6b943d44f9ee29700 : SUCCESS in 50m 31s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/26f4424050c447ba87bc25761b398019 : FAILURE in 22m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2ea91e95fdcf486491fca8af98f613ae : SUCCESS in 4m 03s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/5c6a668feb4341b0a35b2e162c7e07a0 : SUCCESS in 18m 23s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/048124ea27bb48b7a8c8c66157ca510a : SUCCESS in 43m 28s","accounts_in_message":[],"_revision_number":12},{"id":"a21bd273e384ace1a4798391b3d17aa490a185e6","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-22 07:24:52.000000000","message":"Patch Set 12:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/92e7af916dc646749997a9c667855718\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/15015555e39848aaa238ab6e301c3a18 : FAILURE in 15m 54s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/4a6ffe401be8489a8b486fa3d62ec410 : FAILURE in 1h 21m 45s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/7143c1ff38eb4b39b378a7a6816da022 : SUCCESS in 21m 00s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/16e8e9bb1d514aaea8a30126b9d1761f : SUCCESS in 1h 25m 53s","accounts_in_message":[],"_revision_number":12},{"id":"b5ee9e7321c88141e39ee5f3dcdc3ef6b7c588cb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2024-03-25 04:05:15.000000000","message":"Uploaded patch set 13.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":13},{"id":"42142cace3f8c44a5f775bd5e23221f36823c450","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-25 05:19:33.000000000","message":"Patch Set 13:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0819dafe110b4dcba1588ecded86a0d9\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/ab8f0cc0a67c4b7ea8a02eb665b16937 : SUCCESS in 18m 20s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/f91f436a16914d2bb7fa7bf2a5a12caf : SUCCESS in 15m 43s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/006aa3a99c86478589aaee5497921e22 : SUCCESS in 1h 12m 26s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/307b627d04614de9b6223c21952bdfc2 : SUCCESS in 19m 24s","accounts_in_message":[],"_revision_number":13},{"id":"a85a99942d23f049db70494b7ffd3a1b35a17fba","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-03-25 05:22:49.000000000","message":"Patch Set 13: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/96407e6ec97b4d9480fcced050bc8b84\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f85a1db3ac1e4405b8eb51aabe7d2623 : SUCCESS in 8m 12s\n- grenade https://zuul.opendev.org/t/openstack/build/f091e46b3d044ad0be0f6ee95f26a236 : SUCCESS in 1h 03m 28s\n- grenade-skip-level https://zuul.opendev.org/t/openstack/build/4b61882be66c4e5d8b426501213a6d46 : SUCCESS in 1h 02m 07s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/9821e475c67e4568910d772be076bbcb : SUCCESS in 1h 11m 24s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b043592ca23d4536b4096152245dc352 : SUCCESS in 1h 04m 17s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a3fd414f89834c81ac9ef1e9655c1db1 : SUCCESS in 21m 21s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d3811ef13bf3442b941ae54d7459f95e : SUCCESS in 19m 34s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/58eeb93ade7a402998bb322992d0424e : SUCCESS in 23m 38s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6de337ee013f4173806914871086de77 : SUCCESS in 11m 00s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/87d14925a89a43c49a7d5fb8ac1b7c5b : SUCCESS in 4m 45s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/c599ecec82954b13be97f5e408e0465a : SUCCESS in 21m 26s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/8ce91ef89e7144789f56244f00d07602 : SUCCESS in 20m 45s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/d6c14eecc70c4e2c915eec60c3b2571a : SUCCESS in 19m 57s\n- swift-tox-py311 https://zuul.opendev.org/t/openstack/build/1d665d4216df48c8897f9504c3151075 : SUCCESS in 19m 37s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/2f4696bb01944bdcad66d7dcff80fef6 : SUCCESS in 16m 52s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/50170c11e2ed402186a96eed4ab4e5eb : SUCCESS in 22m 09s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/af805dfedfe143b783ca3b1c41b069fd : SUCCESS in 20m 56s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/7c7b861246834df4a9ad3ec7230cb547 : SUCCESS in 17m 17s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/fbca72dd34af488d83f225ffa78a0630 : SUCCESS in 16m 15s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/7478630d4a514c738cdf094b254279d4 : SUCCESS in 16m 47s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/23c1cf988f0544a99dd2bad31607c2a4 : SUCCESS in 6m 20s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/dcc54060fdb84357bab560807fffc01b : SUCCESS in 16m 12s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/9df19754437d48828ce0734d7b09355f : SUCCESS in 7m 21s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/cb5cc3754fc94302828f9834b268e352 : SUCCESS in 56m 09s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/3dbbf3ff64bd44898643326f5a9f0a10 : SUCCESS in 38m 15s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/065d35f5d34d40ccae1ebd9ab105e8e7 : SUCCESS in 51m 33s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/6a878a4a3c6049f282a24806454eb151 : SUCCESS in 22m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/27dd19e204484e4dacd4454ada0fa55f : SUCCESS in 4m 21s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a8f89cf2fc094fe99b8f6822161a2857 : SUCCESS in 20m 20s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f1d901c0e9454e84b2e7a90f676b7cd6 : SUCCESS in 1h 04m 20s","accounts_in_message":[],"_revision_number":13},{"id":"9d82995c4a4543ba57d34ecff94e85b19da777c1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2024-04-08 04:50:05.000000000","message":"Uploaded patch set 14.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":14},{"id":"ca9f9174fdbe3ad63e720a0b8476c0fe5877395a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2024-04-08 04:58:25.000000000","message":"Uploaded patch set 15.","accounts_in_message":[],"_revision_number":15},{"id":"0ce335dc9fa998b9b6148ef1db6466159907db29","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2024-04-08 04:59:33.000000000","message":"Patch Set 16: Patch Set 15 was rebased","accounts_in_message":[],"_revision_number":16},{"id":"b6904cf9a4cfff167ec22f15e3a5145f572efd18","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-04-08 06:11:25.000000000","message":"Patch Set 16:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/50e89a5e3cb8430c86d5a20a788e342b\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/c720b67cbe384df6b655fe6ca1e75b35 : SUCCESS in 1h 09m 16s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/028e30d56e754f84a397ae661ffa4407 : SUCCESS in 15m 47s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/5b4eb0a6b2f54db5bc3a718a1bcbb7d4 : SUCCESS in 1h 09m 48s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/268ec0567dd74222a5ea184aa841eef4 : SUCCESS in 23m 04s","accounts_in_message":[],"_revision_number":16},{"id":"1174197f35eeded0d1a0623f79bc6b23cda2895d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-04-08 06:15:08.000000000","message":"Patch Set 16: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f0c8e3d0f5374e30b3f27bcd82b444dd\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a72bc2d6fe0f4909a0cad90b675f71c0 : SUCCESS in 7m 44s\n- grenade https://zuul.opendev.org/t/openstack/build/e5abd1f1cd1345589296478033e64a76 : SUCCESS in 48m 41s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/9cd434718b894ffab6da32e0e4da6b6b : SUCCESS in 41m 22s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/cf7fc28a03d64ecdbc2ee86e844fc821 : SUCCESS in 59m 52s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e8c1217ec37d4512809444378af58fc1 : SUCCESS in 18m 46s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/df454119070e4f6684adbe4d20eaef40 : SUCCESS in 20m 16s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fc33299ed2d34e94bd5e96732a48f777 : SUCCESS in 21m 03s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/ae423bf8eb4e43708f532ed9cf59c3ee : SUCCESS in 11m 21s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/249fc23bf4264ce7ae119e36a72ef12d : SUCCESS in 7m 07s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/a1f0cc32e0704fc4a14acfe0e332c981 : SUCCESS in 15m 16s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/4ff02b1ddc7c43aca3c761e3d0fcbe36 : SUCCESS in 17m 22s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/7c334b8e13f4479589380e4cc7eb4757 : SUCCESS in 20m 26s\n- swift-tox-py311 https://zuul.opendev.org/t/openstack/build/d4ffd1fcbe774091bd5d7d9f8fa00a94 : SUCCESS in 17m 48s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/114a9af2d3e34b4abdc260c9ef98cc52 : SUCCESS in 20m 06s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/1abf14b70af3440fb30313214f61a1d2 : SUCCESS in 20m 00s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/dad6b7a4eb1f4471a7aafb36453d86cb : SUCCESS in 16m 23s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/f2b85157a0f74268b20b2fa61e1c7a4c : SUCCESS in 14m 53s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/2a886e990cce496e81ee07bc9432f3fd : SUCCESS in 15m 16s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/c70b3aa465d04cdaafc054152c2d4544 : SUCCESS in 17m 44s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/5d644d52b7d2453a9a19a614d3c90b15 : SUCCESS in 6m 19s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2dbfb60ef7624fd58bbc5056e9ccf7db : SUCCESS in 16m 32s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/a7feeb0202fb47eab933018ae2cd14bb : SUCCESS in 6m 57s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/6cdb8a794d2244f1b8f1be06df9d0d50 : SUCCESS in 56m 48s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/83f32ca3b8f7439299e72c8cdd683b86 : SUCCESS in 38m 07s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/bb0ea72ccf314655b94a9727d9625430 : SUCCESS in 53m 59s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/38be22d23d4c4cd0b9ef2290ce4027e4 : SUCCESS in 19m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/56f9cd106e664bcba74dd60ca8685883 : SUCCESS in 4m 19s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/fae515d271524167808825fc4a56cb8f : SUCCESS in 20m 33s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9484a28be1b344ccb4b1852e8ebf5a8a : SUCCESS in 1h 08m 59s","accounts_in_message":[],"_revision_number":16}],"current_revision_number":16,"current_revision":"93ebb5493aa93e3f976d3f3c6b4a526acd17973f","revisions":{"11f754519ef28c1afaec9ea3233390e3de032f14":{"kind":"REWORK","_number":1,"created":"2019-06-24 07:15:53.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/1"}}},"commit":{"parents":[{"commit":"9f1ef35630ebf9da53cbd061f89889e534803725","subject":"py3: Port the tempurl middleware","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9f1ef35630ebf9da53cbd061f89889e534803725"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"subject":"Auto-sharding: Initial steps","message":"Auto-sharding: Initial steps\n\nThis patch is starting to set up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nThis initial patch completes 2 preparations. Firstly plumbs the ringbuilder\nversion into RingData and into the Ring. Bonus drive by, now when you rebuild\nthe builder from a ring the version is maintained.\n\nAnd secondly, creates an ELECT verb in the continer server that will\npull in the ring (when needed) and return a response with a json body\ncontaining the node, partition and ring version that the sharder will\nneed to make a decision.\n\nThere is also a small amount of prep in the sharder.\n\nNote, even this first patch is WIP, there was still tests and\ndocumentation updates required to it before we can even think of landing\nit.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/11f754519ef28c1afaec9ea3233390e3de032f14"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/11f754519ef28c1afaec9ea3233390e3de032f14"}]},"branch":"refs/heads/master"},"af1f6122944617c443d41baa2e38ee99218e91e8":{"kind":"REWORK","_number":2,"created":"2019-06-24 23:40:08.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/2"}}},"commit":{"parents":[{"commit":"9f1ef35630ebf9da53cbd061f89889e534803725","subject":"py3: Port the tempurl middleware","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9f1ef35630ebf9da53cbd061f89889e534803725"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 23:39:43.000000000","tz":600},"subject":"Auto-sharding: Initial steps","message":"Auto-sharding: Initial steps\n\nThis patch is starting to set up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nThis initial patch completes 2 preparations. Firstly plumbs the ringbuilder\nversion into RingData and into the Ring. Bonus drive by, now when you rebuild\nthe builder from a ring the version is maintained.\n\nAnd secondly, creates an ELECT verb in the continer server that will\npull in the ring (when needed) and return a response with a json body\ncontaining the node, partition and ring version that the sharder will\nneed to make a decision.\n\nThere is also a small amount of prep in the sharder.\n\nNote, even this first patch is WIP, there was still tests and\ndocumentation updates required to it before we can even think of landing\nit.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/af1f6122944617c443d41baa2e38ee99218e91e8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/af1f6122944617c443d41baa2e38ee99218e91e8"}]},"branch":"refs/heads/master"},"5204e5b8e75c5ce57ee61c6398181af568df19bb":{"kind":"REWORK","_number":3,"created":"2019-06-28 07:17:52.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/3"}}},"commit":{"parents":[{"commit":"9f1ef35630ebf9da53cbd061f89889e534803725","subject":"py3: Port the tempurl middleware","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9f1ef35630ebf9da53cbd061f89889e534803725"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-28 07:15:56.000000000","tz":600},"subject":"Auto-sharding: Initial steps","message":"Auto-sharding: Initial steps\n\nThis patch is starting to set up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nThis initial patch completes 2 preparations. Firstly plumbs the ringbuilder\nversion into RingData and into the Ring. Bonus drive by, now when you rebuild\nthe builder from a ring the version is maintained.\n\nAnd secondly, creates an ELECT verb in the continer server that will\npull in the ring (when needed) and return a response with a json body\ncontaining the node, partition and ring version that the sharder will\nneed to make a decision.\n\nThere is also a small amount of prep in the sharder.\n\nNote, even this first patch is WIP, there was still tests and\ndocumentation updates required to it before we can even think of landing\nit.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5204e5b8e75c5ce57ee61c6398181af568df19bb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5204e5b8e75c5ce57ee61c6398181af568df19bb"}]},"branch":"refs/heads/master"},"815e12b9cf6e1937e24adff0c08e3b3f692771d8":{"kind":"REWORK","_number":4,"created":"2019-07-22 09:49:07.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/4"}}},"commit":{"parents":[{"commit":"6853616aeaa7a6b14fd1ae99a507ab1761d16609","subject":"ring: Track more properties of the ring","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6853616aeaa7a6b14fd1ae99a507ab1761d16609"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-07-22 09:43:43.000000000","tz":600},"subject":"Auto-sharding: Initial steps","message":"Auto-sharding: Initial steps\n\nThis patch is starting to set up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nThe autosharding needs to preperations. More info needs to be referencable from\nthe ring, this has been pulled out into Tim\u0027s patch 670673, namely the ring version.\n\nAnd secondly, creates an ELECT verb in the continer server that will\npull in the ring (when needed) and return a response with a json body\ncontaining the node, partition and ring version that the sharder will\nneed to make a decision.\n\nThere is also a small amount of prep in the sharder.\n\nNote, even this first patch is WIP, there was still tests and\ndocumentation updates required to it before we can even think of landing\nit.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/815e12b9cf6e1937e24adff0c08e3b3f692771d8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/815e12b9cf6e1937e24adff0c08e3b3f692771d8"}]},"branch":"refs/heads/master"},"e65eb54377d4d11017cdb9e5ec592f54dea600d6":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2019-10-08 03:28:00.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/5"}}},"commit":{"parents":[{"commit":"1c0661e9203373a92b4eec19571f40309263376a","subject":"Merge \"Start building py3 docker images\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1c0661e9203373a92b4eec19571f40309263376a"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-10-08 03:28:00.000000000","tz":0},"subject":"Auto-sharding: Initial steps","message":"Auto-sharding: Initial steps\n\nThis patch is starting to set up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nThe autosharding needs to preperations. More info needs to be referencable from\nthe ring, this has been pulled out into Tim\u0027s patch 670673, namely the ring version.\n\nAnd secondly, creates an ELECT verb in the continer server that will\npull in the ring (when needed) and return a response with a json body\ncontaining the node, partition and ring version that the sharder will\nneed to make a decision.\n\nThere is also a small amount of prep in the sharder.\n\nNote, even this first patch is WIP, there was still tests and\ndocumentation updates required to it before we can even think of landing\nit.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e65eb54377d4d11017cdb9e5ec592f54dea600d6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e65eb54377d4d11017cdb9e5ec592f54dea600d6"}]},"branch":"refs/heads/master"},"74632cd8334914e7e8175be34bd88db08ba6d818":{"kind":"NO_CHANGE","_number":6,"created":"2019-10-08 03:54:49.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/6"}}},"commit":{"parents":[{"commit":"1c0661e9203373a92b4eec19571f40309263376a","subject":"Merge \"Start building py3 docker images\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1c0661e9203373a92b4eec19571f40309263376a"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-10-08 03:51:33.000000000","tz":660},"subject":"Auto-sharding: Initial steps","message":"Auto-sharding: Initial steps\n\nThis patch is starting to set up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nThe autosharding needs to preperations. More info needs to be referencable from\nthe ring, this has been pulled out into Tim\u0027s patch 670673, namely the ring version.\n\nAnd secondly, creates an ELECT verb in the continer server that will\npull in the ring (when needed) and return a response with a json body\ncontaining the node, partition and ring version that the sharder will\nneed to make a decision.\n\nThere is also a small amount of prep in the sharder.\n\nNote, even this first patch is WIP, there was still tests and\ndocumentation updates required to it before we can even think of landing\nit.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/74632cd8334914e7e8175be34bd88db08ba6d818"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/74632cd8334914e7e8175be34bd88db08ba6d818"}]},"branch":"refs/heads/master"},"6f4cc87b9d645b1c050e684964f48c744dd87a61":{"kind":"REWORK","_number":7,"created":"2020-04-20 07:15:38.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/7"}}},"commit":{"parents":[{"commit":"f3543f5346a3d7ae31fe193f1336ef178da7db9b","subject":"Authors/ChangeLog for 2.25.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f3543f5346a3d7ae31fe193f1336ef178da7db9b"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2020-04-20 07:17:54.000000000","tz":0},"subject":"Auto-sharding: Initial steps","message":"Auto-sharding: Initial steps\n\nThis patch is starting to set up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nThe autosharding needs to preperations. More info needs to be referencable from\nthe ring, this has been pulled out into Tim\u0027s patch 670673, namely the ring version.\n\nAnd secondly, creates an ELECT verb in the continer server that will\npull in the ring (when needed) and return a response with a json body\ncontaining the node, partition and ring version that the sharder will\nneed to make a decision.\n\nThere is also a small amount of prep in the sharder.\n\nNote, even this first patch is WIP, there was still tests and\ndocumentation updates required to it before we can even think of landing\nit.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6f4cc87b9d645b1c050e684964f48c744dd87a61"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6f4cc87b9d645b1c050e684964f48c744dd87a61"}]},"branch":"refs/heads/master"},"e4a2abb2aa191142b5c69e25b9db2a0b62e9872c":{"kind":"REWORK","_number":8,"created":"2020-04-21 04:24:32.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/8"}}},"commit":{"parents":[{"commit":"f3543f5346a3d7ae31fe193f1336ef178da7db9b","subject":"Authors/ChangeLog for 2.25.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f3543f5346a3d7ae31fe193f1336ef178da7db9b"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2020-04-21 03:25:50.000000000","tz":0},"subject":"Auto-sharding: Initial steps","message":"Auto-sharding: Initial steps\n\nThis patch is starting to set up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nThe autosharding needs to preperations. More info needs to be referencable from\nthe ring, this has been pulled out into Tim\u0027s patch 670673, namely the ring version.\n\nAnd secondly, creates an ELECT verb in the continer server that will\npull in the ring (when needed) and return a response with a json body\ncontaining the node, partition and ring version that the sharder will\nneed to make a decision.\n\nThere is also a small amount of prep in the sharder.\n\nNote, even this first patch is WIP, there was still tests and\ndocumentation updates required to it before we can even think of landing\nit.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e4a2abb2aa191142b5c69e25b9db2a0b62e9872c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e4a2abb2aa191142b5c69e25b9db2a0b62e9872c"}]},"branch":"refs/heads/master"},"a99faba07978e698ff6523bcb8f87088cdfb74c0":{"kind":"TRIVIAL_REBASE","_number":9,"created":"2020-06-04 01:03:26.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/9"}}},"commit":{"parents":[{"commit":"9aced4db2732730fa73abecf21c9bc2dc6d77176","subject":"Merge \"Switch to newer openstackdocstheme and reno versions\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9aced4db2732730fa73abecf21c9bc2dc6d77176"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2019-06-24 07:01:51.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2020-06-04 01:02:31.000000000","tz":0},"subject":"Auto-sharding: Initial steps","message":"Auto-sharding: Initial steps\n\nThis patch is starting to set up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nThe autosharding needs to preperations. More info needs to be referencable from\nthe ring, this has been pulled out into Tim\u0027s patch 670673, namely the ring version.\n\nAnd secondly, creates an ELECT verb in the continer server that will\npull in the ring (when needed) and return a response with a json body\ncontaining the node, partition and ring version that the sharder will\nneed to make a decision.\n\nThere is also a small amount of prep in the sharder.\n\nNote, even this first patch is WIP, there was still tests and\ndocumentation updates required to it before we can even think of landing\nit.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a99faba07978e698ff6523bcb8f87088cdfb74c0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a99faba07978e698ff6523bcb8f87088cdfb74c0"}]},"branch":"refs/heads/master"},"84ffe70f9a8bb8ff8599d9775f9a502163ef4916":{"kind":"REWORK","_number":10,"created":"2024-03-20 06:23:35.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/10"}}},"commit":{"parents":[{"commit":"627448362abc1f83d9385165de232f47545f18e7","subject":"Merge \"CI: Remove centos-7 jobs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/627448362abc1f83d9385165de232f47545f18e7"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-20 06:23:09.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-20 06:23:09.000000000","tz":660},"subject":"Auto-sharding: first attempt at _elect_leader","message":"Auto-sharding: first attempt at _elect_leader\n\nThis patch sets up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nFor elections the sharder can make an ELECT call using a new ELECT verb\nin the continer server that will pull in the ring (when needed)\nand return a response with a json body containing the node, partition and\nring version that the sharder will need to make a decision:\n\n  {\"node\": \u003cindex 0 node dict from ring\u003e,\n   \"part\": \u003cring partition\u003e,\n   \"status\": \u003cdb status\u003e,\n   \"version\": \u003cring version\u003e}\n\nCurrently the auto-sharding has been implemented to search for x shards,\nadd them, and then next round find the next x. So scanning takes a while.\nWith the OP driven sharding, we scan for _all_ the shard ranges and then\ninsert them. This seems to be working even on large containers.\nI wonder if we should do the same in auto sharding? Scan for them all,\ncheck to see if we are still the leader (the authority on shard ranges)\nand if so insert them.\nBy using the db state we can make a decison. I.E if one of the other\nprimaries are already in the the SHARDING or SHARDED state then the\nelection should fail as someone else has inserted something (an OP\nor a split brain leader election thing).\n\nWe are being very safe, initially using an ALL primary majority. This\ncould mean that on very large containers by the time the leader has\nfinally scanned all ranges and ready to insert, a rebalance may have\ntaken place and potentially a new leader will need to start again.\nTurns out if we ever get into a state that means the container can\u0027t\nprogress then we have the OP tool to fall back on.\n\nThe current implementation goes something like this:\n - Send an ELECT call to all other primaries and gather responses.\n - Decide if I am the scanner based on some all the responses, including\nmy own. These entail:\n    ~ False if number of responses is \u003c quorum\n    ~ If there is more then one index 0 node (comparing only IP and\n      PORT) then filter the responses to only those with the latest ring\n      version[1].\n    ~ False if any of the responses are in SHARDING or SHARDED state.\n    ~ Make sure at least a quorum of responses are UNSHARDED[2]\n    ~ True if there is still a quorum of responses that think it\u0027s me[3]\n    ~ otherwise return false\n\nThis obviously only works in a scan all ranges scenario, currently the\ncode hasn\u0027t been modified to this, it\u0027s still X by X mode.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\n[1] - If there is a new ring version it might not effect our primaries,\nso if they all agree it\u0027s me regardless on ring version then great\n(though I haven\u0027t added a return True here yet cause still not\nconvinced).\n\n[2] - At the moment we on ALL quorum, if this ever changes we want a\nquorum of primaries to agree noting that we\u0027d have bombed out if we found\nany in the SHARDING or SHARDED state. Why this then, if we hit a node\nthat doesn\u0027t have the DB (either because it\u0027s new or it\u0027s replicated it\naway already) then the db state will be NOTFOUND. But it still has a\nring so should know who it thinks index 0 should be, so maybe it\u0027s vote\nstill means something.\n\n[3] - This guy is convinced he is index 0, so just confirming, if it\nisn\u0027t then _elect_leader will return false (ie well it isn\u0027t me then).\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/84ffe70f9a8bb8ff8599d9775f9a502163ef4916"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/84ffe70f9a8bb8ff8599d9775f9a502163ef4916"}]},"branch":"refs/heads/master"},"6fa4b85f263d67bb979579e3733336fe0bb2de60":{"kind":"REWORK","_number":11,"created":"2024-03-21 05:53:31.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/11"}}},"commit":{"parents":[{"commit":"627448362abc1f83d9385165de232f47545f18e7","subject":"Merge \"CI: Remove centos-7 jobs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/627448362abc1f83d9385165de232f47545f18e7"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-20 06:23:09.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-21 05:53:14.000000000","tz":660},"subject":"Auto-sharding: first attempt at _elect_leader","message":"Auto-sharding: first attempt at _elect_leader\n\nThis patch sets up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nFor elections the sharder can make an ELECT call using a new ELECT verb\nin the continer server that will pull in the ring (when needed)\nand return a response with a json body containing the node, partition and\nring version that the sharder will need to make a decision:\n\n  {\"node\": \u003cindex 0 node dict from ring\u003e,\n   \"part\": \u003cring partition\u003e,\n   \"status\": \u003cdb status\u003e,\n   \"version\": \u003cring version\u003e}\n\nCurrently the auto-sharding has been implemented to search for x shards,\nadd them, and then next round find the next x. So scanning takes a while.\nWith the OP driven sharding, we scan for _all_ the shard ranges and then\ninsert them. This seems to be working even on large containers.\nI wonder if we should do the same in auto sharding? Scan for them all,\ncheck to see if we are still the leader (the authority on shard ranges)\nand if so insert them.\nBy using the db state we can make a decison. I.E if one of the other\nprimaries are already in the the SHARDING or SHARDED state then the\nelection should fail as someone else has inserted something (an OP\nor a split brain leader election thing).\n\nWe are being very safe, initially using an ALL primary majority. This\ncould mean that on very large containers by the time the leader has\nfinally scanned all ranges and ready to insert, a rebalance may have\ntaken place and potentially a new leader will need to start again.\nTurns out if we ever get into a state that means the container can\u0027t\nprogress then we have the OP tool to fall back on.\n\nThe current implementation goes something like this:\n - Send an ELECT call to all other primaries and gather responses.\n - Decide if I am the scanner based on some all the responses, including\nmy own. These entail:\n    ~ False if number of responses is \u003c quorum\n    ~ If there is more then one index 0 node (comparing only IP and\n      PORT) then filter the responses to only those with the latest ring\n      version[1].\n    ~ False if any of the responses are in SHARDING or SHARDED state.\n    ~ Make sure at least a quorum of responses are UNSHARDED[2]\n    ~ True if there is still a quorum of responses that think it\u0027s me[3]\n    ~ otherwise return false\n\nThis obviously only works in a scan all ranges scenario, currently the\ncode hasn\u0027t been modified to this, it\u0027s still X by X mode.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\n[1] - If there is a new ring version it might not effect our primaries,\nso if they all agree it\u0027s me regardless on ring version then great\n(though I haven\u0027t added a return True here yet cause still not\nconvinced).\n\n[2] - At the moment we on ALL quorum, if this ever changes we want a\nquorum of primaries to agree noting that we\u0027d have bombed out if we found\nany in the SHARDING or SHARDED state. Why this then, if we hit a node\nthat doesn\u0027t have the DB (either because it\u0027s new or it\u0027s replicated it\naway already) then the db state will be NOTFOUND. But it still has a\nring so should know who it thinks index 0 should be, so maybe it\u0027s vote\nstill means something.\n\n[3] - This guy is convinced he is index 0, so just confirming, if it\nisn\u0027t then _elect_leader will return false (ie well it isn\u0027t me then).\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6fa4b85f263d67bb979579e3733336fe0bb2de60"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6fa4b85f263d67bb979579e3733336fe0bb2de60"}]},"branch":"refs/heads/master"},"ea35b7f8516a09a27c4ff6508436f73d0fb861f0":{"kind":"REWORK","_number":12,"created":"2024-03-22 05:57:14.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/12"}}},"commit":{"parents":[{"commit":"627448362abc1f83d9385165de232f47545f18e7","subject":"Merge \"CI: Remove centos-7 jobs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/627448362abc1f83d9385165de232f47545f18e7"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-20 06:23:09.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-22 05:48:05.000000000","tz":660},"subject":"Auto-sharding: first attempt at _elect_leader","message":"Auto-sharding: first attempt at _elect_leader\n\nThis patch sets up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nFor elections the sharder can make an ELECT call using a new ELECT verb\nin the continer server that will pull in the ring (when needed)\nand return a response with a json body containing the node, partition and\nring version that the sharder will need to make a decision:\n\n  {\"node\": \u003cindex 0 node dict from ring\u003e,\n   \"part\": \u003cring partition\u003e,\n   \"status\": \u003cdb status\u003e,\n   \"version\": \u003cring version\u003e}\n\nCurrently the auto-sharding has been implemented to search for x shards,\nadd them, and then next round find the next x. So scanning takes a while.\nWith the OP driven sharding, we scan for _all_ the shard ranges and then\ninsert them. This seems to be working even on large containers.\nI wonder if we should do the same in auto sharding? Scan for them all,\ncheck to see if we are still the leader (the authority on shard ranges)\nand if so insert them.\nBy using the db state we can make a decison. I.E if one of the other\nprimaries are already in the the SHARDING or SHARDED state then the\nelection should fail as someone else has inserted something (an OP\nor a split brain leader election thing).\n\nWe are being very safe, initially using an ALL primary majority. This\ncould mean that on very large containers by the time the leader has\nfinally scanned all ranges and ready to insert, a rebalance may have\ntaken place and potentially a new leader will need to start again.\nTurns out if we ever get into a state that means the container can\u0027t\nprogress then we have the OP tool to fall back on.\n\nThe current implementation goes something like this:\n - Send an ELECT call to all other primaries and gather responses.\n - Decide if I am the scanner based on some all the responses, including\nmy own. These entail:\n    ~ False if number of responses is \u003c quorum\n    ~ If there is more then one index 0 node (comparing only IP and\n      PORT) then filter the responses to only those with the latest ring\n      version[1].\n    ~ False if any of the responses are in SHARDING or SHARDED state.\n    ~ Make sure at least a quorum of responses are UNSHARDED[2]\n    ~ True if there is still a quorum of responses that think it\u0027s me[3]\n    ~ otherwise return false\n\nThis obviously only works in a scan all ranges scenario, currently the\ncode hasn\u0027t been modified to this, it\u0027s still X by X mode.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\n[1] - If there is a new ring version it might not effect our primaries,\nso if they all agree it\u0027s me regardless on ring version then great\n(though I haven\u0027t added a return True here yet cause still not\nconvinced).\n\n[2] - At the moment we on ALL quorum, if this ever changes we want a\nquorum of primaries to agree noting that we\u0027d have bombed out if we found\nany in the SHARDING or SHARDED state. Why this then, if we hit a node\nthat doesn\u0027t have the DB (either because it\u0027s new or it\u0027s replicated it\naway already) then the db state will be NOTFOUND. But it still has a\nring so should know who it thinks index 0 should be, so maybe it\u0027s vote\nstill means something.\n\n[3] - This guy is convinced he is index 0, so just confirming, if it\nisn\u0027t then _elect_leader will return false (ie well it isn\u0027t me then).\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ea35b7f8516a09a27c4ff6508436f73d0fb861f0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ea35b7f8516a09a27c4ff6508436f73d0fb861f0"}]},"branch":"refs/heads/master"},"fa284b8444282912f5485a7e3c260be2087b150c":{"kind":"REWORK","_number":13,"created":"2024-03-25 04:05:15.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/13"}}},"commit":{"parents":[{"commit":"627448362abc1f83d9385165de232f47545f18e7","subject":"Merge \"CI: Remove centos-7 jobs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/627448362abc1f83d9385165de232f47545f18e7"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-20 06:23:09.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-25 03:52:40.000000000","tz":660},"subject":"Auto-sharding: first attempt at _elect_leader","message":"Auto-sharding: first attempt at _elect_leader\n\nThis patch sets up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version.\n\nFor elections the sharder can make an ELECT call using a new ELECT verb\nin the continer server that will pull in the ring (when needed)\nand return a response with a json body containing the node, partition and\nring version that the sharder will need to make a decision:\n\n  {\"node\": \u003cindex 0 node dict from ring\u003e,\n   \"part\": \u003cring partition\u003e,\n   \"status\": \u003cdb status\u003e,\n   \"version\": \u003cring version\u003e}\n\nCurrently the auto-sharding has been implemented to search for x shards,\nadd them, and then next round find the next x. So scanning takes a while.\nWith the OP driven sharding, we scan for _all_ the shard ranges and then\ninsert them. This seems to be working even on large containers.\nI wonder if we should do the same in auto sharding? Scan for them all,\ncheck to see if we are still the leader (the authority on shard ranges)\nand if so insert them.\nBy using the db state we can make a decison. I.E if one of the other\nprimaries are already in the the SHARDING or SHARDED state then the\nelection should fail as someone else has inserted something (an OP\nor a split brain leader election thing).\n\nWe are being very safe, initially using an ALL primary majority. This\ncould mean that on very large containers by the time the leader has\nfinally scanned all ranges and ready to insert, a rebalance may have\ntaken place and potentially a new leader will need to start again.\nTurns out if we ever get into a state that means the container can\u0027t\nprogress then we have the OP tool to fall back on.\n\nThe current implementation goes something like this:\n - Send an ELECT call to all other primaries and gather responses.\n - Decide if I am the scanner based on some all the responses, including\nmy own. These entail:\n    ~ False if number of responses is \u003c quorum\n    ~ If there is more then one index 0 node (comparing only IP and\n      PORT) then filter the responses to only those with the latest ring\n      version[1].\n    ~ False if any of the responses are in SHARDING or SHARDED state.\n    ~ Make sure at least a quorum of responses are UNSHARDED[2]\n    ~ True if there is still a quorum of responses that think it\u0027s me[3]\n    ~ otherwise return false\n\nThis obviously only works in a scan all ranges scenario, currently the\ncode hasn\u0027t been modified to this, it\u0027s still X by X mode.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\n[1] - If there is a new ring version it might not effect our primaries,\nso if they all agree it\u0027s me regardless on ring version then great\n(though I haven\u0027t added a return True here yet cause still not\nconvinced).\n\n[2] - At the moment we on ALL quorum, if this ever changes we want a\nquorum of primaries to agree noting that we\u0027d have bombed out if we found\nany in the SHARDING or SHARDED state. Why this then, if we hit a node\nthat doesn\u0027t have the DB (either because it\u0027s new or it\u0027s replicated it\naway already) then the db state will be NOTFOUND. But it still has a\nring so should know who it thinks index 0 should be, so maybe it\u0027s vote\nstill means something.\n\n[3] - This guy is convinced he is index 0, so just confirming, if it\nisn\u0027t then _elect_leader will return false (ie well it isn\u0027t me then).\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fa284b8444282912f5485a7e3c260be2087b150c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fa284b8444282912f5485a7e3c260be2087b150c"}]},"branch":"refs/heads/master"},"f60de3c533c68dcb3ab30375c99c5c38b9ddc7e6":{"kind":"REWORK","_number":14,"created":"2024-04-08 04:50:05.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/14"}}},"commit":{"parents":[{"commit":"627448362abc1f83d9385165de232f47545f18e7","subject":"Merge \"CI: Remove centos-7 jobs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/627448362abc1f83d9385165de232f47545f18e7"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-20 06:23:09.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-04-08 04:42:24.000000000","tz":600},"subject":"Auto-sharding: first attempt at _elect_leader","message":"Auto-sharding: first attempt at _elect_leader\n\nThis patch sets up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - Default is majority quorum, but we may want to be extra careful and\n    use the _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version AND\n    3. what is you db_state AND\n    4. do you already have shards (although this only comes when we\n       don\u0027t scan in batches).\n\nFor elections the sharder can make an ELECT call using a new ELECT verb\nin the continer server that will pull in the ring (when needed)\nand return a response with a json body containing the node, partition and\nring version that the sharder will need to make a decision:\n\n  {\"node\": \u003cindex 0 node dict from ring\u003e,\n   \"part\": \u003cring partition\u003e,\n   \"status\": \u003cdb status\u003e,\n   \"version\": \u003cring version\u003e,\n   \"db_state\": \u003cdb_state\u003e,\n   \"has_shards\": \u003ctrue/false\u003e}\n\nCurrently the auto-sharding has been implemented to search for x shards,\nadd them, and then next round find the next x. So scanning takes a while.\nWith the OP driven sharding, we scan for _all_ the shard ranges and then\ninsert them. This seems to be working even on large containers.\nI wonder if we should do the same in auto sharding? Scan for them all,\ncheck to see if we are still the leader (the authority on shard ranges)\nand if so insert them.\nBy using the db state we can make a decison. I.E if one of the other\nprimaries are already in the the SHARDING or SHARDED state then the\nelection should fail as someone else has inserted something (an OP\nor a split brain leader election thing).\n\nWe are being very safe, initially using an ALL primary majority. This\ncould mean that on very large containers by the time the leader has\nfinally scanned all ranges and ready to insert, a rebalance may have\ntaken place and potentially a new leader will need to start again.\nTurns out if we ever get into a state that means the container can\u0027t\nprogress then we have the OP tool to fall back on.\n\nThe current implementation goes something like this:\n - Send an ELECT call to all other primaries and gather responses.\n - Decide if I am the scanner based on some all the responses, including\nmy own. These entail:\n    ~ False if number of responses is \u003c quorum\n    ~ If there is more then one index 0 node (comparing only IP and\n      PORT) then filter the responses to only those with the latest ring\n      version[1].\n    ~ False if any of the responses are in SHARDING or SHARDED state.\n    ~ Make sure at least a quorum of responses are UNSHARDED[2]\n    ~ True if there is still a quorum of responses that think it\u0027s me[3]\n    ~ otherwise return false\n\nThis obviously only works in a scan all ranges scenario, currently the\ncode hasn\u0027t been modified to this, it\u0027s still X by X mode.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\n[1] - If there is a new ring version it might not effect our primaries,\nso if they all agree it\u0027s me regardless on ring version then great\n(though I haven\u0027t added a return True here yet cause still not\nconvinced).\n\n[2] - At the moment we on ALL quorum, if this ever changes we want a\nquorum of primaries to agree noting that we\u0027d have bombed out if we found\nany in the SHARDING or SHARDED state. Why this then, if we hit a node\nthat doesn\u0027t have the DB (either because it\u0027s new or it\u0027s replicated it\naway already) then the db state will be NOTFOUND. But it still has a\nring so should know who it thinks index 0 should be, so maybe it\u0027s vote\nstill means something.\n\n[3] - This guy is convinced he is index 0, so just confirming, if it\nisn\u0027t then _elect_leader will return false (ie well it isn\u0027t me then).\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f60de3c533c68dcb3ab30375c99c5c38b9ddc7e6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f60de3c533c68dcb3ab30375c99c5c38b9ddc7e6"}]},"branch":"refs/heads/master"},"f9c7a0b1859ccd082f97f558df61f8777a9ac229":{"kind":"REWORK","_number":15,"created":"2024-04-08 04:58:25.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/15"}}},"commit":{"parents":[{"commit":"627448362abc1f83d9385165de232f47545f18e7","subject":"Merge \"CI: Remove centos-7 jobs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/627448362abc1f83d9385165de232f47545f18e7"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-20 06:23:09.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-04-08 04:57:47.000000000","tz":600},"subject":"Auto-sharding: first attempt at _elect_leader","message":"Auto-sharding: first attempt at _elect_leader\n\nThis patch sets up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version AND\n    3. what is the current db_state\n\nFor elections the sharder can make an ELECT call using a new ELECT verb\nin the continer server that will pull in the ring (when needed)\nand return a response with a json body containing the node, partition and\nring version that the sharder will need to make a decision:\n\n  {\"node\": \u003cindex 0 node dict from ring\u003e,\n   \"part\": \u003cring partition\u003e,\n   \"status\": \u003cdb status\u003e,\n   \"version\": \u003cring version\u003e}\n\nCurrently the auto-sharding has been implemented to search for x shards,\nadd them, and then next round find the next x. So scanning takes a while.\nWith the OP driven sharding, we scan for _all_ the shard ranges and then\ninsert them. This seems to be working even on large containers.\nI wonder if we should do the same in auto sharding? Scan for them all,\ncheck to see if we are still the leader (the authority on shard ranges)\nand if so insert them.\nBy using the db state we can make a decison. I.E if one of the other\nprimaries are already in the the SHARDING or SHARDED state then the\nelection should fail as someone else has inserted something (an OP\nor a split brain leader election thing).\n\nWe are being very safe, initially using an ALL primary majority. This\ncould mean that on very large containers by the time the leader has\nfinally scanned all ranges and ready to insert, a rebalance may have\ntaken place and potentially a new leader will need to start again.\nTurns out if we ever get into a state that means the container can\u0027t\nprogress then we have the OP tool to fall back on.\n\nThe current implementation goes something like this:\n - Send an ELECT call to all other primaries and gather responses.\n - Decide if I am the scanner based on some all the responses, including\nmy own. These entail:\n    ~ False if number of responses is \u003c quorum\n    ~ If there is more then one index 0 node (comparing only IP and\n      PORT) then filter the responses to only those with the latest ring\n      version[1].\n    ~ False if any of the responses are in SHARDING or SHARDED state.\n    ~ Make sure at least a quorum of responses are UNSHARDED[2]\n    ~ True if there is still a quorum of responses that think it\u0027s me[3]\n    ~ otherwise return false\n\nThis obviously only works in a scan all ranges scenario, currently the\ncode hasn\u0027t been modified to this, it\u0027s still X by X mode.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\n[1] - If there is a new ring version it might not effect our primaries,\nso if they all agree it\u0027s me regardless on ring version then great\n(though I haven\u0027t added a return True here yet cause still not\nconvinced).\n\n[2] - At the moment we on ALL quorum, if this ever changes we want a\nquorum of primaries to agree noting that we\u0027d have bombed out if we found\nany in the SHARDING or SHARDED state. Why this then, if we hit a node\nthat doesn\u0027t have the DB (either because it\u0027s new or it\u0027s replicated it\naway already) then the db state will be NOTFOUND. But it still has a\nring so should know who it thinks index 0 should be, so maybe it\u0027s vote\nstill means something.\n\n[3] - This guy is convinced he is index 0, so just confirming, if it\nisn\u0027t then _elect_leader will return false (ie well it isn\u0027t me then).\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f9c7a0b1859ccd082f97f558df61f8777a9ac229"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f9c7a0b1859ccd082f97f558df61f8777a9ac229"}]},"branch":"refs/heads/master"},"93ebb5493aa93e3f976d3f3c6b4a526acd17973f":{"kind":"TRIVIAL_REBASE","_number":16,"created":"2024-04-08 04:59:33.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/30/667030/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/30/667030/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/30/667030/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/30/667030/16"}}},"commit":{"parents":[{"commit":"6387949a540e871e19062de8131503a8ac2ceef7","subject":"lower-constraints: update to mock 3.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6387949a540e871e19062de8131503a8ac2ceef7"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-03-20 06:23:09.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2024-04-08 04:59:33.000000000","tz":0},"subject":"Auto-sharding: first attempt at _elect_leader","message":"Auto-sharding: first attempt at _elect_leader\n\nThis patch sets up the code to support\nauto-sharding 2.0. This is the start of a patch chain\nthat will attempt to implement what was discussed at\nthe PTG in denver[0].\n\nThe next auto-shard version will continue to use Sam\u0027s\nindex 0 node to be the leader, but will also use ring\nversion counter to strip ignore any old nodes in the cluster.\nThis will require some quorum checks with other primary nodes.\n\nThe general plan is:\n  - The scanner will use a 2 phase check.\n  - And a mix of historic versions 1 and 2:\n    1. The scanner will use the 2 phase checking.\n          am I index 0 \u003e scan \u003e am I still the scanner \u003e commit shard ranges\n    2. Use Sam\u0027s index 0, but also include the ring version when making a decision,\n       as a way to discredit old primaries that are now handoff nodes\n       (if they don\u0027t agree with the latest ring version).\n  - To start with be extra cautious. NOT majority quorum _all_ primary quorum.\n  - Response from each primary during quorum check will be:\n    1. who do you think index 0 is AND\n    2. what is your current ring version AND\n    3. what is the current db_state\n\nFor elections the sharder can make an ELECT call using a new ELECT verb\nin the continer server that will pull in the ring (when needed)\nand return a response with a json body containing the node, partition and\nring version that the sharder will need to make a decision:\n\n  {\"node\": \u003cindex 0 node dict from ring\u003e,\n   \"part\": \u003cring partition\u003e,\n   \"status\": \u003cdb status\u003e,\n   \"version\": \u003cring version\u003e}\n\nCurrently the auto-sharding has been implemented to search for x shards,\nadd them, and then next round find the next x. So scanning takes a while.\nWith the OP driven sharding, we scan for _all_ the shard ranges and then\ninsert them. This seems to be working even on large containers.\nI wonder if we should do the same in auto sharding? Scan for them all,\ncheck to see if we are still the leader (the authority on shard ranges)\nand if so insert them.\nBy using the db state we can make a decison. I.E if one of the other\nprimaries are already in the the SHARDING or SHARDED state then the\nelection should fail as someone else has inserted something (an OP\nor a split brain leader election thing).\n\nWe are being very safe, initially using an ALL primary majority. This\ncould mean that on very large containers by the time the leader has\nfinally scanned all ranges and ready to insert, a rebalance may have\ntaken place and potentially a new leader will need to start again.\nTurns out if we ever get into a state that means the container can\u0027t\nprogress then we have the OP tool to fall back on.\n\nThe current implementation goes something like this:\n - Send an ELECT call to all other primaries and gather responses.\n - Decide if I am the scanner based on some all the responses, including\nmy own. These entail:\n    ~ False if number of responses is \u003c quorum\n    ~ If there is more then one index 0 node (comparing only IP and\n      PORT) then filter the responses to only those with the latest ring\n      version[1].\n    ~ False if any of the responses are in SHARDING or SHARDED state.\n    ~ Make sure at least a quorum of responses are UNSHARDED[2]\n    ~ True if there is still a quorum of responses that think it\u0027s me[3]\n    ~ otherwise return false\n\nThis obviously only works in a scan all ranges scenario, currently the\ncode hasn\u0027t been modified to this, it\u0027s still X by X mode.\n\n[0] https://etherpad.openstack.org/p/swift-ptg-train (see Sharding next\nsteps)\n\n[1] - If there is a new ring version it might not effect our primaries,\nso if they all agree it\u0027s me regardless on ring version then great\n(though I haven\u0027t added a return True here yet cause still not\nconvinced).\n\n[2] - At the moment we on ALL quorum, if this ever changes we want a\nquorum of primaries to agree noting that we\u0027d have bombed out if we found\nany in the SHARDING or SHARDED state. Why this then, if we hit a node\nthat doesn\u0027t have the DB (either because it\u0027s new or it\u0027s replicated it\naway already) then the db state will be NOTFOUND. But it still has a\nring so should know who it thinks index 0 should be, so maybe it\u0027s vote\nstill means something.\n\n[3] - This guy is convinced he is index 0, so just confirming, if it\nisn\u0027t then _elect_leader will return false (ie well it isn\u0027t me then).\n\nChange-Id: Ie105210fd4dc627d61d0cbd28fd468be4917f558\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/93ebb5493aa93e3f976d3f3c6b4a526acd17973f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/93ebb5493aa93e3f976d3f3c6b4a526acd17973f"}]},"branch":"refs/heads/master","description":"Rebase"}},"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":""}}}]}
