)]}'
{"id":"openstack%2Fswift~770529","triplet_id":"openstack%2Fswift~master~Id734564601433c867d0a69e8121dd91105a2bcd3","project":"openstack/swift","branch":"master","topic":"shards_not_reclaimed","hashtags":[],"change_id":"Id734564601433c867d0a69e8121dd91105a2bcd3","subject":"Reclaim shards when root container is reclaimed","status":"NEW","created":"2021-01-13 04:46:23.000000000","updated":"2021-01-18 09:39:51.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":28,"unresolved_comment_count":22,"has_review_started":true,"meta_rev_id":"92694e68a9f27543a96311fa75d8f40e52cea463","_number":770529,"virtual_id_number":770529,"owner":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"actions":{},"labels":{"Verified":{"disliked":{"_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":"2021-01-18 09:39:51.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_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":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-01-13 06:51:24.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-01-13 15:16:34.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-01-15 15:00:33.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"state":"CC"}],"messages":[{"id":"3828016801c563c9867bba00c52afa6b4cef06c0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-13 04:46:23.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"cbb8c9b3bcfe81604290b146028d979d6be3e60b","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-13 04:48:00.000000000","message":"Patch Set 1: Workflow-1\n\nThe probetest fails. And is suppose to as it is checking the current failure scenario. Once I add a fix the patch it should start passing :)","accounts_in_message":[],"_revision_number":1},{"id":"1021eff78be1059b5f3199f6f0b09305e6c96d60","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-13 06:36:21.000000000","message":"Patch Set 1:\n\nI have some code that will attempt to solve this issue via what\u0027s mentioned in the bug. It isn\u0027t too bad. Just need to write some tests to make sure it does what it\u0027s suppose to do. Hopefully push a second patchset tonight or tomorrow.","accounts_in_message":[],"_revision_number":1},{"id":"8cbc04c8446828c75040ab8f6786f23340afbb9c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-01-13 06:51:24.000000000","message":"Patch Set 1: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4e04ddb61ebc4daabbec37b75a03631a : SUCCESS in 13m 56s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/bff304f8005f4e1a9dcb0027484e4652 : FAILURE in 1h 12m 30s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/f7f3493a221a413098013cf5473de190 : FAILURE in 1h 03m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/06580816b5cf4a7db7ee05202fc7ae54 : FAILURE in 6m 03s","accounts_in_message":[],"_revision_number":1},{"id":"7f3fbd9aee3d97c383a8f4a63855552cd8c10ca5","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2021-01-13 15:16:34.000000000","message":"Patch Set 1:\n\n(2 comments)\n\nLove that you got this test going first!","accounts_in_message":[],"_revision_number":1},{"id":"14e0098909261c7ab4792450f4911b7e956fd3e7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-14 06:41:23.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"8ff64591269febd0aaef3b542df4172f56bd2ce5","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-14 06:48:54.000000000","message":"Patch Set 2: Workflow-1\n\nStill a WIP, just getting stuff off my computer. \n\nBeen interesting. So even when a root is marked as deleted the internal client is returning as 200, so am currently using the put and delete timestamps to add the root delete timestamp.\n\nthe shards will insert the root delete timestamp to the sharding sysmeata. If the root container pops back (and put \u003e delete ts) then the ts metadata will be removed.\n\nOnce the root ts reaches reclaim_age this will trigger the sharder to delete the shard, using the root ts as the timestamp, so it should get reclaimed close to the time of a root.\n\nIf a shard doesn\u0027t have the root TS but the root is gone then a root delete ts will be given as time.time(), so stragglers will get cleaned up later.\n\nI\u0027ve reworked the probe test. it isn\u0027t all working yet, many debugging the root gone scenario.","accounts_in_message":[],"_revision_number":2},{"id":"cce99f50a5654d874dc729cf2b2dfa0bde66a49c","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-14 06:58:47.000000000","message":"Patch Set 2:\n\n(6 comments)\n\nJust some extra notes, things are aren\u0027t quite done or there are issues.\n\nAlso obvously I still have unit tests to write. I think I\u0027ve spent too much time trying to get real reaping working :P","accounts_in_message":[],"_revision_number":2},{"id":"9396121d8d0e0ce198ee0c33888725cee438ce5c","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2021-01-14 16:40:49.000000000","message":"Patch Set 2:\n\n(3 comments)\n\nI think this is coming along; it\u0027s tricky","accounts_in_message":[],"_revision_number":2},{"id":"60b9b7f9e6a4c6e026574fe5d9641f01afda9386","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-14 22:01:16.000000000","message":"Patch Set 2:\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"8bd7b9b7012265622d4c6b4ba2edf666493760f8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-15 01:12:48.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"d0baa9984bcb964c7213a8746e82730ea3f6eb9a","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-15 01:23:37.000000000","message":"Patch Set 3: Workflow-1\n\nAlmost there. the probe test is working again in my saio. And does a better job of testing.\n - Delete root\n - Run sharder on one shard and see that it gets the correct Root-Delete-Timestamp meta.\n - Reclaim the root (os.unlink)\n - run the sharder on the other shard that doesn\u0027t have the metadata to simulate one who comes later.\n - It gets a time.time() Root-Delete-Timestamp.\n\nAlso needed to add clear memcache as that\u0027s why I was having so much problems in the end. Turns out in the sharder we use X-Backend-Override-Deleted, so we\u0027ll always get a 200 response until the root is reclaimed when asking for shards.","accounts_in_message":[],"_revision_number":3},{"id":"11674d0c7417f798850c15782dcd3b2dc169d2cd","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-15 01:30:08.000000000","message":"Patch Set 3:\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"17a99dece829635f0189799d0cfdf2e29355963d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-15 06:07:26.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"360a5212d09650f82d13b0c14a6ec88cb88795ae","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-15 06:13:18.000000000","message":"Patch Set 4:\n\n(3 comments)\n\nOK we know have some unit testing too. So will open this up for more reviews (no wip).\n\nSome comments inline, would love to hear your thoughts.","accounts_in_message":[],"_revision_number":4},{"id":"1b3061013e2fe39ab3ea049aa213907f7d95e7c9","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2021-01-15 15:00:33.000000000","message":"Patch Set 4:\n\n(7 comments)\n\nNice.\n\nDid you think about the option of not allowing the root db to be deleted while there were active shards? I guess your solution does eventually get towards nothing on disk.\n\nI didn\u0027t get time to play with the probe test yet.","accounts_in_message":[],"_revision_number":4},{"id":"458403d10e8657ed6debf249af43928c34db54db","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-01-15 19:18:32.000000000","message":"Patch Set 4: 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/9be1f4d75e594a42912351a98dd0835c : SUCCESS in 10m 52s\n- grenade https://zuul.opendev.org/t/openstack/build/f7a0acd86178448f9928010084a63736 : SUCCESS in 1h 10m 59s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/ad6de16795bf46968771cf9b0cc6e07a : SUCCESS in 53m 59s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/5ed4be491dfe48f9a7782c5c81a7723e : SUCCESS in 8m 31s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/50ccdacd37ce4339b14a073ee5a0e476 : SUCCESS in 11m 21s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/7c5326225d4a43beafe60cad7b076006 : SUCCESS in 16m 47s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/d58d97cd8c074469b8202c1bad96ac55 : SUCCESS in 12m 44s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/fc8bcc02c95544fd86d6341331d8bb79 : SUCCESS in 12m 56s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/70109621be364594a58e0378408b534b : SUCCESS in 13m 57s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/9ea69d94a78a4fe59a1e5eab4ffc7eba : SUCCESS in 15m 53s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/c80cdf5b5ffe46af805f32e701666904 : SUCCESS in 19m 47s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/6e5c9fedb45a46e38cb628082c98750a : SUCCESS in 21m 13s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/d71d2df51aae4c489698b4c3f6a7f573 : SUCCESS in 17m 49s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/f174af79a5434c6ab3fabf7c088bf270 : SUCCESS in 17m 59s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/4ea14fa23ee24849b183f68a5d8e83a8 : SUCCESS in 18m 29s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/4dfeba92404049cd95463dc5d121f6bb : SUCCESS in 19m 52s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/9c999317d65641988d40d3d081beda33 : FAILURE in 48m 47s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/35fcc154010e4e309ab97b4672be6fd0 : FAILURE in 46m 46s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a5a6176bf09f40fca83f6dd5d9b5f503 : SUCCESS in 38m 36s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/6be1f13ed7a4434dbf0511d314448abe : SUCCESS in 39m 57s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/146e1cd452cd497eb6da672f940e14a1 : SUCCESS in 13m 38s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b4677846f5f14af39d96574decca220e : SUCCESS in 6m 18s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/248601d6cb1046d99c83364a836e3b94 : FAILURE in 8m 19s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4fe1216113cc4760b33f0e9f56bd5fb1 : SUCCESS in 1h 06m 10s","accounts_in_message":[],"_revision_number":4},{"id":"349ac1cb6fda84656b1a152e0362ee57687c7e8c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2021-01-18 08:23:56.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"92694e68a9f27543a96311fa75d8f40e52cea463","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-01-18 09:39:51.000000000","message":"Patch Set 5: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6a1865e1fc8f4c83a22771a1b2398913 : SUCCESS in 8m 18s\n- grenade https://zuul.opendev.org/t/openstack/build/40c85e547a754511831fee537882ee71 : SUCCESS in 58m 08s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/52baac60f4ba46b9a10d39f5c9f526e7 : SUCCESS in 43m 08s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/1526a31e32594d25a7633e05250a200b : SUCCESS in 8m 28s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/dd7dc829e5f94a4985b9326786e75041 : SUCCESS in 9m 19s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/fc527535cf5d42489b8c03d327e77ff7 : SUCCESS in 14m 32s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/a24ccc485e294e148a754192a428d5e6 : SUCCESS in 14m 26s\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/a75eb225442b4ae7858e9b25d25e89a8 : SUCCESS in 13m 48s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/9eac01c2e1694663806b8b4a9912eb32 : SUCCESS in 13m 15s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/6a81d7313c27452a999627e8bf9041fb : SUCCESS in 18m 07s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/0e92fbb1b99a45739ebaad4971a7c979 : SUCCESS in 18m 52s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/d82ed12c6bcd469e89772b4c50e2bf2d : SUCCESS in 18m 04s\n- swift-tox-func-py37 https://zuul.opendev.org/t/openstack/build/e20d7192c8cf447a9263b5023e43c8a3 : SUCCESS in 18m 11s\n- swift-tox-func-encryption-py37 https://zuul.opendev.org/t/openstack/build/c5691449dd4641d79ed904576e8e69ea : SUCCESS in 18m 14s\n- swift-tox-func-ec-py37 https://zuul.opendev.org/t/openstack/build/b1915434742c417a900ff55c1aaca2a7 : SUCCESS in 17m 14s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/947668a47adf4097adc6d183e3c5a983 : SUCCESS in 19m 10s (non-voting)\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/3ffaf16de5094f8ab32cf4cc5db30dec : SUCCESS in 47m 39s\n- swift-probetests-centos-8 https://zuul.opendev.org/t/openstack/build/c9df5612b749424e825a02c1e21aba68 : FAILURE in 45m 54s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/2e7d9f515d9e463fbdc59b7c26e6da9d : SUCCESS in 44m 10s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/f01ddcc9f4d2404c89c1b1e9871a70ec : SUCCESS in 35m 28s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a9b1c4dbd12641ce83d7de9c5854cce1 : SUCCESS in 14m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8b64080b30854bb18b02214e6c97bfe5 : SUCCESS in 6m 20s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/cf7cbaff7a254168a6a1009bfd952bef : FAILURE in 7m 22s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/8135610a79924e5485b8683059104383 : SUCCESS in 1h 09m 35s","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"98172a1472bdfab39dbf97caf3e35c9c32e7b359","revisions":{"4908d2f783d07943a9731cd2d1010bc0650235e5":{"kind":"REWORK","_number":1,"created":"2021-01-13 04:46:23.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/29/770529/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/29/770529/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/29/770529/1"}}},"commit":{"parents":[{"commit":"3cb58f8efc76f5d49c3836c4288d5a05a3678ef4","subject":"Merge \"unit test S3 SigV4Request X-Amz-Content-SHA256 handling\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3cb58f8efc76f5d49c3836c4288d5a05a3678ef4"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-13 04:04:30.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-13 04:45:39.000000000","tz":660},"subject":"Reclaim shards when root container is reclaimed","message":"Reclaim shards when root container is reclaimed\n\nCurrently when a root container is deleted and eventually reclaimed\nany shards still out there with zero objects wont get deleted.\n\nWhen we get auto sharding enabled, or more importantly shrinking these\nshards should collapse into the root container. But there are edge cases\nwhere these shards could still exist.\n\nThis patch fixes this issue by...\n\nCloses-Bug: #1911232\nChange-Id: Id734564601433c867d0a69e8121dd91105a2bcd3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4908d2f783d07943a9731cd2d1010bc0650235e5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4908d2f783d07943a9731cd2d1010bc0650235e5"}]},"branch":"refs/heads/master"},"3d8361d5fe728c3f230eef71f828617e79875dd8":{"kind":"REWORK","_number":2,"created":"2021-01-14 06:41:23.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/29/770529/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/29/770529/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/29/770529/2"}}},"commit":{"parents":[{"commit":"3cb58f8efc76f5d49c3836c4288d5a05a3678ef4","subject":"Merge \"unit test S3 SigV4Request X-Amz-Content-SHA256 handling\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3cb58f8efc76f5d49c3836c4288d5a05a3678ef4"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-13 04:04:30.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-14 06:40:59.000000000","tz":660},"subject":"Reclaim shards when root container is reclaimed","message":"Reclaim shards when root container is reclaimed\n\nCurrently when a root container is deleted and eventually reclaimed\nany shards still out there with zero objects wont get deleted.\n\nWhen we get auto sharding enabled, or more importantly shrinking these\nshards should collapse into the root container. But there are edge cases\nwhere these shards could still exist.\n\nThis patch fixes this issue by...\n\nCloses-Bug: #1911232\nChange-Id: Id734564601433c867d0a69e8121dd91105a2bcd3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3d8361d5fe728c3f230eef71f828617e79875dd8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3d8361d5fe728c3f230eef71f828617e79875dd8"}]},"branch":"refs/heads/master"},"c3184fd847a38b4a000a7cf7d424455334b6cb98":{"kind":"REWORK","_number":3,"created":"2021-01-15 01:12:48.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/29/770529/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/29/770529/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/29/770529/3"}}},"commit":{"parents":[{"commit":"3cb58f8efc76f5d49c3836c4288d5a05a3678ef4","subject":"Merge \"unit test S3 SigV4Request X-Amz-Content-SHA256 handling\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3cb58f8efc76f5d49c3836c4288d5a05a3678ef4"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-13 04:04:30.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-15 01:04:11.000000000","tz":660},"subject":"Reclaim shards when root container is reclaimed","message":"Reclaim shards when root container is reclaimed\n\nCurrently when a root container is deleted and eventually reclaimed\nany shards still out there with zero objects wont get deleted.\n\nWhen we get auto sharding enabled, or more importantly shrinking these\nshards should collapse into the root container. But there are edge cases\nwhere these shards could still exist.\n\nThis patch fixes this issue by adding a new peice I shard sysmeta into a\nshard, Root-Delete-Timestamp, if fetching shard ranges fails because the\nroot container is deleted.\nIf the root comes back then the metadata is removed. This gives the\nshards a poison pill to clean up after reclaim age if the shards don\u0027t\nget a chance to clean themselves up.\n\nWhen a root container is marked as deleted the sharder will use the\nreturned X-Backend-Delete-Timestamp and X-Backend-Put-Timestamp\ntimestamps to determine the root\u0027s is deleted and what it\u0027s delete\ntimestamp is.\nOnce the root is reaped and if a shard hasn\u0027t got the\nRoot-Delete-Timestamp metadata set then the\nX-Backend-[Put,Delete]-Timestamp headers will be zeroed, so we just use\nthe current time as a timestamp. This way orphaned shards will also be\ncleaned up eventually.\n\nCloses-Bug: #1911232\nChange-Id: Id734564601433c867d0a69e8121dd91105a2bcd3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c3184fd847a38b4a000a7cf7d424455334b6cb98"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c3184fd847a38b4a000a7cf7d424455334b6cb98"}]},"branch":"refs/heads/master"},"6fdd66e4547a056377cdf099bc1da04367a446b8":{"kind":"REWORK","_number":4,"created":"2021-01-15 06:07:26.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/29/770529/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/29/770529/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/29/770529/4"}}},"commit":{"parents":[{"commit":"3cb58f8efc76f5d49c3836c4288d5a05a3678ef4","subject":"Merge \"unit test S3 SigV4Request X-Amz-Content-SHA256 handling\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3cb58f8efc76f5d49c3836c4288d5a05a3678ef4"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-13 04:04:30.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-15 06:06:58.000000000","tz":660},"subject":"Reclaim shards when root container is reclaimed","message":"Reclaim shards when root container is reclaimed\n\nCurrently when a root container is deleted and eventually reclaimed\nany shards still out there with zero objects wont get deleted.\n\nWhen we get auto sharding enabled, or more importantly shrinking these\nshards should collapse into the root container. But there are edge cases\nwhere these shards could still exist.\n\nThis patch fixes this issue by adding a new peice I shard sysmeta into a\nshard, Root-Delete-Timestamp, if fetching shard ranges fails because the\nroot container is deleted.\nIf the root comes back then the metadata is removed. This gives the\nshards a poison pill to clean up after reclaim age if the shards don\u0027t\nget a chance to clean themselves up.\n\nWhen a root container is marked as deleted the sharder will use the\nreturned X-Backend-Delete-Timestamp and X-Backend-Put-Timestamp\ntimestamps to determine the root\u0027s is deleted and what it\u0027s delete\ntimestamp is.\nOnce the root is reaped and if a shard hasn\u0027t got the\nRoot-Delete-Timestamp metadata set then the\nX-Backend-[Put,Delete]-Timestamp headers will be zeroed, so we just use\nthe current time as a timestamp. This way orphaned shards will also be\ncleaned up eventually.\n\nCloses-Bug: #1911232\nChange-Id: Id734564601433c867d0a69e8121dd91105a2bcd3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6fdd66e4547a056377cdf099bc1da04367a446b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6fdd66e4547a056377cdf099bc1da04367a446b8"}]},"branch":"refs/heads/master"},"98172a1472bdfab39dbf97caf3e35c9c32e7b359":{"kind":"REWORK","_number":5,"created":"2021-01-18 08:23:56.000000000","uploader":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"ref":"refs/changes/29/770529/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/29/770529/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/29/770529/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/29/770529/5"}}},"commit":{"parents":[{"commit":"3cb58f8efc76f5d49c3836c4288d5a05a3678ef4","subject":"Merge \"unit test S3 SigV4Request X-Amz-Content-SHA256 handling\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3cb58f8efc76f5d49c3836c4288d5a05a3678ef4"}]}],"author":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-13 04:04:30.000000000","tz":660},"committer":{"name":"Matthew Oliver","email":"matt@oliver.net.au","date":"2021-01-18 08:23:21.000000000","tz":660},"subject":"Reclaim shards when root container is reclaimed","message":"Reclaim shards when root container is reclaimed\n\nCurrently when a root container is deleted and eventually reclaimed\nany shards still out there with zero objects wont get deleted.\n\nWhen we get auto sharding enabled, or more importantly shrinking these\nshards should collapse into the root container. But there are edge cases\nwhere these shards could still exist.\n\nThis patch fixes this issue by adding a new peice I shard sysmeta into a\nshard, Root-Delete-Timestamp, if fetching shard ranges fails because the\nroot container is deleted.\nIf the root comes back then the metadata is removed. This gives the\nshards a poison pill to clean up after reclaim age if the shards don\u0027t\nget a chance to clean themselves up.\n\nWhen a root container is marked as deleted the sharder will use the\nreturned X-Backend-Delete-Timestamp and X-Backend-Put-Timestamp\ntimestamps to determine the root\u0027s is deleted and what it\u0027s delete\ntimestamp is.\nOnce the root is reaped and if a shard hasn\u0027t got the\nRoot-Delete-Timestamp metadata set then the\nX-Backend-[Put,Delete]-Timestamp headers will be zeroed, so we just use\nthe current time as a timestamp. This way orphaned shards will also be\ncleaned up eventually.\n\nCloses-Bug: #1911232\nChange-Id: Id734564601433c867d0a69e8121dd91105a2bcd3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/98172a1472bdfab39dbf97caf3e35c9c32e7b359"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/98172a1472bdfab39dbf97caf3e35c9c32e7b359"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
