)]}'
{"id":"openstack%2Fswift~990194","triplet_id":"openstack%2Fswift~master~I0863b404ffcf351880b9673bf0d4182bdbc39c27","project":"openstack/swift","branch":"master","topic":"relinker-traceback","attention_set":{"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2026-05-26 21:44:19.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I0863b404ffcf351880b9673bf0d4182bdbc39c27","subject":"Make audit_location_generator record walk errors","status":"NEW","created":"2026-05-26 20:22:39.000000000","updated":"2026-05-27 01:13:28.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":"0cd6c0b95307ccb49b8d56a5939faffb650aa87c","_number":990194,"virtual_id_number":990194,"owner":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-05-26 21:44:19.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-05-26 21:44:19.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":"31a3168a19905fd7e733e5956816c2a99ca0e7f0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-05-26 20:22:39.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"44c4cb0f93661eb23d31f10c27d493226ad9be27","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-26 21:44:19.000000000","message":"Patch Set 1: 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\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/e7940bdcd2ad455cb7e81e3138e773d8\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/24cd965d9ee94877abe1123233c63fdb : FAILURE in 6m 23s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3b8eca677b9b41d7beb7f9f417ab2add : SUCCESS in 8m 15s\n- grenade https://zuul.opendev.org/t/openstack/build/334e504e90c4497686ead9d83e39ee2c : SUCCESS in 1h 05m 39s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5d96a430afc74d21a313823c3b0dfaf1 : SUCCESS in 1h 03m 12s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/83970a5376864c848fe8d3b360440b3e : SUCCESS in 59m 37s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/2ea06193ba8f4662bef7d49477d08dde : SUCCESS in 1h 09m 44s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/3354a627be5142bb88361af8970c3cf4 : SUCCESS in 19m 19s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/b1ad95d4e8314035b9fed4e13f60aecb : SUCCESS in 24m 58s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cd35b39ba3454402b82600e3b859ec10 : SUCCESS in 24m 44s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/a27e7d0f63b447abab2225cfaaf1073c : FAILURE in 4m 37s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/0cb5c81aacbd43c6a4f94a1e32882e9c : FAILURE in 24m 22s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/785333186044434abd0aa48183a83a23 : FAILURE in 3m 16s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/7ae6f27ff5234b908e2222bde6fbfa39 : FAILURE in 34m 12s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/3889b29b968145e48e83e9659596d7b7 : FAILURE in 22m 30s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/055c073efea94d77bd25f4e681a28d79 : SUCCESS in 8m 38s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/7fa3e3fef1274a129ddbe8f90e4dfcd7 : SUCCESS in 16m 26s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/382cad9189a14b408b75cf057557af4d : SUCCESS in 16m 07s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b9529506ced7478ba147a97ed3339c34 : SUCCESS in 8m 12s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/3b75aadd8bd6454fb6d53fdebeb6b767 : SUCCESS in 9m 30s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/a0986532060e4528b36b04d206cbe4de : SUCCESS in 5m 09s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/0641f916881b4c7197cc20b571b68831 : SUCCESS in 1h 01m 04s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/488dae8f3b6b4eb38c3b6bf46b015bfa : SUCCESS in 51m 09s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/d0cfd89380c848648491af879e7bd152 : SUCCESS in 28m 25s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a910d21c063d434cbb5738a740810504 : FAILURE in 34m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7d7efffcae474d31ad4a246f4bba0545 : SUCCESS in 4m 00s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/2df331e9b7704669a77d078f1718b217 : SUCCESS in 20m 04s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/c3171b291fae4b31b78d8fe4280f9cdb : SUCCESS in 1h 11m 26s","accounts_in_message":[],"_revision_number":1},{"id":"0cd6c0b95307ccb49b8d56a5939faffb650aa87c","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-27 01:13:28.000000000","message":"Patch Set 1:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b171c26f87b14606835ed00a2fc63b9f\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/c0429ecb25a648959452ea95e3b38f44 : FAILURE in 51m 53s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"27eb1b7e09d712dd903d836bd0d1a4fc9352270e","revisions":{"27eb1b7e09d712dd903d836bd0d1a4fc9352270e":{"kind":"REWORK","_number":1,"created":"2026-05-26 20:22:39.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/94/990194/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/94/990194/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/94/990194/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/94/990194/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/94/990194/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/94/990194/1"}}},"commit":{"parents":[{"commit":"aa187732411001e6d74b1634f776a11210bd7f31","subject":"Clean up relinker error stats aggregation","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/aa187732411001e6d74b1634f776a11210bd7f31"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-05-25 19:00:45.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-05-26 20:22:24.000000000","tz":-300},"subject":"Make audit_location_generator record walk errors","message":"Make audit_location_generator record walk errors\n\naudit_location_generator only recorded failures while listing a device\u0027s\ndatadir. Deeper listdir failures either escaped to the caller or were\nsilently skipped when they looked like ENOTDIR, so callers with progress\nhooks could not distinguish a complete partition walk from one that\nmissed a suffix or hash directory.\n\nRefactor the helper into an iterator class that carries traversal state,\nfilters entries to the expected on-disk namespace, and records listdir\nfailures at each level in error_counter. Post hooks now receive a\nsuccess kwarg so callers can avoid checkpointing work when the walk below\nthat hook did not complete.\n\nUse that signal in the relinker so a partition with a lower-level walk\nfailure is retried instead of being marked complete. Existing callers that\ndo not need the signal continue to iterate the same\naudit_location_generator alias.\n\nThe db auditor and container-sync can keep using the existing\nskip-and-count behavior. More specific reporting from those services can\nbe considered as a follow-up; it is not required for the relinker\nprogress fix.\n\nChange-Id: I0863b404ffcf351880b9673bf0d4182bdbc39c27\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/27eb1b7e09d712dd903d836bd0d1a4fc9352270e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/27eb1b7e09d712dd903d836bd0d1a4fc9352270e"}]},"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":""}}}]}
