)]}'
{"id":"openstack%2Fswift~777035","triplet_id":"openstack%2Fswift~stable%2Fvictoria~I6543bfff5ca517ab4d6ffda881e3a50724078c65","project":"openstack/swift","branch":"stable/victoria","topic":"victoria-sharding","hashtags":[],"change_id":"I6543bfff5ca517ab4d6ffda881e3a50724078c65","subject":"Populate shrinking shards with shard ranges learnt from root","status":"MERGED","created":"2021-02-23 00:47:18.000000000","updated":"2021-02-23 19:52:12.000000000","submitted":"2021-02-23 19:37:26.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"777035-victoria-sharding","meta_rev_id":"f899df347814bd41e78b58cbcad8ca11329b76f8","_number":777035,"virtual_id_number":777035,"owner":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2021-02-23 19:37:17.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2021-02-23 05:52:15.000000000","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":{"approved":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2021-02-23 05:52:15.000000000","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":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"}],"reviewers":{"REVIEWER":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-02-23 00:47:18.000000000","updated_by":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2021-02-23 01:54:48.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":"2021-02-23 05:52:15.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"}],"messages":[{"id":"aecce8173ba7382a8935eddeb920e3da70f46249","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2021-02-23 00:47:18.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"7b3f3e672e793164d28fd622b55ec042012b07c9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 01:54:48.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/40222bf4087e46409573f0cd21a758a5 : SUCCESS in 9m 06s\n- grenade https://zuul.opendev.org/t/openstack/build/b3d3bab59fc74a81895ad9909582af55 : SUCCESS in 1h 02m 59s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f9b5b89740954f63881335b7e39c27c5 : SUCCESS in 43m 29s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6a3dd76926c740b2b1c4527e46881645 : SUCCESS in 10m 13s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/8e236f4b3e19407cb6d2ca0b790af744 : SUCCESS in 7m 07s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/62436009b1684eea91ea966e2fde63ea : SUCCESS in 13m 04s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/b942780d610b420389cd226d8be0a9f5 : SUCCESS in 13m 12s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/e26576fde71648e88a57e2937778dad3 : SUCCESS in 13m 41s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/29b5849fae5f4306be82d801d31e5d7c : SUCCESS in 12m 52s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/96354486dde14ac78f511c25de510bdf : SUCCESS in 16m 08s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/d9928a395961485490bc7f1521a82422 : SUCCESS in 18m 14s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/fd6f9be5ca194923b96d2b9fd74cdcf7 : SUCCESS in 16m 42s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/e17fe8021ac24437bcf271b9aa8bbdfe : SUCCESS in 16m 22s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/2164dbb39ff8479db201ec648e8b0610 : SUCCESS in 20m 27s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/9fd48bf9e1214a62adfabad85be72b00 : SUCCESS in 18m 10s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/81be7cb66fd74fd98af96c86a8442197 : SUCCESS in 21m 44s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/d547bf988eb44c148546f4f04e4cbf94 : SUCCESS in 44m 25s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a6a69c404c2c4cc4b18fdb7623e3b15f : SUCCESS in 38m 57s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/0ee1cc051420493b9647c4e940394964 : SUCCESS in 56m 42s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/0bd3a99a4eff4f5a8abdb69197197fd2 : SUCCESS in 13m 17s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8336750334ca4f3dac65f3ff4ce667e1 : SUCCESS in 7m 09s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/6ef500b90a744c4890ae6f5f7512312b : FAILURE in 10m 59s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/def6a4c6e4e54ab2bf1cbc0cb16d5688 : SUCCESS in 1h 00m 46s","accounts_in_message":[],"_revision_number":1},{"id":"992dbd0e2e2bb9c2483534941d7cabf0141df782","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2021-02-23 05:52:15.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\nClean cherry-pick; has ample test coverage. The new state gives me pause, but it\u0027s the same upgrade story we\u0027ve always offered.","accounts_in_message":[],"_revision_number":1},{"id":"0abaa84bae466801df9a753234b90475d8558f9a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 05:52:37.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"812041b334b39d876a396b39a999954d4b64fa25","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 19:37:17.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c69d7f3633964047877e81a4f78a6274 : SUCCESS in 9m 18s\n- grenade https://zuul.opendev.org/t/openstack/build/99f632225a06469c96c01b14fef2aafa : SUCCESS in 1h 06m 44s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/acaf2c2ad23b4618bf950d302fd20bb9 : SUCCESS in 48m 01s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/46a9a190ac4a4a05a3fa897d1dbefea5 : SUCCESS in 10m 05s (non-voting)\n- swift-upload-image-py3 https://zuul.opendev.org/t/openstack/build/9537fbab37a74bc7a93492b9f4e999a3 : SUCCESS in 7m 24s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/32e38ed05d774f15a2eab2d74eba1bcc : SUCCESS in 14m 21s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/6b73e49ea92c43f4b80aa0f207a7c184 : SUCCESS in 13m 10s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/513169058cd34016b59f225540f0261f : SUCCESS in 14m 45s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/37058ef642614696b9d037512143dc06 : SUCCESS in 13m 42s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/38387ac682744459983416332b0f05f6 : SUCCESS in 19m 26s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/26132acee185487e9b552dc0a5e00d4a : SUCCESS in 16m 28s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/e5220e6054594aefb34b229d89af682d : SUCCESS in 18m 18s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/20f8888b636041f58d40c7fa4248b8ca : SUCCESS in 19m 13s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/5e894cc030c24844beff5e4aac17077d : SUCCESS in 17m 44s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/ea998be81e5742a9b6f2c5343436cfaf : SUCCESS in 42m 50s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/7bda040a5a9b48fbbc70bb5ac345f260 : SUCCESS in 38m 09s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/1f68f0a94fd9439a9624a5bf2ed9a9bc : SUCCESS in 38m 26s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/7ce76d1f68be457ea85bf75825f17f8c : SUCCESS in 13m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/93f7249267f04f6e95bbd30a2532038c : SUCCESS in 6m 29s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/5a222de9d9ee475e86e18a4d4c512beb : SUCCESS in 1h 00m 26s","accounts_in_message":[],"_revision_number":1},{"id":"e75a394e275d5703def404a13ab36b1857e8bf34","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 19:37:26.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":1},{"id":"f899df347814bd41e78b58cbcad8ca11329b76f8","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-23 19:52:12.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c608307551db4079a815c7e274c52629 : SUCCESS in 57s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/bc6f3f10493f41b6b2c343e4406ee983 : SUCCESS in 54s (non-voting)\n- swift-promote-image-py3 https://zuul.opendev.org/t/openstack/build/9ab86a5798bf4a97873a18c9edc9eab0 : SUCCESS in 57s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"2558be42c806ca19f913f20fb201a7a0597a71fb","revisions":{"2558be42c806ca19f913f20fb201a7a0597a71fb":{"kind":"REWORK","_number":1,"created":"2021-02-23 00:47:18.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/35/777035/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/35/777035/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/35/777035/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/35/777035/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/35/777035/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/35/777035/1"}}},"commit":{"parents":[{"commit":"f7f0d62c931b81df809f4882aba3abb4f0b42554","subject":"Use swiftclient Connections in sharding probe tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f7f0d62c931b81df809f4882aba3abb4f0b42554"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2020-11-09 21:46:45.000000000","tz":-360},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2021-02-23 00:29:48.000000000","tz":-360},"subject":"Populate shrinking shards with shard ranges learnt from root","message":"Populate shrinking shards with shard ranges learnt from root\n\nShard shrinking can be instigated by a third party modifying shard\nranges, moving one shard to shrinking state and expanding the\nnamespace of one or more other shard(s) to act as acceptors. These\nstate and namespace changes must propagate to the shrinking and\nacceptor shards. The shrinking shard must also discover the acceptor\nshard(s) into which it will shard itself.\n\nThe sharder audit function already updates shards with their own state\nand namespace changes from the root. However, there is currently no\nmechanism for the shrinking shard to learn about the acceptor(s) other\nthan by a PUT request being made to the shrinking shard container.\n\nThis patch modifies the shard container audit function so that other\noverlapping shards discovered from the root are merged into the\naudited shard\u0027s db. In this way, the audited shard will have acceptor\nshards to cleave to if shrinking.\n\nThis new behavior is restricted to when the shard is shrinking. In\ngeneral, a shard is responsible for processing its own sub-shard\nranges (if any) and reporting them to root. Replicas of a shard\ncontainer synchronise their sub-shard ranges via replication, and do\nnot rely on the root to propagate sub-shard ranges between shard\nreplicas. The exception to this is when a third party (or\nauto-sharding) wishes to instigate shrinking by modifying the shard\nand other acceptor shards in the root container.  In other\ncircumstances, merging overlapping shard ranges discovered from the\nroot is undesirable because it risks shards inheriting other unrelated\nshard ranges. For example, if the root has become polluted by\nsplit-brain shard range management, a sharding shard may have its\nsub-shards polluted by an undesired shard from the root.\n\nDuring the shrinking process a shard range\u0027s own shard range state may\nbe either shrinking or, prior to this patch, sharded. The sharded\nstate could occur when one replica of a shrinking shard completed\nshrinking and moved the own shard range state to sharded before other\nreplica(s) had completed shrinking. This makes it impossible to\ndistinguish a shrinking shard (with sharded state), which we do want\nto inherit shard ranges, from a sharding shard (with sharded state),\nwhich we do not want to inherit shard ranges.\n\nThis patch therefore introduces a new shard range state, \u0027SHRUNK\u0027, and\napplies this state to shard ranges that have completed shrinking.\nShards are now restricted to inherit shard ranges from the root only\nwhen their own shard range state is either SHRINKING or SHRUNK.\n\nThis patch also:\n\n - Stops overlapping shrinking shards from generating audit warnings:\n   overlaps are cured by shrinking and we therefore expect shrinking\n   shards to sometimes overlap.\n\n - Extends an existing probe test to verify that overlapping shard\n   ranges may be resolved by shrinking a subset of the shard ranges.\n\n - Adds a --no-auto-shard option to swift-container-sharder to enable the\n   probe tests to disable auto-sharding.\n\n - Improves sharder logging, in particular by decrementing ranges_todo\n   when a shrinking shard is skipped during cleaving.\n\n - Adds a ShardRange.sort_key class method to provide a single definition\n   of ShardRange sort ordering.\n\n - Improves unit test coverage for sharder shard auditing.\n\nCo-Authored-By: Tim Burke \u003ctim.burke@gmail.com\u003e\nCo-Authored-By: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCherry-Picked-From: I9034a5715406b310c7282f1bec9625fe7acd57b6\nChange-Id: I6543bfff5ca517ab4d6ffda881e3a50724078c65\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2558be42c806ca19f913f20fb201a7a0597a71fb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2558be42c806ca19f913f20fb201a7a0597a71fb"}]},"branch":"refs/heads/stable/victoria"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}},{"label":"Workflow","status":"OK","applied_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Workflow\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}}]}
