)]}'
{"id":"openstack%2Fkeystone~969072","triplet_id":"openstack%2Fkeystone~stable%2F2025.1~I89235b2721380544304221a2da67a30971c62bf9","project":"openstack/keystone","branch":"stable/2025.1","topic":"bytestring_mapping_fix-stable/2025.1","attention_set":{},"removed_from_attention_set":{"14250":{"account":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"last_update":"2025-12-05 18:11:13.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I89235b2721380544304221a2da67a30971c62bf9","subject":"Bytes-vs-str mismatch causes repeated ID mapping creates on list","status":"MERGED","created":"2025-12-01 14:00:36.000000000","updated":"2025-12-05 18:13:03.000000000","submitted":"2025-12-05 18:11:13.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"969072-bytestring_mapping_fix-stable/2025.1","cherry_pick_of_change":963946,"cherry_pick_of_patch_set":3,"meta_rev_id":"d34a219a3dae757ef9cb97f18d4edf8d8b421d68","_number":969072,"virtual_id_number":969072,"owner":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},{"value":0,"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-12-05 18:11:12.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":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"all":[{"value":2,"date":"2025-12-05 15:48:34.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},{"value":2,"date":"2025-12-05 15:37:50.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"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":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"all":[{"value":1,"date":"2025-12-05 15:48:34.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},{"value":0,"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"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":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-12-01 14:39:35.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":"2025-12-01 15:00:50.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":"2025-12-05 15:37:50.000000000","updated_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"reviewer":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"state":"REVIEWER"},{"updated":"2025-12-05 15:48:34.000000000","updated_by":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"reviewer":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"state":"REVIEWER"}],"messages":[{"id":"b54b6b3b28c4ba3f06e2a7f9d295cbff48865b71","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2025-12-01 14:00:36.000000000","message":"Patch Set 1: Cherry Picked from branch master.","accounts_in_message":[],"_revision_number":1},{"id":"61079c6108136e73850ec87efd9b0319f0a6f0fc","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-01 14:39:35.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/47aac1f965ff4aeb8d3272f8f651d150\n\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/39e40d2123674c45a92c3dada8dadef3 : SUCCESS in 36m 10s (non-voting)\n- openstack-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/8b9756c571144ef28445f26827c2dfd0 : SUCCESS in 33m 38s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"5ff9354cb456d57b9abc5648a10c0bb0d3fa05c9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-01 15:00:50.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6ca9da8c501f4a72a887b77f7f87c5cf\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6e85ca3512f54aa7a2473687877571ab : SUCCESS in 18m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d1f32707d94b413f82341a79032352b1 : SUCCESS in 8m 32s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/2f75f80573044bb7b29a71cacb190e26 : SUCCESS in 12m 44s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/faa78951026e4e78bac0a2c1764fff8f : SUCCESS in 14m 53s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7e499030a0b3463cbf080a237cade3f0 : SUCCESS in 6m 33s\n- grenade https://zuul.opendev.org/t/openstack/build/dd3a2c2861424c37a68ef708ffc22481 : SUCCESS in 42m 16s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/3d6d8ead591d4f9aaa3f683d6d97f1d4 : SUCCESS in 51m 15s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/dd6d78f5c2cb4189b9d5ed1657e84aeb : SUCCESS in 15m 41s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/40aa93e6dd0e4d108446d730f84fa0e8 : FAILURE in 34m 45s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/0d39836963f94f29950a88de71fffd29 : FAILURE in 23m 54s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/550eb5963a7f4541ace77bc38807d2f8 : SUCCESS in 25m 41s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/1d3d17bfe5b6404d8202b916b3ab5734 : SUCCESS in 17m 22s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/0515ed4a926f4d1492481ba90501dadc : SUCCESS in 36m 26s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0303272deb654dc5aed16fdb94a3f608 : SUCCESS in 54m 49s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/1f9322b7aa7c46489453700b144db298 : SUCCESS in 5m 34s (non-voting)\n- keystone-dsvm-functional-oidc-federation https://zuul.opendev.org/t/openstack/build/29b16fd19dea49f0b64e055b41d41ca8 : SUCCESS in 32m 54s","accounts_in_message":[],"_revision_number":1},{"id":"942e5538c83f03f231152254954c9202b6683a51","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2025-12-05 15:37:50.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"84198811aa125d205e9d81eeeda5e9f714b4b9a7","author":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"date":"2025-12-05 15:48:34.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"e373c1b1c288356412bca7c91c5f67fc559e0889","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-05 15:49:10.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"4bcfa526a839cfcc0cb12cd0ff0859353fe55abd","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-05 18:11:12.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9adad0a567f94b72b3d4705cd1ed79e8\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/142ce89e3a5241b59d4a12243c447687 : SUCCESS in 4m 15s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/6c479fb9506e47c08c813a36ad148d82 : SUCCESS in 11m 51s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/ca55c0ddecca4ffb82071bacf1fb096e : SUCCESS in 12m 39s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dcf2833898834d96b192e952258ff01a : SUCCESS in 13m 52s\n- grenade https://zuul.opendev.org/t/openstack/build/7f9e1406b092405ea7d9c63fe00d3f43 : SUCCESS in 53m 27s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/fb3a2fee026447b5a342548f6328d123 : SUCCESS in 1h 37m 47s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/de541a18e0154d55a5b2eea55bbd015c : SUCCESS in 14m 22s\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/6a47b6b4d9f441fdb7ad86c487ebcdd7 : SUCCESS in 23m 50s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/1148b89c7b354e6e8496079b0bc082a5 : SUCCESS in 47m 04s","accounts_in_message":[],"_revision_number":1},{"id":"ded0f45f1a3adde65a46d5fec6e5f7e29dfcbdc7","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-05 18:11:13.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"d34a219a3dae757ef9cb97f18d4edf8d8b421d68","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-05 18:13:03.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e90b276ffb594c899ffcf6de1e599114\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/49e886c6135e4de4acd3366422afebb8 : SUCCESS in 51s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"b633bb8a50db0c86bf9cb39135cdf828b6690f19","revisions":{"b633bb8a50db0c86bf9cb39135cdf828b6690f19":{"kind":"REWORK","_number":1,"created":"2025-12-01 14:00:36.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"ref":"refs/changes/72/969072/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/72/969072/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/72/969072/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/72/969072/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/72/969072/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/72/969072/1"}}},"commit":{"parents":[{"commit":"0d4625051dc6bff22ee13c4e5e0c6b80d7af1d26","subject":"Add service user authentication to ec2 and s3 endpoints","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/0d4625051dc6bff22ee13c4e5e0c6b80d7af1d26"}]}],"author":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2025-10-14 11:22:55.000000000","tz":120},"committer":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2025-12-01 14:00:36.000000000","tz":0},"subject":"Bytes-vs-str mismatch causes repeated ID mapping creates on list","message":"Bytes-vs-str mismatch causes repeated ID mapping creates on list\n\nLDAP drivers can yield refs with values encoded as bytestrings,\nwhich inclues bytes local IDs, while the ID mapping layer\nstores/returns strings.\n\nDuring list post-processing, this mismatch prevents lookups from hitting\nthe seeded mapping and triggers create_id_mapping again on each pass,\ncausing unnecessary churn and latency during token issuance.\n\nThis change adds unit test for both cases:\n - bytes IDs: the original behavior was that the cumulative\n   create_id_mapping count increased with each iteration.\n - string IDs: seeded mapping is reused; no creates across iterations.\nThe helper always seeds with a string local_id, normalizing the mapping\nlist local_id to string. After the fix, the results are the same for\nstring and bytestring.\n\nSigned-off-by: Grzegorz Grasza \u003cxek@redhat.com\u003e\nChange-Id: I89235b2721380544304221a2da67a30971c62bf9\n(cherry picked from commit bc3e790f582250555c89a973d7342c8d754c0109)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/b633bb8a50db0c86bf9cb39135cdf828b6690f19"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/b633bb8a50db0c86bf9cb39135cdf828b6690f19"}]},"branch":"refs/heads/stable/2025.1"}},"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":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"}}]}],"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":{}}},{"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":{}}},{"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":{}}}]}
