)]}'
{"id":"openstack%2Fswift~807824","triplet_id":"openstack%2Fswift~master~I3693d5207f271cea5b186f1ad0ff88169705b421","project":"openstack/swift","branch":"master","topic":"dont_merge_epoch_with_no_epoch_shards","hashtags":[],"change_id":"I3693d5207f271cea5b186f1ad0ff88169705b421","subject":"Sharding: SR without an epoch can\u0027t merge over one with an epoch","status":"NEW","created":"2021-09-08 06:39:34.000000000","updated":"2021-09-28 15:48:27.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":13,"unresolved_comment_count":7,"has_review_started":true,"meta_rev_id":"6b2ecd0ba628308b0a6e9baf4fa94a74f57a8653","_number":807824,"virtual_id_number":807824,"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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"tag":"autogenerated:zuul:check","value":1,"date":"2021-09-20 01:32:35.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"all":[{"value":-1,"date":"2021-09-28 15:48:27.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":-1,"default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-09-08 07:58: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":"2021-09-10 15:12:37.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"CC"},{"updated":"2021-09-17 18:18:44.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2021-09-20 16:35:22.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":"CC"}],"messages":[{"id":"46390d9edee0856ca3b869b8c7e8f4a9bd523556","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-08 06:39:34.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"362d99368a6e7a62b31ed3f2f89990bdd8668e5e","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-08 06:42:19.000000000","message":"Patch Set 1:\n\nJust pushed this up as an posilble starting point. Still need to think about it some more and touble check tests 😊","accounts_in_message":[],"_revision_number":1},{"id":"eff6e9fe145c98b816b0ddd9eb932eeb30f890c3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-08 07:58:17.000000000","message":"Patch Set 1: Verified-1\n\n(1 comment)\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/06e94e95db1e4d42a1085102d92a621b : SUCCESS in 9m 32s\n- grenade https://zuul.opendev.org/t/openstack/build/332366b096b846ebaa8d938292588ebf : SUCCESS in 56m 08s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/df154b9476f142b3b301fa1e6ca6d203 : SUCCESS in 39m 32s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/cb90a9811a3f46b58bace6f7e6d027f2 : SUCCESS in 10m 32s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/2a61a38a04064ff8b462319d01b2130e : SUCCESS in 10m 01s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/d40e10455df94926ad50d215afb0100d : FAILURE in 18m 46s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/7cc42f08a9944396b52ed35de84010b1 : FAILURE in 18m 45s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/e68bef0c15cc4a52877a9979a4e41e0e : FAILURE in 18m 13s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/5842c4c00b7c4c9f9d41d62427799255 : FAILURE in 18m 55s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/3cc0279a5a6644d486ef2c8419aa5021 : FAILURE in 16m 52s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/a00206e8d51644109a683810d9b57395 : SUCCESS in 18m 58s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/28c040efb7464cb4848fc262b5804d3b : SUCCESS in 19m 15s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/3a31c9d8d75043b9bad18ee07a29010b : SUCCESS in 19m 19s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/4646be2a60b74eaea0b4a4ea3d151b58 : SUCCESS in 16m 51s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/a63b32677b3749bca744af9fa09ad42d : SUCCESS in 25m 57s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/fc04122c6dde4a889d78bf34f7321bed : SUCCESS in 25m 16s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/92060447033a4450bb586f704d52e146 : SUCCESS in 10m 33s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/29d5c9d23f08424f97d2a3a88ab06fec : SUCCESS in 29m 28s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/9dead5399c1a40ecb0637c0209e32c4f : SUCCESS in 57m 08s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/29320234a09343d38bb8165f327351b4 : SUCCESS in 57m 53s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/bec00c2e17dd4be7ac34f990a2aeaee4 : SUCCESS in 41m 26s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/c08715dd361f4b8ebb4a12b9dabe02aa : SUCCESS in 39m 58s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/13ba283321d24f9591c4546a6475971c : FAILURE in 17m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a3d004f8f87b4c9f8813e613194f39f5 : FAILURE in 6m 38s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/b5cb657a12f145a288d797450cb8fdc7 : SUCCESS in 29m 21s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d1e1a75492dc455a963607f31c630e79 : SUCCESS in 49m 08s","accounts_in_message":[],"_revision_number":1},{"id":"b97dbf0b8e70ebe1cb486d0983153feb870588ea","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-08 08:47:06.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/b6d1badd81e0482eba61ade0f46c28ae : FAILURE in 40m 38s (non-voting)\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/dd307150a20f4be99ed91ba703772e64 : FAILURE in 56m 35s (non-voting)\n- swift-probetests-centos-8-arm64 https://zuul.opendev.org/t/openstack/build/33f7e89323e3475ab1dececddaa1409f : FAILURE in 2h 01m 30s (non-voting)\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/83eb6e22a2ad494f941de60af7056190 : SUCCESS in 40m 31s (non-voting)\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/30b64cb582794b1fb34f7045188c5f96 : SUCCESS in 51m 52s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"40c83e0f49a2ca662d5faf1cb0c04434ccd2e223","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-09 04:43:49.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"a16f7ca6f87b583d43a098177a572a4738c8d04e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-09 05:47:45.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4671f044816c4a9498494379efec7e0a : SUCCESS in 8m 50s\n- grenade https://zuul.opendev.org/t/openstack/build/da482e1c4ed144909268e80d2a116ccf : SUCCESS in 59m 54s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8666442b072147e4aa2413092b7712a1 : SUCCESS in 41m 56s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/99e25f90583645b8a9f0ef8aec2ea5fb : SUCCESS in 8m 08s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/da39ccdb964748cbaad5606dae150e43 : SUCCESS in 8m 45s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/9e1dda0c17ff49e1984f3fd2a2db1fa3 : SUCCESS in 16m 11s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/529e3b56fc4b44b8b1e8adc42be2e22c : SUCCESS in 15m 53s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b3fdf584b53a4eac96d3c08e94b85ebc : SUCCESS in 15m 42s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/62d67da14cc04d79bfced1e16c8ae84d : SUCCESS in 16m 20s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/0f81fd1b954f4c039bafaf13e58410b9 : SUCCESS in 16m 09s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/1abe219f03724c689100e9e8ff7134d5 : SUCCESS in 15m 52s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/85600d0fa11d4180a36186f925e7917d : SUCCESS in 17m 40s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/b3ff6a21743f4120a643985776b286e1 : SUCCESS in 16m 31s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/87f28487738e4a9ea8631e839ac8225e : SUCCESS in 16m 16s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/062db2d265f5466ca2f0c14c40b6587a : SUCCESS in 18m 28s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/2ffcb75efb934a48a60cbc0752253fcb : SUCCESS in 17m 43s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/eacc7de9ad564a13b0d1aef317195096 : SUCCESS in 6m 48s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/16a99560629d49a79f1404e1507c61ba : SUCCESS in 18m 54s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/cdc2ceb6fa8d4db6b6fcc6d04efc89a5 : SUCCESS in 47m 43s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/45474b76e90145d9bf1010f045c0d257 : SUCCESS in 56m 49s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d0a19c3f4247489c8d4faf5919c23f5f : SUCCESS in 37m 47s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/4ac00106dcb44ad6a1093a9e6add3d9f : SUCCESS in 38m 01s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/759a5e34c6b2409d9f907b10032670df : SUCCESS in 15m 22s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6ae22e4e96604c9484a672e50b38c16d : SUCCESS in 6m 11s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/75eec892380b413ebeced33d7831d45f : SUCCESS in 24m 10s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/8a664861e722440b8f793352303d9cf4 : SUCCESS in 48m 53s","accounts_in_message":[],"_revision_number":2},{"id":"0c31d7bb2bec3da1ae02b38055f8a3751067c732","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-09 06:16:27.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/8cc9d605ddfb426c9740d7f3afe39354 : SUCCESS in 33m 43s (non-voting)\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/96d57331b10e4ff49f39e0d24bb545ec : SUCCESS in 30m 20s (non-voting)\n- swift-probetests-centos-8-arm64 https://zuul.opendev.org/t/openstack/build/656fce98164e4ef1834c504cadd04b07 : SUCCESS in 1h 24m 18s (non-voting)\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/4c698ab2840b4ecfb30cffb834ec9e58 : SUCCESS in 34m 21s (non-voting)\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/49b4dddc296647b38591a0792bef42b6 : SUCCESS in 29m 41s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"e185d56013ff56b5b2993fbb8c132f00b242e5a4","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2021-09-10 15:12:37.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nthis doesn\u0027t seem like a bad idea or anything; and maybe refusing to propogate the reset sort out better than what we have going on now.\n\nBut I don\u0027t think we understand the bug fully.\n\nI don\u0027t see how we create an own_shard_range row with an epoch of None... could a swift-manage-shard-ranges call do it?","accounts_in_message":[],"_revision_number":2},{"id":"3cedf186790de80a9c9f495210c1ed1a1b859160","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-13 01:04:40.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"804036bf76fa35409678dda234b8a8a5816009b8","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-13 07:35:42.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"d2297201f8e081aa81dcf66150ea9768e178e152","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2021-09-13 14:48:22.000000000","message":"Patch Set 2:\n\n\u003e Then instead of trying to find a situation where a \"new\" container could infect existing, see if I can find a place or way we can fail to return an own_shard_range so it\u0027ll be defaulted.\nthis is pretty much exactly what I ran into; couldn\u0027t find a situation where a handoff db created the default own shard range\nBUT maybe if I *manually* injected one of the replica db\u0027s we could still demonstrate that your change causes the propagation of the bad state to fail?  If I\u0027m understanding this change correctly.","accounts_in_message":[],"_revision_number":2},{"id":"c771326215e0164bed5c326ecd22d265b3119d7f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-14 06:46:42.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"531bcfeed9c2dae55bc86e4621a075a297459db9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-14 07:51:00.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/746bf33502d34bda97ea8a7a65c764fb : FAILURE in 7m 32s\n- grenade https://zuul.opendev.org/t/openstack/build/9ebc12b19c5a4fc6bcf8929e5c212310 : FAILURE in 29m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/b8b1fb2b62cd4c9d919de7fe0bfef837 : FAILURE in 26m 47s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/68b4fb11c2674df090a98e88bbc09ad5 : SUCCESS in 9m 47s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/a8e6f447990240d9ac84ac008650b412 : SUCCESS in 10m 24s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/8a6b0625c029411f829987ef4a2c8de2 : SUCCESS in 21m 28s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/05123ffc5e5d416bbe01cfc9a82792b6 : SUCCESS in 16m 47s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/5209d244170f4003b2ec42da846d7eb7 : SUCCESS in 22m 05s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/61598ae937654ec69ab2eab0c3c60817 : SUCCESS in 16m 30s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/5ca146c883ab411e9a872c55855c45cc : SUCCESS in 20m 16s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/198a034de3714e02aa0588b21dca82af : SUCCESS in 21m 11s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/58b1974a788f44e29f8b1ae7d8d86cc6 : SUCCESS in 16m 56s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/e1e863b7ffa242b2a2b3877db8af9155 : SUCCESS in 17m 53s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/97041330e81949108727b694595d4354 : SUCCESS in 16m 50s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/69a6e41a54904fd3bd85a8ec0f9e7444 : SUCCESS in 19m 13s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/b8d39240c3f74f43b446398942c16f42 : SUCCESS in 23m 45s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/fc3c3fe28a564c56ab97a65c1126c934 : SUCCESS in 8m 09s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/123e1805d55c4e59862a603ab25251ee : SUCCESS in 25m 15s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/48bc55eed1f84532b2d18d3fb526fa97 : SUCCESS in 53m 56s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/8aa82550c04e4bbaa190ae413ec098ef : SUCCESS in 55m 10s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6b8561d5740e405a9acb68309a224889 : SUCCESS in 41m 34s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/626f529ffea143819a73b46f16a0c2f3 : SUCCESS in 39m 09s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/5b0d5a2c762c4e3c800aee6d7988ba60 : SUCCESS in 15m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/565805aba0ce4f43bd138d8a8291eeda : SUCCESS in 6m 22s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/86dca77e65de41b6b330b23d2f901bc1 : SUCCESS in 24m 16s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7be941e2f29d4d739db54e844702bde4 : FAILURE in 30m 04s","accounts_in_message":[],"_revision_number":3},{"id":"52d6be1e35a89f28a6d6fab3396bd4503155e194","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-14 08:51:54.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/785d27ec2e4d456ba04946856efd0f65 : SUCCESS in 33m 54s (non-voting)\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/ef9295246efa4ba0a476b11d3f6e5726 : SUCCESS in 55m 41s (non-voting)\n- swift-probetests-centos-8-arm64 https://zuul.opendev.org/t/openstack/build/c2757f02b73047a3b3f44ca64711277c : TIMED_OUT in 2h 02m 24s (non-voting)\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/0ce544e6f01f42a484f591ce92f12af5 : SUCCESS in 1h 04m 08s (non-voting)\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/36c0b20e01ac4caeabf36514ed4e4354 : FAILURE in 1h 04m 47s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"ddc662faa6d3004c72d39004b47d5397943ff674","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2021-09-16 21:20:41.000000000","message":"Patch Set 3:\n\n(1 comment)\n\n\u003e It could be in s-m-s-r enable code, but likewise to get there it needs to first be a sharding candidate.\n\nbefore we had the audit failure/alert we used to get auto-shard failures in the controller - I would believe we\u0027re somehow causing this problem for ourselves.","accounts_in_message":[],"_revision_number":3},{"id":"f6819eb2025d246cafc057e484ee5f1bc7ec9161","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-17 04:02:40.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"0bb4eba67c7980331da5160807f38964f2a3bfdf","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2021-09-17 18:18:44.000000000","message":"Patch Set 3: Code-Review-1\n\n(3 comments)\n\nI think I understand what we\u0027re going for but I\u0027m not sure why we\u0027d want to go about it this way","accounts_in_message":[],"_revision_number":3},{"id":"046b89d54f5159683f7896d52c523063b306ba4b","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-19 23:53:41.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"b8601a0c6f679d830807d232b092ef144852bb78","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-20 00:10:26.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"eb43394fe4d6523ffaa40abf636ca83b53e858e5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-20 01:32:35.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5174dfcaa7054c6f8ccd66b5bf15c915 : SUCCESS in 9m 20s\n- grenade https://zuul.opendev.org/t/openstack/build/36ca1fa634fa48d8b31dac297dcd9cb6 : SUCCESS in 1h 05m 56s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/80cdb9a9f5b44431a7671be6408aa7c4 : SUCCESS in 54m 21s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c135bf86c64f4895abaaaec4648a9620 : SUCCESS in 8m 23s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/ca62da4c75f942ecb826ceda46dcc699 : SUCCESS in 8m 33s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/97c6276fc32c40d08531ec9604c8ded0 : SUCCESS in 18m 59s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/68622044316e4af299b7a0487ee8faf1 : SUCCESS in 25m 36s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/e0fbda48117a4924b433c4f2fcdd19d9 : SUCCESS in 19m 17s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/60aff63b0efb436bb381cc8d8aa3e139 : SUCCESS in 14m 13s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/dc3d71aff4c7475ba90b760965eec41f : SUCCESS in 14m 36s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/0fd6f48839a648d5b47adad5c85c7d41 : SUCCESS in 16m 03s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/e691abc3d92a49e4aa8bac1fa7b149b8 : SUCCESS in 24m 41s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/31a8f7c34d7c4bfaaafc3b46f3cc79c7 : SUCCESS in 17m 23s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/3292d71c90cc4c46b150364db0025295 : SUCCESS in 16m 32s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/1cdb26f2582945439aadb28ef905d3bb : SUCCESS in 19m 22s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/7b1e166b350047c5974b8583454b3761 : SUCCESS in 17m 53s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/3e7819e6c17544f99fb54d33a7e93d14 : SUCCESS in 6m 55s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/a55b9ae35065489bbb3a4dbd138a5a1d : SUCCESS in 25m 33s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/7d70b1cf827e496e9807430cf5b5138a : SUCCESS in 1h 06m 18s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/c3e3f36ce7e3482aaf21ef1444db3f6c : SUCCESS in 1h 02m 46s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/e2718af5e77148f29bf504bb409d8d7e : SUCCESS in 37m 09s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/781c6263b9e243039485b95a45805b69 : SUCCESS in 41m 07s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/30059f7c2ca4472799515422c8bbc5c4 : SUCCESS in 14m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0a46684fa9f046b2888a6601d346dbed : SUCCESS in 6m 54s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/b43840f052ed4aa8a434c1a27bc86054 : SUCCESS in 23m 21s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/c8687a2c9f5640d895f403c85c4de8be : SUCCESS in 41m 11s","accounts_in_message":[],"_revision_number":4},{"id":"070138910d9d51dca73341ace6fc6efdbc0a2fde","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-20 01:40:32.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/d815a961cee74a9eb25d279e365cd8f9 : SUCCESS in 32m 22s (non-voting)\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/b176d229c54f48369607cb7a3fd8770f : SUCCESS in 31m 59s (non-voting)\n- swift-probetests-centos-8-arm64 https://zuul.opendev.org/t/openstack/build/bd11d985e95d4b7d820568c36cb0903f : SUCCESS in 1h 23m 02s (non-voting)\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/1b2f8bcc4f154932bd9c9f1971a599ef : SUCCESS in 32m 24s (non-voting)\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/c76c27a944c94d47a9ba30f82d703eed : SUCCESS in 31m 43s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"1508e044046805d3d825a6f43f496c7522f16c10","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-20 06:08:42.000000000","message":"Patch Set 4:\n\nI had a play with trying to up into the replicator and not down in merge_shards but going one way worked easy (stopping merging a remote non-epoch merging into a local epoch) but the other direction was hard. Because you can\u0027t just go and delete the non-epoched local from down in the DB to make merge_shard_ranges do the right thing, especially if the local non-epoched OSR is newer. You can see how far I got this this here: https://review.opendev.org/c/openstack/swift/+/809969\n\n\nAnother idea, if we want to limit the epoch check to only OSRs down in merge_shards is something like: https://paste.opendev.org/show/809433/","accounts_in_message":[],"_revision_number":4},{"id":"10f47439d028ce8ee8e557ac8b06464f6350db34","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2021-09-20 16:35:22.000000000","message":"Patch Set 4:\n\n(2 comments)","accounts_in_message":[],"_revision_number":4},{"id":"e83653b48a29828566cc0ad19ad917bf10fc0f67","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-09-20 23:01:26.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"6b2ecd0ba628308b0a6e9baf4fa94a74f57a8653","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2021-09-28 15:48:27.000000000","message":"Patch Set 4: Code-Review-1\n\nIs there anything in here that\u0027s not already in https://review.opendev.org/c/openstack/swift/+/809969 that we want to keep?","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"2985b511930197f2e00b1360e1af3f219b11ad24","revisions":{"04bdb500d73e3b8030a125228e3e091129eb0916":{"kind":"REWORK","_number":1,"created":"2021-09-08 06:39:34.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/24/807824/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/807824/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/807824/1"}}},"commit":{"parents":[{"commit":"fb0293538020e2611048ffc00fd1e7f67eb42c73","subject":"Merge \" Add documentation for DELETE method for Swift Object Store API.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fb0293538020e2611048ffc00fd1e7f67eb42c73"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-09-08 06:29:30.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-09-08 06:29:30.000000000","tz":600},"subject":"Sharding: SR without an epoch can\u0027t merge over one with an epoch","message":"Sharding: SR without an epoch can\u0027t merge over one with an epoch\n\nWe\u0027ve seen this happen a couple of times in production where a root\ncontainer suddenly thinks it\u0027s unsharded as it\u0027s own_shard_range is\nreset. The only way this can happen is if a new replica or handoff node\nplaces a container and a new own_shard_range is created and replicated\nto older sharded primaries.\n\nIn the sharding life cycle, only never sharded containers can have an\nepoch of None. Once a container moves into the sharding state, or even\nit collapses back into a single container a epoch will exist.\n\nThis means we only ever need to merge:\n  - epoch \u003d\u003d None -\u003e epoch \u003d\u003d None\n  - epoch \u003d\u003d ts[n] -\u003e epoch \u003d\u003d None\n  - epoch \u003d\u003d ts[n] -\u003e epoch \u003d\u003d ts[n]\n\nAs such this patch adds an extra epoch test to merge_shard_ranges that\nif there if there is a shard_range with an epoch and the other without,\nthe one with an epoch wins.\n\nChange-Id: I3693d5207f271cea5b186f1ad0ff88169705b421\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/04bdb500d73e3b8030a125228e3e091129eb0916"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/04bdb500d73e3b8030a125228e3e091129eb0916"}]},"branch":"refs/heads/master"},"728b75a02e1a47b21b697542f0be6468a25100cf":{"kind":"REWORK","_number":2,"created":"2021-09-09 04:43:49.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/24/807824/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/807824/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/807824/2"}}},"commit":{"parents":[{"commit":"fb0293538020e2611048ffc00fd1e7f67eb42c73","subject":"Merge \" Add documentation for DELETE method for Swift Object Store API.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fb0293538020e2611048ffc00fd1e7f67eb42c73"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-09-08 06:29:30.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-09-09 04:43:36.000000000","tz":600},"subject":"Sharding: SR without an epoch can\u0027t merge over one with an epoch","message":"Sharding: SR without an epoch can\u0027t merge over one with an epoch\n\nWe\u0027ve seen this happen a couple of times in production where a root\ncontainer suddenly thinks it\u0027s unsharded as it\u0027s own_shard_range is\nreset. The only way this can happen is if a new replica or handoff node\nplaces a container and a new own_shard_range is created and replicated\nto older sharded primaries.\n\nIn the sharding life cycle, only never sharded containers can have an\nepoch of None. Once a container moves into the sharding state, or even\nit collapses back into a single container a epoch will exist.\n\nThis means we only ever need to merge:\n  - epoch \u003d\u003d None -\u003e epoch \u003d\u003d None\n  - epoch \u003d\u003d ts[n] -\u003e epoch \u003d\u003d None\n  - epoch \u003d\u003d ts[n] -\u003e epoch \u003d\u003d ts[n]\n\nAs such this patch adds an extra epoch test to merge_shard_ranges that\nif there if there is a shard_range with an epoch and the other without,\nthe one with an epoch wins.\n\nChange-Id: I3693d5207f271cea5b186f1ad0ff88169705b421\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/728b75a02e1a47b21b697542f0be6468a25100cf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/728b75a02e1a47b21b697542f0be6468a25100cf"}]},"branch":"refs/heads/master"},"a4ce09e719fce4980cd23be898ad92e4de7673e3":{"kind":"REWORK","_number":3,"created":"2021-09-14 06:46:42.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/24/807824/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/807824/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/807824/3"}}},"commit":{"parents":[{"commit":"fb0293538020e2611048ffc00fd1e7f67eb42c73","subject":"Merge \" Add documentation for DELETE method for Swift Object Store API.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fb0293538020e2611048ffc00fd1e7f67eb42c73"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-09-08 06:29:30.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-09-14 06:46:07.000000000","tz":600},"subject":"Sharding: SR without an epoch can\u0027t merge over one with an epoch","message":"Sharding: SR without an epoch can\u0027t merge over one with an epoch\n\nWe\u0027ve seen this happen a couple of times in production where a root\ncontainer suddenly thinks it\u0027s unsharded as it\u0027s own_shard_range is\nreset. The only way this can happen is if a new replica or handoff node\nplaces a container and a new own_shard_range is created and replicated\nto older sharded primaries.\n\nIn the sharding life cycle, only never sharded containers can have an\nepoch of None. Once a container moves into the sharding state, or even\nit collapses back into a single container a epoch will exist.\n\nThis means we only ever need to merge:\n  - epoch \u003d\u003d None -\u003e epoch \u003d\u003d None\n  - epoch \u003d\u003d ts[n] -\u003e epoch \u003d\u003d None\n  - epoch \u003d\u003d ts[n] -\u003e epoch \u003d\u003d ts[n]\n\nAs such this patch adds an extra epoch test to merge_shard_ranges that\nif there if there is a shard_range with an epoch and the other without,\nthe one with an epoch wins.\n\nChange-Id: I3693d5207f271cea5b186f1ad0ff88169705b421\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a4ce09e719fce4980cd23be898ad92e4de7673e3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a4ce09e719fce4980cd23be898ad92e4de7673e3"}]},"branch":"refs/heads/master"},"2985b511930197f2e00b1360e1af3f219b11ad24":{"kind":"REWORK","_number":4,"created":"2021-09-20 00:10:26.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/24/807824/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/24/807824/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/24/807824/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/24/807824/4"}}},"commit":{"parents":[{"commit":"fb0293538020e2611048ffc00fd1e7f67eb42c73","subject":"Merge \" Add documentation for DELETE method for Swift Object Store API.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fb0293538020e2611048ffc00fd1e7f67eb42c73"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-09-08 06:29:30.000000000","tz":600},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-09-20 00:02:32.000000000","tz":600},"subject":"Sharding: SR without an epoch can\u0027t merge over one with an epoch","message":"Sharding: SR without an epoch can\u0027t merge over one with an epoch\n\nWe\u0027ve seen this happen a couple of times in production where a root\ncontainer suddenly thinks it\u0027s unsharded as it\u0027s own_shard_range is\nreset. The only way this can happen is if a new replica or handoff node\nplaces a container and a new own_shard_range is created and replicated\nto older sharded primaries.\n\nIn the sharding life cycle, only never sharded containers can have an\nepoch of None. Once a container moves into the sharding state, or even\nit collapses back into a single container a epoch will exist.\n\nThis means we only ever need to merge:\n  - epoch \u003d\u003d None -\u003e epoch \u003d\u003d None\n  - epoch \u003d\u003d ts[n] -\u003e epoch \u003d\u003d None\n  - epoch \u003d\u003d ts[n] -\u003e epoch \u003d\u003d ts[n]\n\nAs such this patch adds an extra epoch test to merge_shard_ranges that\nif there if there is a shard_range with an epoch and the other without,\nthe one with an epoch wins.\n\nChange-Id: I3693d5207f271cea5b186f1ad0ff88169705b421\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2985b511930197f2e00b1360e1af3f219b11ad24"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/2985b511930197f2e00b1360e1af3f219b11ad24"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"}},{"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":""}}}]}
