)]}'
{"id":"openstack%2Fnova~992663","triplet_id":"openstack%2Fnova~master~Ib26af76cbb8a60e183db6eeb2d94fbcc5f4d4114","project":"openstack/nova","branch":"master","topic":"bug/2033247","attention_set":{"16207":{"account":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"last_update":"2026-06-10 17:08:53.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Ib26af76cbb8a60e183db6eeb2d94fbcc5f4d4114","subject":"Fix PCI leaks when multiple detach operations run in parallel","status":"NEW","created":"2026-06-10 14:04:19.000000000","updated":"2026-06-10 17:19:41.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":"d988a4fcbbaecb07e63973b8c4d356ddc08d5762","_number":992663,"virtual_id_number":992663,"owner":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-06-10 16:49:26.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},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-10 14:21:37.000000000","updated_by":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-06-10 15:57:10.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-06-10 16:49:26.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-06-10 17:08:53.000000000","updated_by":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"reviewer":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"state":"CC"}],"messages":[{"id":"a59cc3551fd61cc1c5f3b180fca6841479560ca9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"date":"2026-06-10 14:04:19.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"04aa849d0e05e2d06b4f885d3a841628214c6f42","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-06-10 14:21:37.000000000","message":"Patch Set 1:\n\nBuild Failed \n\n* quobyteci:  nova_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/Ib26af76cbb8a60e183db6eeb2d94fbcc5f4d4114 .","accounts_in_message":[],"_revision_number":1},{"id":"e222475bbc9529ddf27e303d69847fe4beef7226","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 15:57:10.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/dc91db1386df480e928c23e97e647dab\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/ea63b7b170f34ba4a7842d2c9b1d4dac : SUCCESS in 14m 26s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/c6ac3cd00c604c5da08679fd38b0f45a : SUCCESS in 12m 49s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/c9a35cef7bd74f7bae4dc2f637bdf97d : SUCCESS in 45m 32s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"197ac8955c125607ae3ad743d13352c2a460ad3b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 16:49:26.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/53f8f406a0b9404a91d598e017ed8c28\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/92e6f202a8bc4333acf16bbb8c20d19e : SUCCESS in 1h 02m 04s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/c2f6a29583ec4171bc012f51ad42400d : SUCCESS in 1h 25m 14s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4b5b131278f844d6825b97bfa82bbdef : SUCCESS in 1h 16m 27s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/5ae2d02a23a64c949b115b0b3d661aa4 : SUCCESS in 1h 15m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f54dc583c4b9484ca06f8fd991ce7045 : SUCCESS in 7m 53s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/da5d8c43559d4c72a5dab3a6427269df : SUCCESS in 14m 18s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/2c28c677c6d74ae782ce6b79a3905931 : SUCCESS in 17m 49s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/44a488d45ecf42f9ba9fb122255d6995 : SUCCESS in 15m 06s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ea0e25acba8248c6a3bfe445d18c304a : SUCCESS in 12m 10s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/473efcf8932f4711a40a59f38052625c : SUCCESS in 14m 21s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/8c8d5fae763c40bcb58c3a76362c038f : SUCCESS in 1h 13m 46s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/4612c0cf81f34fa5b61e3e358d06de77 : SUCCESS in 1h 48m 14s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/c2944965f721422ba052d5a0ee7d68a1 : SUCCESS in 45m 34s\n- nova-vtpm https://zuul.opendev.org/t/openstack/build/4ab9ecc60d71499f9639f7d4d7b968ac : SUCCESS in 37m 08s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/707a185ff2934fb6964df732dc2a1023 : SUCCESS in 1h 07m 09s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/2a435f221c9f4f64b67527e05e885a58 : SUCCESS in 52m 14s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/392a3e712e164cce86f75ea4903def95 : SUCCESS in 2h 34m 40s\n- nova-next https://zuul.opendev.org/t/openstack/build/479a1f767a3048759dcc5197f00dc2a5 : SUCCESS in 2h 22m 02s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/a3dfd0fbf5bd43278a851a4e1a474e9d : SUCCESS in 1h 45m 52s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/961b12705dcc4bd38574aaeff82599d4 : SUCCESS in 5m 02s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/fc02dc6223244c8a8dd8b75fed7dc9b7 : SUCCESS in 24m 11s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/48cc0de8f7b841a296fe9736f23d5319 : SUCCESS in 22m 12s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/cd2a860d3c224ffaaac518ffc36e6af3 : TIMED_OUT in 2h 01m 32s (non-voting)\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/c1085daee1484b7883b1be933dc09f16 : SUCCESS in 1h 30m 19s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/190928a671844c7c8dfdeff9f86c2c15 : SUCCESS in 59m 42s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/1898822e01df499ca5bf0d4b3a2328c0 : SUCCESS in 27m 47s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/dd869ec9b9b34386946b21834a9ba4e6 : SUCCESS in 37m 42s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/2709c7cb800e452094a7fe2b0cdb49ea : SUCCESS in 15m 35s","accounts_in_message":[],"_revision_number":1},{"id":"d988a4fcbbaecb07e63973b8c4d356ddc08d5762","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-06-10 17:19:41.000000000","message":"Patch Set 1:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"a675108c242d63c90bf300868e6295a5ef212070","revisions":{"a675108c242d63c90bf300868e6295a5ef212070":{"kind":"REWORK","_number":1,"created":"2026-06-10 14:04:19.000000000","uploader":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"ref":"refs/changes/63/992663/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/63/992663/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/63/992663/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/63/992663/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/63/992663/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/63/992663/1"}}},"commit":{"parents":[{"commit":"fc76c25e869b374e730603fa60f826dbbe4bab59","subject":"Add reproducer for bug #2033247: PCI leaks on parallel detach","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/fc76c25e869b374e730603fa60f826dbbe4bab59"}]}],"author":{"name":"René Ribaud","email":"rribaud@redhat.com","date":"2026-06-10 09:22:20.000000000","tz":120},"committer":{"name":"René Ribaud","email":"rribaud@redhat.com","date":"2026-06-10 14:03:26.000000000","tz":120},"subject":"Fix PCI leaks when multiple detach operations run in parallel","message":"Fix PCI leaks when multiple detach operations run in parallel\n\nChange the interface attach/detach lock from per-port to per-instance.\n\nThe per-port lock (interface-{uuid}-{port_id}) allowed concurrent\ndetaches of different ports on the same instance to race on shared\nstate (pci_requests, pci_devices). Each detach read the same list,\nremoved its own entry, then saved — the last writer overwrote the\nfirst\u0027s removal, leaking a stale PCI request in instance_extra.\n\nThe per-instance lock (interface-{uuid}) serializes all interface\noperations on the same instance, eliminating the race.\n\nCloses-Bug: #2033247\nAssisted-By: Claude-Code opus 4.6\nChange-Id: Ib26af76cbb8a60e183db6eeb2d94fbcc5f4d4114\nSigned-off-by: René Ribaud \u003crene.ribaud@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/a675108c242d63c90bf300868e6295a5ef212070"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/a675108c242d63c90bf300868e6295a5ef212070"}]},"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"},{"label":"Review-Priority","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":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"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":""}}}]}
