)]}'
{"id":"openstack%2Fswift~777288","triplet_id":"openstack%2Fswift~stable%2Fussuri~Ifc5d1ae142f63520df49fe610c94b332dcea3180","project":"openstack/swift","branch":"stable/ussuri","topic":"ussuri-sharding","hashtags":[],"change_id":"Ifc5d1ae142f63520df49fe610c94b332dcea3180","subject":"Populate shrinking shards with shard ranges learnt from root","status":"MERGED","created":"2021-02-24 03:15:09.000000000","updated":"2021-03-01 10:28:35.000000000","submitted":"2021-03-01 10:24:58.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":"777288-ussuri-sharding","meta_rev_id":"962f1cc7a8abe922dd4fd7662b4ec589655cb862","_number":777288,"virtual_id_number":777288,"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-03-01 10:24:56.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-26 20:34:27.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-26 20:34:27.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-24 03:15:09.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-24 04:21:43.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-26 20:34:27.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":"bb147bf848ffe2994266bd6936729a1d4a4e56a9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2021-02-24 03:15:09.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"e3fdfdbc6128fbe6ca1f5a42701de37d7b568589","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-24 04:21:43.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a2a618bd9e5645b3a08fd7acf96cc8b2 : SUCCESS in 7m 58s\n- grenade https://zuul.opendev.org/t/openstack/build/4a29d2fca91c435489dbe15c8eb8c7f3 : SUCCESS in 53m 45s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/4f1a948e947644659aeb22c1bd5c0ce2 : SUCCESS in 35m 00s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/24eac769c7fa4aeca61294e515043d8d : SUCCESS in 8m 43s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/fb0e0b65b8cf48649f4682a7ab60dfc6 : SUCCESS in 7m 09s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/a9895a36ad2e48ff9fc7a0b2afa46593 : SUCCESS in 12m 10s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/dc5283f47bce48498ff555d7da0b70a8 : SUCCESS in 12m 00s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/040a198f64074aa0a6f146ab24c020dc : SUCCESS in 12m 24s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/90d407bfaa7c4016aaa45b7000b8197c : SUCCESS in 12m 25s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/3d17cf114fbf4d3096cefd813b792839 : SUCCESS in 9m 45s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/1d33e41ae0eb4829a40f2f74ecda0239 : SUCCESS in 11m 13s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/8901915e88cf406381b1e7e2ec765c38 : SUCCESS in 9m 15s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/201e2e5235fb491792a001f9500ffe4e : SUCCESS in 10m 10s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/326464401f8a48ac8c7f2b7da37f4cf8 : SUCCESS in 13m 55s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/dc9f7acec9534b33989a239bb3971d78 : SUCCESS in 10m 30s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/98cabcfa58534a7db9d505b44b69e972 : SUCCESS in 12m 32s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/633348f4fe224e47b0efdf9d2c3f5f1e : SUCCESS in 10m 18s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/f27f1194ef5e404b9a758478b2f67294 : SUCCESS in 10m 50s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/ac5b7d9fec1d46ae8c868203dfa256c6 : SUCCESS in 14m 43s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/8b52da70d38d40f688a296c38d952ea5 : SUCCESS in 22m 13s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/e396f1734b51485a85817997871038a2 : SUCCESS in 42m 31s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/9a65da7259ef4e4eb6cd72a8c989762c : SUCCESS in 26m 50s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/72e207d27d1141b7b04e1fe6bdc0ed02 : SUCCESS in 27m 02s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/13627477b0fc4a5892d25f04996e67eb : SUCCESS in 27m 00s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a1624cb0fd6c425f8bbc945632c3df1a : SUCCESS in 12m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a296a1a6afa8497ca7995a155291d7b4 : SUCCESS in 6m 01s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/53ac54da8fb34b7093204b59892577dd : FAILURE in 11m 38s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/b4a2c5f6a9db40f0af9fd168f7349c1d : SUCCESS in 58m 23s","accounts_in_message":[],"_revision_number":1},{"id":"0cad03cd9ccef3b71e4398e20ac8273f40258abc","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2021-02-26 20:34:27.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\nWill ship in wallaby, but already backported to victoria as https://review.opendev.org/c/openstack/swift/+/777035. Clean cherry-pick.","accounts_in_message":[],"_revision_number":1},{"id":"ca052c9ad05de9a0be75f72f16ab389a4216f54d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-26 22:36:45.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"3fe196f13fc6dcf95ff295db1df1907fda9ca528","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-26 23:59:45.000000000","message":"Patch Set 1: Verified-2\n\nThis change depends on a change that failed to merge.","accounts_in_message":[],"_revision_number":1},{"id":"97ae21ad67aca2ad795a2b69f12419862eef188d","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2021-03-01 06:23:56.000000000","message":"Patch Set 1:\n\nrecheck","accounts_in_message":[],"_revision_number":1},{"id":"868d69a730ee4e2130fee984bfac81f779bd40a3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-01 08:04:54.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/63e149c02dfc4652a29cbec59fdd8bb6 : SUCCESS in 8m 50s\n- grenade https://zuul.opendev.org/t/openstack/build/8fa4f71a1c834f05beaf91eb89058abc : SUCCESS in 1h 08m 36s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/421a51da49074e90927311c009be730f : SUCCESS in 51m 21s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/8c39efe1535249e7b2f77c0afe2167ce : SUCCESS in 12m 19s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/9c4339bd45d74896a8369d12ee82913a : SUCCESS in 8m 31s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/00b6bedc62e042c6a882b8e5dd4394e7 : SUCCESS in 12m 52s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/efe854d05276436b9b904ed2f887573b : SUCCESS in 13m 23s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/8af82fe25ae44337b5e4b597ff762b62 : SUCCESS in 13m 55s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/e13072dda58f4e5da899fee29c317f9a : SUCCESS in 14m 04s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/4b74cdde115a44e38979dffcc2fe725a : SUCCESS in 10m 45s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/ea22cfd6d2c94792a3da75f7ea36c02e : SUCCESS in 12m 31s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/0898e6c18db742229670f62e9ace9f26 : SUCCESS in 10m 35s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/b02ad2a5f03449d18f117f9e2e838d5a : SUCCESS in 13m 54s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/7a7c52e416f647daa8d3c8ff074bfc54 : SUCCESS in 17m 47s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/4164e7fce90c49d7aea81645e7e6a25a : SUCCESS in 13m 30s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/1005d7f494b4425e9da59f9f1e316331 : SUCCESS in 16m 36s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/b242d5c2f74e4cd7840dc842a873a0fe : SUCCESS in 13m 49s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/ca1d58c6a10a409487cd39ca75996214 : SUCCESS in 11m 38s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/9cff2ee06e334bd88c9990d754343c00 : SUCCESS in 17m 39s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/6273de42948c4f748c6111b91cd8f608 : SUCCESS in 27m 02s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/d50738903908460d8f93aba93a7c5e83 : SUCCESS in 42m 59s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b184c7084e654665a4feb1fd2b95ff52 : SUCCESS in 28m 18s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/0c9e15fd12054dacb8609195239f9b64 : SUCCESS in 27m 41s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/178c8a7869de4f8b890e36089b2f0c5d : SUCCESS in 25m 10s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/8dd46e6e6ddf4af19a028aa4fef7e483 : SUCCESS in 18m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1ed129c17d764b1f89526a98b05c0807 : SUCCESS in 7m 20s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/cf382d64ce1b44d395c50c3e4b15c0cc : FAILURE in 12m 25s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/74f87a8926634b7897439c7d2b86b9d8 : SUCCESS in 1h 00m 36s","accounts_in_message":[],"_revision_number":1},{"id":"dc31a77012e73a2a508ed0407a6c0655244c103c","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-01 08:05:16.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"1aad6081df84d6a759adf1f65abc278aad249e7d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-01 10:24:56.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1dc8f9ab94f74b40a1ad557f361bcebd : SUCCESS in 8m 52s\n- grenade https://zuul.opendev.org/t/openstack/build/7c530d8187d543179cad9c142dc8e4ed : SUCCESS in 1h 17m 26s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/51b7f805c5c94611a95277109094c1a8 : SUCCESS in 33m 33s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/eba09f460a94414c995649f7dae1227d : SUCCESS in 10m 30s (non-voting)\n- swift-upload-image-py3 https://zuul.opendev.org/t/openstack/build/36928c05bbf04d3b9eeb708881844d49 : SUCCESS in 7m 08s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/8709cc0376114db395ab295d672c3c31 : SUCCESS in 13m 59s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/dfe4200c55a7431996208f821932cc6e : SUCCESS in 17m 38s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/ce04dc31d13847d4b9c7845a63e10f74 : SUCCESS in 13m 30s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/e9db01402d21432cb829f363742a0688 : SUCCESS in 15m 30s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/9342b714dd65412aa8c60289c281d444 : SUCCESS in 10m 34s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/57c8ebdd3c5148c784c7488a9a1719a6 : SUCCESS in 11m 42s\n- swift-tox-func-domain-remap-staticweb-py27 https://zuul.opendev.org/t/openstack/build/ff0abf8f11a1499c9749debd612fb7a5 : SUCCESS in 10m 51s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/81ebb44d773c4a32b86194059354a38c : SUCCESS in 11m 54s\n- swift-tox-func-s3api-py27 https://zuul.opendev.org/t/openstack/build/43196540f2b34a459f954319d607e902 : SUCCESS in 15m 26s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/613be72ec06e4f2dab1cd478799f1fe3 : SUCCESS in 11m 35s\n- swift-tox-func-domain-remap-staticweb-py37 https://zuul.opendev.org/t/openstack/build/eae5b6830b604254b5a9278308523028 : SUCCESS in 12m 25s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/76aae2380d3145ecbe95a6578769b66b : SUCCESS in 12m 06s\n- swift-tox-func-s3api-py37 https://zuul.opendev.org/t/openstack/build/ee6b0d528e70485c81a68990dfd5f24b : SUCCESS in 16m 51s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/7c62a900cde6406e9f572361660c6d0d : SUCCESS in 49m 48s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d2f23ecf2e6e4cb9b85e5a77db0b2356 : SUCCESS in 37m 12s\n- swift-dsvm-functional-py3 https://zuul.opendev.org/t/openstack/build/64467855eda54627ac969cd5793fed5c : SUCCESS in 37m 45s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/ab80099a89b04a548f7506bfea089019 : SUCCESS in 26m 11s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e3c53419cfda4fc5977a7c34e6a3945a : SUCCESS in 13m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bbb359baca2f4509848c3c53a1f94bce : SUCCESS in 6m 26s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/8c492f19691448f9b078dfaa30eb4779 : SUCCESS in 59m 52s","accounts_in_message":[],"_revision_number":1},{"id":"746ad87e3f15b740e4603558ed64df272ddebab7","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-01 10:24:58.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":1},{"id":"962f1cc7a8abe922dd4fd7662b4ec589655cb862","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-01 10:28:35.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/eb561459355545668a00af5933c1c313 : SUCCESS in 1m 01s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/2e24b6d818604b43bd2e11ad003703ee : FAILURE in 52s (non-voting)\n- swift-promote-image-py3 https://zuul.opendev.org/t/openstack/build/f500efbc57154331bce97355e075bcf5 : SUCCESS in 1m 02s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"18cdf9b5680b6d9a2201e9781771e3a5efac0355","revisions":{"18cdf9b5680b6d9a2201e9781771e3a5efac0355":{"kind":"REWORK","_number":1,"created":"2021-02-24 03:15:09.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/88/777288/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/88/777288/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/88/777288/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/88/777288/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/88/777288/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/88/777288/1"}}},"commit":{"parents":[{"commit":"5791cec31e6935a9af691dbd181bc1657d87ce2d","subject":"Use swiftclient Connections in sharding probe tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5791cec31e6935a9af691dbd181bc1657d87ce2d"}]}],"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-24 02:47:35.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: Ifc5d1ae142f63520df49fe610c94b332dcea3180\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/18cdf9b5680b6d9a2201e9781771e3a5efac0355"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/18cdf9b5680b6d9a2201e9781771e3a5efac0355"}]},"branch":"refs/heads/stable/ussuri"}},"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":{}}}]}
