)]}'
{"id":"openstack%2Fswift~920070","triplet_id":"openstack%2Fswift~master~I1ba65a7ef2516f602684cee48e00ac65bb791cd0","project":"openstack/swift","branch":"master","hashtags":[],"change_id":"I1ba65a7ef2516f602684cee48e00ac65bb791cd0","subject":"replicator: Add sync_batches_per_revert option","status":"ABANDONED","created":"2024-05-21 03:52:57.000000000","updated":"2024-05-21 15:04:00.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"be12200de0e887c0f85bc1588afa38ab255584c5","_number":920070,"virtual_id_number":920070,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2024-05-21 05:07:59.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":-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":[{"_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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2024-05-21 05:07:59.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"}],"messages":[{"id":"9cf58179ede6d5ac848a6f51bfdeec8a67fb08dd","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2024-05-21 03:52:57.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"368c7cdff6a6fb3854f441f40389417a4aca7eb2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-05-21 05:07:59.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5d5b347a46f8462aac4579cc1d5fc3ba\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f09d9be2b4a54c9489bf736c64cca5b5 : SUCCESS in 8m 28s\n- grenade https://zuul.opendev.org/t/openstack/build/377f935632db4ad8bdb299eaf10d7757 : SUCCESS in 1h 01m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/1d849c80825d492da42699921cea8876 : SUCCESS in 47m 05s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/163feb89d5d14c918bb2bee78efd1d60 : SUCCESS in 52m 55s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/788fc0faa2de4d54be8ae516cdf10159 : SUCCESS in 22m 13s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/57df699f0e9b46babf35322e20437bc2 : SUCCESS in 19m 36s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8f95cd37e93945ddae2fa65853396bef : SUCCESS in 22m 18s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/c995d43cbeb7450d936304ccf1c95a28 : SUCCESS in 9m 55s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/b341322a7e164a9e957580385773bffc : SUCCESS in 5m 57s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/37d3439377e64430835252c8256082c3 : SUCCESS in 19m 01s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/aeb9079600e04c16807ca1ede19b5111 : SUCCESS in 19m 00s\n- swift-tox-py38 https://zuul.opendev.org/t/openstack/build/d8838104400445aa8e0ac411e77a6eed : SUCCESS in 17m 55s\n- swift-tox-py311 https://zuul.opendev.org/t/openstack/build/b1644b360f8746749b8571397d75ac42 : SUCCESS in 18m 59s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/7ea7d23cd4434d1a8547052dee7e86c0 : SUCCESS in 23m 39s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/4159dd47877c44d4ab141c46abb5e690 : SUCCESS in 17m 40s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/7521fa5e71ab41c7bb5decda29ecbabf : SUCCESS in 18m 20s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/6caa542bb3ed46bda9d988780125ab9b : SUCCESS in 19m 36s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/4668bdf460594cb1b25c1a27270f7bbc : SUCCESS in 16m 18s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/5cf3e5add6c34c43af3929f918321d49 : SUCCESS in 16m 51s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/785759989fef46f48f639ebf4b8d2c03 : SUCCESS in 19m 27s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e3315b7dfd5c4f8ba36627e4975ebde3 : SUCCESS in 6m 08s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/2f324856d2b043f5ab817f782ee65729 : SUCCESS in 16m 43s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/81515914596b4754a1afdac0162e4b76 : SUCCESS in 7m 26s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/3a7bf59e713b4f12ac7c2ef11bada436 : SUCCESS in 52m 55s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/2c5152603280402a8ff8ec205686248e : SUCCESS in 44m 28s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/fdc64db313bf40728ed38573cd747bd0 : SUCCESS in 54m 52s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/18e32edad0f146488cabaac1a51a9893 : SUCCESS in 19m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3e657d2b23804156a27ab303f2ee46ed : SUCCESS in 3m 23s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/33ed20b086e547138626a71ca3e3405c : SUCCESS in 21m 12s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/bccf38927b9c4c49a7d387ef04270680 : SUCCESS in 59m 10s","accounts_in_message":[],"_revision_number":1},{"id":"3b8e43a55e7d81db6f1b760e90d13bb93549ae4a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-05-21 05:25:36.000000000","message":"Patch Set 1:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3cab243e5c324a50846b00c8168a59bd\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/3e004212f2f34b18bcc1162f74d40cca : SUCCESS in 51m 26s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/b1acede579264d068d6590b04a36c538 : SUCCESS in 57m 39s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/05764320359c4a62ba800920ce9ee351 : SUCCESS in 24m 04s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/2c04de617ad64dc0b43b5e1eb461019b : TIMED_OUT in 1h 30m 51s","accounts_in_message":[],"_revision_number":1},{"id":"be12200de0e887c0f85bc1588afa38ab255584c5","tag":"autogenerated:gerrit:abandon","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2024-05-21 15:04:00.000000000","message":"Abandoned\n\nWhoops -- meant to update https://review.opendev.org/c/openstack/swift/+/839649","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"df778dbf91f3671c932d220916667c2c0d83cbc7","revisions":{"df778dbf91f3671c932d220916667c2c0d83cbc7":{"kind":"REWORK","_number":1,"created":"2024-05-21 03:52:57.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/70/920070/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/70/920070/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/70/920070/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/70/920070/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/70/920070/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/70/920070/1"}}},"commit":{"parents":[{"commit":"337079f21f66c4f288c5ffa736a177f446472e5e","subject":"Merge \"replicator: Ensure handoffs can clear with large handoff_delete\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/337079f21f66c4f288c5ffa736a177f446472e5e"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2022-04-27 23:01:30.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2024-05-21 03:52:47.000000000","tz":-420},"subject":"replicator: Add sync_batches_per_revert option","message":"replicator: Add sync_batches_per_revert option\n\nDefault to a single batch to match prior behavior; this default may\nchange as we gain more operational experience.\n\nStill try to revert all handoff data in the first pass -- just be able\nto break it up into a configurable number of (randomized) batches so we\ncan show progress (and delete data!) more frequently. If any of the\nbatches fail, continue to the next batch but don\u0027t delete the partition.\n\nThis has two main applications:\n\n- When a cluster is nearing full, the progressive delete provides relief\n  to full disks ASAP, without waiting for the complete partition to be\n  sync\u0027ed.\n\n- When old hardware is being decomissioned, drive errors may cause some\n  suffixes not only to cause rsync errors during replication, but also\n  to prevent quarantining during auditing. In such a case, the entire\n  partition would previously hang around indefinitely; with batching,\n  the partition would gradually drain, leaving behind only the bad\n  suffixes.\n\nIt also reduces the likelihood of timeouts (either rsync_timeout or\nhttp_timeout during REPLICATE calls). These timeouts now apply\nper-batch.\n\nAdditionally, it gives periodic opportunities for other replicators to\nsneak in and grab an rsync connection slot.\n\nSee also: https://review.opendev.org/c/openstack/swift/+/818017\nChange-Id: Ie12dcb4e524ee3af3ddc2b70c027fb62f68720fa\n\nChange-Id: I1ba65a7ef2516f602684cee48e00ac65bb791cd0\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/df778dbf91f3671c932d220916667c2c0d83cbc7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/df778dbf91f3671c932d220916667c2c0d83cbc7"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"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":{}}},{"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":{}}},{"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":{}}}]}
