)]}'
{"id":"openstack%2Fnova~960244","triplet_id":"openstack%2Fnova~stable%2F2024.2~Ib3febb77299da65ada24ed49849c04cbf3c41af1","project":"openstack/nova","branch":"stable/2024.2","topic":"bug/2115905","attention_set":{},"removed_from_attention_set":{"9708":{"account":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"last_update":"2026-04-29 01:24:50.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ib3febb77299da65ada24ed49849c04cbf3c41af1","subject":"Reproduce bug/2115905","status":"MERGED","created":"2025-09-09 09:14:00.000000000","updated":"2026-04-29 01:27:36.000000000","submitted":"2026-04-29 01:24:50.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"960244-bug/2115905","meta_rev_id":"cb86bd9e99c96d2727dc8e97e8b7e87b9c194f5e","_number":960244,"virtual_id_number":960244,"owner":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-04-29 01:24:50.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"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":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"recommended":{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2025-09-18 11:47:23.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},{"value":2,"date":"2025-10-13 12:11:19.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":2,"date":"2026-04-28 23:13:19.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":1,"date":"2026-04-28 23:13:19.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"}],"REVIEWER":[{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-09-09 09:44:41.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-09-09 09:56:28.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"},{"updated":"2025-09-18 11:47:23.000000000","updated_by":{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},"reviewer":{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},"state":"REVIEWER"},{"updated":"2025-10-13 12:11:19.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":"REVIEWER"},{"updated":"2026-04-28 23:13:19.000000000","updated_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"REVIEWER"}],"messages":[{"id":"ee51a37f602b360ed298f46bdee10590a1e6fab1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2025-09-09 09:14:00.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"fc13ce46f3b3d93ce0b1d184c8c3d3ff92855dbe","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-09 09:44:41.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d030d5e7d16041fabf6b022980756f00\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/84d29de1f0d142919ceab798bffda5a6 : SUCCESS in 16m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/eb0d654c2088431492de257c07d18198 : SUCCESS in 4m 08s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/a753e2f20d8c479c968ef8c0ee4ea8b7 : SUCCESS in 13m 16s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/635a65bbede54571b17de1f819cc99ac : SUCCESS in 7m 09s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/96287eb6fa3049a49c39fd1b868194bf : SUCCESS in 12m 05s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fd1b4e3ebd8d464d931a8d18ec81a41b : SUCCESS in 10m 14s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/f6b1dc417d5d47ad96a153ed12b1fa57 : FAILURE in 3m 32s (non-voting)\n- nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/aaa6f1c52bf94af7bec8c6f38b1dc1bb : SUCCESS in 25m 42s\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/de8abd128bc74d379410890d9040f829 : SUCCESS in 28m 35s\n- nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/258d556e23554b39bbad060289dca203 : SUCCESS in 22m 57s","accounts_in_message":[],"_revision_number":1},{"id":"5c3d8f49da0b36294f3d91dbbbb2d2c85268d8b2","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2025-09-09 09:56:28.000000000","message":"Patch Set 1:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with \u0027run-Lightbits CI\u0027 to trigger a recheck. \nFor more information about CI, please see https://wiki.openstack.org/wiki/ThirdPartySystems/LightbitsLabs_CI","accounts_in_message":[],"_revision_number":1},{"id":"8aa91c6b9a1ffc6ca0304300e791dbf1a21c49a8","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-09 10:01:12.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fb714df3eab6456d8e9487705543a848\n\n- openstack-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/fb26393afc5c4a949983d3ff479e8613 : SUCCESS in 44m 32s (non-voting)\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/51c1a56d7d0f44cba1151bdf3e6f5a38 : SUCCESS in 22m 40s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"d0c52f417da80f26a656c5ff1cd270766a75e869","author":{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},"date":"2025-09-18 11:47:23.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"c49ddbdcd435dd147a9a589e1f58bcbb2a71e397","author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"date":"2025-10-13 12:11:19.000000000","message":"Patch Set 1: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"99aa9ce324a5ba27fd7ccb88a61aa278b15efd28","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-04-28 23:13:19.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"167f02692f283ca8e32f627a4b6e2e4c6021d3eb","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-28 23:13:48.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"8d0ecd14b63aff5277b08d03cee30dcc235da89a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-29 01:24:50.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6173322de1da43bb8cfbc242341ca64a\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8a9c107830ba432391316d87dc6ac44e : SUCCESS in 7m 52s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/00c4d7d2328748ac85562566940ac33c : SUCCESS in 12m 43s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/61b1b0dc89fa4a0a93bbf0573d4dab3e : SUCCESS in 12m 08s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/206aa6d06fb7454393b7a22fffe55ae2 : SUCCESS in 10m 49s\n- nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/0bd4c0e0084543aa91266f763505dfe5 : SUCCESS in 26m 56s\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/a751df17c23d46e19b50892bce8cb4e6 : SUCCESS in 27m 39s\n- nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/96a4aa9756264688b637f1995cba7f19 : SUCCESS in 23m 53s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/a2b7102ccb194cb9ac6325e1c667e482 : SUCCESS in 5m 12s","accounts_in_message":[],"_revision_number":1},{"id":"4b06df964610ddc25c64e2f89f4f9701bb21b2e7","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-29 01:24:50.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"cb86bd9e99c96d2727dc8e97e8b7e87b9c194f5e","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-29 01:27:36.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/aed844c6b94d4401901ef7d9c5025587\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b1d052610f404bcebab3eda14482a63f : SUCCESS in 51s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"cab2243702962eff0a4b34e3ba127573a220c16e","revisions":{"cab2243702962eff0a4b34e3ba127573a220c16e":{"kind":"REWORK","_number":1,"created":"2025-09-09 09:14:00.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/44/960244/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/44/960244/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/44/960244/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/44/960244/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/44/960244/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/44/960244/1"}}},"commit":{"parents":[{"commit":"8a129522479e703983169c77434fc44c20578cf0","subject":"Fix pci_tracker.save to delete all removed devs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/8a129522479e703983169c77434fc44c20578cf0"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2025-07-08 12:42:57.000000000","tz":120},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2025-09-09 09:08:12.000000000","tz":120},"subject":"Reproduce bug/2115905","message":"Reproduce bug/2115905\n\nBoth the PCI tracker and the PCI in Placement logic handles the case\nwhen a device spec is removed from the configuration while a device\nis still being allocated.\n\nHowever there are edge cases in PCI in Placement that it not handled\nwell. Namely that if the VM with this allocation is deleted, then\ndepending on the amount of VFs the PF had originally, the logic might\ntry to delete the RP before the allocation is removed. That is\nrejected by Placement. This prevent the deletion of such a VM and\ntherefore prevents one of the ways the original inconsistency can be\n\nNote that with this patch we see two additional behaviors worth\nmentioning:\n* When the VM is successfully deleted (in a single VF or PF case) the\n  PCI tracker still keeps the now free device in the DB and therefore PCI\n  in Placement also keeps the RP. This keeps the non whitelisted device\n  available for allocations until the next nova-compute restart.\n\n* The PCI in Placement logic is different between the case where\n  the last device is removed from an RP and the case where there\n  are other devices on the RP, some that can be removed and some that\n  cannot due to allocation.\n\nRelated-Bug: #2115905\nChange-Id: Ib3febb77299da65ada24ed49849c04cbf3c41af1\nSigned-off-by: Balazs Gibizer \u003cgibi@redhat.com\u003e\n(cherry picked from commit d86aa2d15a3056d460952a5a51064f012b00bbe6)\n(cherry picked from commit 1863fbf87668ad74090cc82e459ade0c29f7e115)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/cab2243702962eff0a4b34e3ba127573a220c16e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/cab2243702962eff0a4b34e3ba127573a220c16e"}]},"branch":"refs/heads/stable/2024.2"}},"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":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}},{"label":"Review-Priority","status":"MAY"}]}],"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":"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":"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":""}}}]}
