)]}'
{"id":"openstack%2Fkeystone~969076","triplet_id":"openstack%2Fkeystone~stable%2F2024.2~I89235b2721380544304221a2da67a30971c62bf9","project":"openstack/keystone","branch":"stable/2024.2","topic":"bytestring_mapping_fix-stable/2024.2","attention_set":{},"removed_from_attention_set":{"14250":{"account":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"last_update":"2026-04-30 09:16:54.000000000","reason":"Change was abandoned"}},"hashtags":[],"change_id":"I89235b2721380544304221a2da67a30971c62bf9","subject":"Bytes-vs-str mismatch causes repeated ID mapping creates on list","status":"ABANDONED","created":"2025-12-01 14:04:49.000000000","updated":"2026-04-30 09:16:54.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"cherry_pick_of_change":963946,"cherry_pick_of_patch_set":3,"meta_rev_id":"03e3fb344acace87c874a82e4e39bfc97b59380a","_number":969076,"virtual_id_number":969076,"owner":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-04-13 14:06:30.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"]}],"CC":[{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-12-01 14:36:13.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:46:04.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-04-30 09:16:54.000000000","updated_by":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"reviewer":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"state":"CC"}],"messages":[{"id":"5b233c685ec4cb8de71ade53300c006a41c2dcb1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2025-12-01 14:04:49.000000000","message":"Patch Set 1: Cherry Picked from branch master.","accounts_in_message":[],"_revision_number":1},{"id":"504a5f621c15967e6a6c8c2c80e7b6fb3f7fec44","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-01 14:36:13.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a132bdf9d83f495289c7cc71410cc1f2\n\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/1fd40f37fc4e449fb53ca905e8b3f765 : SUCCESS in 25m 11s (non-voting)\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/4107dd8c7f984da593474756d14c2f8f : SUCCESS in 16m 20s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"8d42ae3c2542c99dede935f92938663527cd5792","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-01 15:46:04.000000000","message":"Patch Set 1: Verified-1\n\n(5 comments)\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/901bc2d20025472d8acf8f49a830ed3e\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6a5adc82c84e4b51a9df63f5a7b77029 : SUCCESS in 13m 27s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3d936e7384504b5b9d92e369348651f8 : FAILURE in 3m 32s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/7047b573e2974e1caaf28e438fa09dfc : SUCCESS in 12m 28s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0f1607b165134f939fe3b9007b74c4c9 : SUCCESS in 8m 28s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/7aa93d3e52f34c939b42d8f0ec5c00e6 : SUCCESS in 11m 21s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e89e8b5e6dd34bf2ad1f96e81973c63a : SUCCESS in 6m 51s\n- grenade https://zuul.opendev.org/t/openstack/build/f86835c3146f491ca358407d0b9c131a : SUCCESS in 54m 02s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/70c0756ac77e437582361cf10318ac2d : SUCCESS in 1h 37m 50s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/a95342f771c04d529ef1497016239ed0 : SUCCESS in 16m 24s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/596970b4f0b3429b84d7bb5ce1f19a0f : FAILURE in 18m 00s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/a0e0280cbae647889f5d086d1e3374ee : FAILURE in 22m 54s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/c720864aa15147699f2c9f57b6c63b25 : SUCCESS in 16m 25s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/1cd34e5436ba46a1bcd0ef30f0f2c999 : SUCCESS in 6m 44s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/19460170a71a4c8d8ec9012f4e206474 : FAILURE in 16m 43s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7842af4a6c2544e9b8cec4edb1928a22 : SUCCESS in 34m 09s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/b142e15245fb474ab2cd98bd3c666102 : FAILURE in 5m 52s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"6ca2754717d564ed755099bfd4e9aed0bfaa76f0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"real_author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-04-10 16:06:08.000000000","message":"Patch Set 2: Patch Set 1 was rebased on behalf of \u003cGERRIT_ACCOUNT_14250\u003e\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"}],"_revision_number":2},{"id":"634d9f35a8133f35abe4c437efa5ca59f4a24d78","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 17:52:01.000000000","message":"Patch Set 2: Verified-1\n\n(5 comments)\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/81e67683eb7342babcd62118b943418b\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/c6617da3ae9c466092e0c75547712ca4 : SUCCESS in 8m 51s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3428f2a2fc2b4e22a9c67edd63fa7a1f : FAILURE in 6m 56s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/214312a70cf6465d8c946451a02f528b : SUCCESS in 16m 43s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/28466fb445914bd78cf9bb9efb4929e2 : SUCCESS in 6m 56s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/ca14c21ca75b4977861c8cde2a323bda : SUCCESS in 12m 59s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/eff5cad7773b4229ae86456d25bc6f4f : SUCCESS in 13m 11s\n- grenade https://zuul.opendev.org/t/openstack/build/9fd488721f9d4d1f8562d33f11aa38a7 : SUCCESS in 45m 01s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/39ff823a21a940fe8fb951ed37bfd80e : SUCCESS in 1h 40m 08s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/1a84bba383dd49ebb722d0f98ea0612d : SUCCESS in 28m 51s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/4a31adf53aef4f7b81ff2bbb79de3e23 : FAILURE in 41m 19s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/7acd95376d934dcd89b0e5a1de78b127 : FAILURE in 24m 53s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/3d42f0cecc6043fd8190b717db9133cd : SUCCESS in 14m 17s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/b664bcdc8e904868af246f1d863c3962 : FAILURE in 7m 21s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/d5634c7e9bc2494ba2d240cdc9c04347 : SUCCESS in 23m 12s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/b68b8140072b40628ed99c606ce316e5 : SUCCESS in 41m 56s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/df12657a085f46c3b3f6d3609246b966 : FAILURE in 6m 19s (non-voting)\n- keystone-dsvm-functional-oidc-federation https://zuul.opendev.org/t/openstack/build/34e30063ebbb479693b70d708bf3b218 : SUCCESS in 31m 56s","accounts_in_message":[],"_revision_number":2},{"id":"81db7bed3a14e74505aa14db73d99296fcdd35e7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2026-04-13 11:39:33.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"b9efba3f2aab48a8bd778ec2519abdd91ad6cefa","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2026-04-13 12:09:17.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"33f9831a4481db80a81ef571991a3773c99ba3ed","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 14:06:30.000000000","message":"Patch Set 4: Verified-1\n\n(5 comments)\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/8bfb0f9584e54a208190f2b68baf9592\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/84bcc04c0d62484b89a665316b8a8430 : SUCCESS in 13m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8a702caa67c24556b3886646a2b40ad3 : FAILURE in 5m 41s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/15095afaa108453bae2ab5f8648115e6 : SUCCESS in 12m 05s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/303f2b111ee5426ebed8dcc302a1bcc0 : SUCCESS in 11m 26s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/02ce7a8e8ffe4aee9292387125b3ec6c : SUCCESS in 12m 38s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1af66907997f41f5a37493d4e2fd7a2e : SUCCESS in 14m 57s\n- grenade https://zuul.opendev.org/t/openstack/build/3d3c0b1d98e042f8b462866773d20a85 : SUCCESS in 1h 00m 04s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/fd8b099827cf4062bbeb905c212221fc : SUCCESS in 1h 47m 34s\n- keystone-dsvm-py3-functional https://zuul.opendev.org/t/openstack/build/632669fb8e7b40bfa97e474b89a4246f : SUCCESS in 27m 38s\n- keystone-dsvm-py3-functional-fips https://zuul.opendev.org/t/openstack/build/e278c6baf42f4e349f23cb48ff988f3c : FAILURE in 41m 26s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/372f22395a564db9a045da537e6d90aa : FAILURE in 32m 52s (non-voting)\n- keystone-dsvm-py3-functional-federation-ubuntu-jammy-k2k https://zuul.opendev.org/t/openstack/build/c288c352933447fd99fe73a72917ebe2 : SUCCESS in 24m 24s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/167357fe7fb84390adc42fff01d8ceed : FAILURE in 14m 23s (non-voting)\n- keystone-dsvm-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/eebf9051112e4e43b8bed3a8a15190f4 : SUCCESS in 31m 29s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/175cb64a9dfa42d5bd385d5ca09c877c : SUCCESS in 58m 19s\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/02aa516772f6415198a451791c9ea63d : FAILURE in 5m 17s (non-voting)\n- keystone-dsvm-functional-oidc-federation https://zuul.opendev.org/t/openstack/build/0a7be830fee846abb7be53342d69cd7f : SUCCESS in 32m 34s","accounts_in_message":[],"_revision_number":4},{"id":"03e3fb344acace87c874a82e4e39bfc97b59380a","tag":"autogenerated:gerrit:abandon","author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"date":"2026-04-30 09:16:54.000000000","message":"Abandoned\n\nstable/2024.2 branch of openstack/keystone transitioned to End of Life and is about to be deleted. To be able to do that, all open patches need to be abandoned.","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"00171fdb6dad6e12fc1fcd2edaab6cc894a33b8c","revisions":{"4d105a3836d600597336607a8e03a41b1e812e29":{"kind":"REWORK","_number":1,"created":"2025-12-01 14:04:49.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"ref":"refs/changes/76/969076/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/76/969076/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/76/969076/1"}}},"commit":{"parents":[{"commit":"f73299cd71633b6f462ad4f59c038b6ac9e62695","subject":"Merge \"Fix DB migrations after alembic integration\" into stable/2024.2","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/f73299cd71633b6f462ad4f59c038b6ac9e62695"}]}],"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:04:49.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/4d105a3836d600597336607a8e03a41b1e812e29"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/4d105a3836d600597336607a8e03a41b1e812e29"}]},"branch":"refs/heads/stable/2024.2"},"9ae9d65dc40e777125e09c4baf750aff7d748f5d":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-04-10 16:06:08.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"real_uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/76/969076/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/76/969076/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/76/969076/2"}}},"commit":{"parents":[{"commit":"c01e8646c18d3b74c4cd4e220bc778a6dade4123","subject":"Merge \"fix ldap \u0027enabled\u0027 setting not interpreted as boolean\" into stable/2024.2","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/c01e8646c18d3b74c4cd4e220bc778a6dade4123"}]}],"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":"2026-04-10 16:06:08.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/9ae9d65dc40e777125e09c4baf750aff7d748f5d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/9ae9d65dc40e777125e09c4baf750aff7d748f5d"}]},"branch":"refs/heads/stable/2024.2","description":"Rebase"},"cc312fc93d00f2edfba6694bab878b9fdbdec2a9":{"kind":"REWORK","_number":3,"created":"2026-04-13 11:39:33.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"ref":"refs/changes/76/969076/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/76/969076/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/76/969076/3"}}},"commit":{"parents":[{"commit":"c01e8646c18d3b74c4cd4e220bc778a6dade4123","subject":"Merge \"fix ldap \u0027enabled\u0027 setting not interpreted as boolean\" into stable/2024.2","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/c01e8646c18d3b74c4cd4e220bc778a6dade4123"}]}],"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":"2026-04-13 11:39:30.000000000","tz":120},"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/cc312fc93d00f2edfba6694bab878b9fdbdec2a9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/cc312fc93d00f2edfba6694bab878b9fdbdec2a9"}]},"branch":"refs/heads/stable/2024.2"},"00171fdb6dad6e12fc1fcd2edaab6cc894a33b8c":{"kind":"REWORK","_number":4,"created":"2026-04-13 12:09:17.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"ref":"refs/changes/76/969076/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/76/969076/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/76/969076/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/76/969076/4"}}},"commit":{"parents":[{"commit":"765d3e792ec3e7041066e1ee4aa8f5d0034d2fe4","subject":"Merge \"Replace the random library with secrets in oauth1\" into stable/2024.2","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/765d3e792ec3e7041066e1ee4aa8f5d0034d2fe4"}]}],"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":"2026-04-13 12:09:11.000000000","tz":120},"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/00171fdb6dad6e12fc1fcd2edaab6cc894a33b8c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/00171fdb6dad6e12fc1fcd2edaab6cc894a33b8c"}]},"branch":"refs/heads/stable/2024.2"}},"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":{"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":""}}}]}
