)]}'
{"id":"openstack%2Fswift~1000346","triplet_id":"openstack%2Fswift~master~I7fbfae26510fcc5c32d154a8edb412dfd1315a0c","project":"openstack/swift","branch":"master","attention_set":{},"removed_from_attention_set":{"6968":{"account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"last_update":"2026-08-11 10:13:33.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I7fbfae26510fcc5c32d154a8edb412dfd1315a0c","subject":"reconstructor: add missing test that stale hashes do not lose fragments","status":"MERGED","created":"2026-08-10 15:16:47.000000000","updated":"2026-08-11 10:15:32.000000000","submitted":"2026-08-11 10:13:33.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":6,"unresolved_comment_count":5,"has_review_started":true,"submission_id":"1000346","meta_rev_id":"48d46d3ca4d3fcacf68d1e578c8e20bae115e75b","_number":1000346,"virtual_id_number":1000346,"owner":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-08-11 10:13:33.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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":2,"date":"2026-08-11 09:17:06.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_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":{"approved":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":1,"date":"2026-08-11 09:17:06.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-10 16:16:56.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":"2026-08-11 09:17:06.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":"REVIEWER"}],"messages":[{"id":"d7bfcaaa58ed5ad307983f796237fa64ac259899","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-10 15:16:47.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"4540be6cd722032c869075a9e57832c5446ff6f8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-10 16:16:56.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3e9502593b70404d92a4831b955d98ae\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b5ecfc41895844d796ecf29ad576822e : SUCCESS in 11m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3436295bab8945c99d5093dec1e5c545 : SUCCESS in 9m 23s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/846d5c2e8d90432792f3af7aa6147a4a : SUCCESS in 19m 53s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/d8abd928299242f095c35f5205d21002 : SUCCESS in 15m 53s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/73149c0f7f954791bbe3c4b5eab992de : SUCCESS in 20m 53s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/932399cf4fbb41b0a80bc33a7904803b : SUCCESS in 8m 50s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/586a04ce619d4920a82e8c5a6073de09 : SUCCESS in 25m 24s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/48ce0e8692f3491aa87edd878a0a24a6 : SUCCESS in 18m 09s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/1e502e758e9b46a28af13faabf9c114b : SUCCESS in 23m 53s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/14919e28cb4747099afcae3f5cab4f32 : SUCCESS in 20m 43s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/b0a58d68efe44da3b1d02ae0d7f4ef85 : SUCCESS in 14m 38s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/bf243bb9c7c04c99b8571e216bbe0d25 : SUCCESS in 9m 46s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/7aba3d5c486d43b89e24339b2360180e : SUCCESS in 16m 40s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/583eb9108d704820bb74a452afd56918 : SUCCESS in 9m 22s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/422e3817c10047949bcd858ea852a1c9 : SUCCESS in 57m 39s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/aa9b824e7d234bf78203ed199a78e522 : SUCCESS in 50m 33s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/2e848a8049fb4faba542c3ff925acc7e : SUCCESS in 32m 23s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/69e3dd2d5eab4bd183c80e8ebf72691e : SUCCESS in 5m 03s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/8e9afd38ab5f4f78b8dae398ba82c7f7 : SUCCESS in 19m 11s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":1},{"id":"e37818a65e362e9d461c408d9fa253c441f389c3","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-10 16:19:27.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/628f7b83e63b4a63b0b538c73610b84e\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/9db2a69e5bee49119b072b5557eaa156 : SUCCESS in 1h 00m 30s","accounts_in_message":[],"_revision_number":1},{"id":"fa5fa86bd094eda2c8f2e784fb34473396ad790c","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-11 09:17:06.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\n(6 comments)","accounts_in_message":[],"_revision_number":1},{"id":"753cf4abc9cb3db10088384b803d8cfd052e8d91","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-11 09:17:46.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"ca85cfee6e15775e71fd673452f3bf8314408646","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-11 10:13:33.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b6eaa8b0aaaa43d1985da438313535c8\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5e3da7469ad84b0294b3cd18dbc350da : SUCCESS in 10m 20s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/7a180f682e7e4f2887aced4654b5de5b : SUCCESS in 10m 20s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/dbf3b7a3d5644aeea681d7e3b9b5e2e8 : SUCCESS in 6m 43s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/b45f4533931742c7af99f5327c1e61fe : SUCCESS in 25m 41s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/eebfd6222de7403e90622b3633f97c80 : SUCCESS in 23m 50s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/bf2f6606fa104ca5ba6442c36a642831 : SUCCESS in 18m 32s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/d828350d73af46b4ad66f7eb087e4d36 : SUCCESS in 21m 25s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/c114738cd8fe40ee939d6d0697474633 : SUCCESS in 15m 32s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/a4dbef05e02148e8ba337e262b26cf09 : SUCCESS in 15m 56s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/bea6d73881994465ad0b68dbd452d5e3 : SUCCESS in 19m 07s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/c341e4f9dce1475cb182f0f4ae225fe6 : SUCCESS in 8m 51s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/5fffec1dea584f15b48c396987faf6ff : SUCCESS in 5m 35s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/f559813e36f74f6f9c3d72503c57b76c : SUCCESS in 38m 31s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/6778a58ecfa54b5fa169097eb47be614 : SUCCESS in 50m 19s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/cab1094f7a764e93a713bea569e72517 : SUCCESS in 29m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8d757a68a63e412b9946be8391395b97 : SUCCESS in 4m 02s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/60a686250f6e42cc9bad6cab48fe04ae : SUCCESS in 19m 17s","accounts_in_message":[],"_revision_number":1},{"id":"6f9b73c3e83c74c815d44e863d13436d848667e0","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-11 10:13:33.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"48d46d3ca4d3fcacf68d1e578c8e20bae115e75b","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-11 10:15:32.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2966f90721434944af9535bcb51b4d71\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/56e31f0c8755425d9307a235d20d0a40 : SUCCESS in 49s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/09559b37c679465290d564bed39b5344 : SUCCESS in 45s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"338b4f93d649574ab3290a7a113d9c4172938dd1","revisions":{"338b4f93d649574ab3290a7a113d9c4172938dd1":{"kind":"REWORK","_number":1,"created":"2026-08-10 15:16:47.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/46/1000346/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/46/1000346/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/46/1000346/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/46/1000346/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/46/1000346/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/46/1000346/1"}}},"commit":{"parents":[{"commit":"b1ef9cca4cee73e8555533e2d9b59d5f5ad4cab3","subject":"Merge \"versioning: refactor to split out GET HEAD handlers\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b1ef9cca4cee73e8555533e2d9b59d5f5ad4cab3"}]}],"author":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-08-10 15:01:36.000000000","tz":120},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-08-10 15:03:37.000000000","tz":120},"subject":"reconstructor: add missing test that stale hashes do not lose fragments","message":"reconstructor: add missing test that stale hashes do not lose fragments\n\n_get_part_jobs() passes do_listdir\u003dTrue so that suffixes on disk are\nfound even when hashes.pkl is valid but incomplete. Nothing covered\nthat: the whole suite passes with the flag flipped off.\n\nWithout the listdir, a handoff partition whose invalidation was lost\nreads as empty, builds no jobs, and reconstruct() rmtree\u0027s it with\nfragments still in place.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I7fbfae26510fcc5c32d154a8edb412dfd1315a0c\nSigned-off-by: Christian Schwede \u003ccschwede@mailbox.org\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/338b4f93d649574ab3290a7a113d9c4172938dd1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/338b4f93d649574ab3290a7a113d9c4172938dd1"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
