)]}'
{"id":"openstack%2Fswift~983323","triplet_id":"openstack%2Fswift~master~Ice310e4a88a52b67956341c041c3fb8e27814c48","project":"openstack/swift","branch":"master","topic":"green-pile-close","hashtags":[],"change_id":"Ice310e4a88a52b67956341c041c3fb8e27814c48","subject":"utils: add GreenAsyncPile.close","status":"NEW","created":"2026-04-03 18:03:13.000000000","updated":"2026-04-03 20:13:51.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"41d596f5ded7aaea2f210e8c996a33369af21cf5","_number":983323,"virtual_id_number":983323,"owner":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-04-03 20:13: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":-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":"2026-04-03 18:31: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":"CC"},{"updated":"2026-04-03 20:13:51.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":"e3ab275c274ff39e53dfea2c7b8f8a7ae52ee3dc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-04-03 18:03:13.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"1ad1a434c3020f711d3b553e6486b4a38c29cfb4","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-03 18:31:43.000000000","message":"Patch Set 1:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b6ac9e30ec614f278c54fe588d6330b5\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8c2cbbb57d6a4dd1a3d70b603808cfd0 : FAILURE in 27m 00s","accounts_in_message":[],"_revision_number":1},{"id":"d709e68265e08882233545f09680de6e0146e0f9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-04-03 18:39:52.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"00e9a911239a592dbd98d1eebe1a10624794c953","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-04-03 18:50:43.000000000","message":"Patch Set 3: Patch Set 2 was rebased","accounts_in_message":[],"_revision_number":3},{"id":"1b6e99301b1f41a963ec5584fac69ccd07cd1be5","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-03 19:21:15.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ce5eb240076441e9b61655b62506e2c9\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/9a5a418cd7df4cc78d9b1b200ab99b09 : SUCCESS in 29m 04s","accounts_in_message":[],"_revision_number":3},{"id":"41d596f5ded7aaea2f210e8c996a33369af21cf5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-03 20:13:51.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2e42e9073be34292bc5bcc0abea97dff\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2c85196c3f624acd94a06b639d32d7dd : SUCCESS in 10m 34s\n- grenade https://zuul.opendev.org/t/openstack/build/ca685ee0f37d4f2298beb85b31c0e3c3 : SUCCESS in 44m 10s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/b7205a00fae64dad9d7f0a2b6f485088 : SUCCESS in 1h 04m 34s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/2704d165171e46dc9b11daac8b1820b6 : SUCCESS in 51m 54s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/94f7f6e815c44b2ca291b114d6bd3bba : SUCCESS in 1h 16m 21s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3db138301df04ce09bac73c131e9620d : SUCCESS in 21m 28s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/7b55b60b475548b39403fbc09ff12233 : SUCCESS in 11m 27s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d78430a3894241d387af5a9a28ba4d3e : SUCCESS in 16m 53s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/6a6ed788df094f3c97a509e7bf24c10f : SUCCESS in 4m 04s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/177a93e690a240ed8f079536adad4219 : SUCCESS in 26m 12s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/0ff07189696f47d6a3a810a14f8f9870 : SUCCESS in 20m 33s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2f2ffa054d3e4c079354f1e569ab0bd2 : SUCCESS in 28m 15s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/a77e5342e22446b3bbb2aa3ac3c97212 : SUCCESS in 15m 04s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e930cebc7e3f4a71935fac571f79938e : SUCCESS in 14m 05s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/a7d0213826a244f9bbf37d5ef51c07a0 : SUCCESS in 15m 33s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/56a0e1c551874b2ab726f7bf27c69b8d : SUCCESS in 13m 24s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/ca0cd27a939b4f0bafe907ea6c3771af : SUCCESS in 3m 34s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/1e77fc8bb90c4157bac63c9e0c0aa627 : SUCCESS in 13m 42s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/e4710231d1bc4c49b308d76df9a48ff1 : SUCCESS in 8m 55s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/0168c460c0e04c18ae245888813982c1 : SUCCESS in 1h 05m 33s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/baf40a65fff54c1799e4d0c4b4f5a84e : SUCCESS in 57m 16s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/56406d3c723d4876b07a9aefb1ccae75 : SUCCESS in 24m 59s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/035c37209bc34127821c07b7b59bc597 : SUCCESS in 24m 08s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/506a09dc39d04ec9b23ce96542c9af8e : SUCCESS in 2m 39s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/9a4cc0218b2d4760b220643225e885d9 : SUCCESS in 17m 21s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f2621f3681724be884b03427cec69d70 : SUCCESS in 58m 37s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"465bc02150ecc7c47f58f24cdb6604639714e150","revisions":{"ba4859c5a3f4b8e807a003b727c76a572aa7fd4e":{"kind":"REWORK","_number":1,"created":"2026-04-03 18:03:13.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/23/983323/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/23/983323/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/23/983323/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/23/983323/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/23/983323/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/23/983323/1"}}},"commit":{"parents":[{"commit":"8ef2518a9f5dac8734be98fa4ea5250b0c22cc97","subject":"reconstructor: do not write corrupt data","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8ef2518a9f5dac8734be98fa4ea5250b0c22cc97"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-04-03 18:00:29.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-04-03 18:03:07.000000000","tz":-300},"subject":"utils: add GreenAsyncPile.close","message":"utils: add GreenAsyncPile.close\n\nWhen we\u0027re done consuming results from a GreenAsyncPile it\u0027s not helpful\nto leave the un-used greenthreads scheduled on the hub.\n\nAlso add a context manager for better structural concurrency patterns.\n\nRelated-Change-Id: I5f16db524a39783e998addc9e707c43cda4cfd39\nChange-Id: Ice310e4a88a52b67956341c041c3fb8e27814c48\nSigned-off-by: Clay Gerrard \u003cclay.gerrard@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ba4859c5a3f4b8e807a003b727c76a572aa7fd4e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ba4859c5a3f4b8e807a003b727c76a572aa7fd4e"}]},"branch":"refs/heads/master"},"0d354667b2d2c1a87b660c4b2271bdd4d3679f50":{"kind":"REWORK","_number":2,"created":"2026-04-03 18:39:52.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/23/983323/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/23/983323/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/23/983323/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/23/983323/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/23/983323/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/23/983323/2"}}},"commit":{"parents":[{"commit":"8ef2518a9f5dac8734be98fa4ea5250b0c22cc97","subject":"reconstructor: do not write corrupt data","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8ef2518a9f5dac8734be98fa4ea5250b0c22cc97"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-04-03 18:00:29.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-04-03 18:12:52.000000000","tz":-300},"subject":"utils: add GreenAsyncPile.close","message":"utils: add GreenAsyncPile.close\n\nWhen we\u0027re done consuming results from a GreenAsyncPile it\u0027s not helpful\nto leave the un-used greenthreads scheduled on the hub.\n\nAlso add a context manager for better structural concurrency patterns.\n\nRelated-Change-Id: I5f16db524a39783e998addc9e707c43cda4cfd39\nChange-Id: Ice310e4a88a52b67956341c041c3fb8e27814c48\nSigned-off-by: Clay Gerrard \u003cclay.gerrard@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0d354667b2d2c1a87b660c4b2271bdd4d3679f50"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0d354667b2d2c1a87b660c4b2271bdd4d3679f50"}]},"branch":"refs/heads/master"},"465bc02150ecc7c47f58f24cdb6604639714e150":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-04-03 18:50:43.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/23/983323/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/23/983323/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/23/983323/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/23/983323/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/23/983323/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/23/983323/3"}}},"commit":{"parents":[{"commit":"54df866740a7f268959b75183e814d2cbad0802b","subject":"reconstructor: do not write corrupt data","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/54df866740a7f268959b75183e814d2cbad0802b"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-04-03 18:00:29.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-04-03 18:50:43.000000000","tz":0},"subject":"utils: add GreenAsyncPile.close","message":"utils: add GreenAsyncPile.close\n\nWhen we\u0027re done consuming results from a GreenAsyncPile it\u0027s not helpful\nto leave the un-used greenthreads scheduled on the hub.\n\nAlso add a context manager for better structural concurrency patterns.\n\nRelated-Change-Id: I5f16db524a39783e998addc9e707c43cda4cfd39\nChange-Id: Ice310e4a88a52b67956341c041c3fb8e27814c48\nSigned-off-by: Clay Gerrard \u003cclay.gerrard@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/465bc02150ecc7c47f58f24cdb6604639714e150"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/465bc02150ecc7c47f58f24cdb6604639714e150"}]},"branch":"refs/heads/master","description":"Rebase"}},"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":""}}}]}
