)]}'
{"id":"openstack%2Fnova~1004388","triplet_id":"openstack%2Fnova~master~I976cc553466c8dfc78b659333d5d68f8cc2e95e4","project":"openstack/nova","branch":"master","topic":"bug/2166652","attention_set":{"36739":{"account":{"_account_id":36739,"name":"HyungJoon Kim","display_name":"hjoon87.kim","email":"hjoon87.kim@samsung.com","username":"hjoon87.kim"},"last_update":"2026-09-07 09:45:46.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I976cc553466c8dfc78b659333d5d68f8cc2e95e4","subject":"Add regression test for bug #2166652","status":"NEW","created":"2026-09-07 08:17:37.000000000","updated":"2026-09-07 10:25:45.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":"3d8e21f6ad4c48339808bbdd8022964c3b338c95","_number":1004388,"virtual_id_number":1004388,"owner":{"_account_id":36739,"name":"HyungJoon Kim","display_name":"hjoon87.kim","email":"hjoon87.kim@samsung.com","username":"hjoon87.kim"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-07 09:41:01.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"},"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-09-07 09:13:13.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-09-07 09:41:01.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-09-07 09:45:46.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":"18b35ecc9b58d17558165272638d7cf9bb6d2e09","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":36739,"name":"HyungJoon Kim","display_name":"hjoon87.kim","email":"hjoon87.kim@samsung.com","username":"hjoon87.kim"},"date":"2026-09-07 08:17:37.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"12f828785ad9e01fd2fa38e58efd5c0a870844c4","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-09-07 09:13:13.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I976cc553466c8dfc78b659333d5d68f8cc2e95e4 .","accounts_in_message":[],"_revision_number":1},{"id":"80fa8688c2d193c42d09807c6bad7146c36271e0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-07 09:41:01.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f3c62eeb772e4910a9c1715414df26ab\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/979b917946f54e25bd088d5202d0ef56 : SUCCESS in 1h 16m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f451ac601ea943759079d92894d26d3f : SUCCESS in 7m 30s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/77716a55e67f469aba81598f35020e73 : SUCCESS in 14m 32s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5cfe37d8fbf94130a7a480545b5df9c0 : SUCCESS in 16m 07s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1ba7ae6f8e044336a2e01fd305885a54 : SUCCESS in 19m 04s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/01c4ffc7f5d046aca28a120000304e15 : SUCCESS in 13m 21s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/aa9c11c8b7a046babd72a17a9226b16f : SUCCESS in 9m 33s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/f851da0000174dfe82621077ef72dba5 : SUCCESS in 5m 23s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/b9d2bb6b6c9b4592ad69454868804f37 : SUCCESS in 34m 03s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/86794a80826544bd952e385fedcf2cdf : SUCCESS in 23m 50s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/d2778b1e3aa2400d914a41913ec47bad : SUCCESS in 37m 50s\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/fb79e853ba6942c09390af1d277aec99 : SUCCESS in 14m 21s","accounts_in_message":[],"_revision_number":1},{"id":"3d8e21f6ad4c48339808bbdd8022964c3b338c95","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-07 10:25:45.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/70a0314dd9124e859c29bbb962fe7c41\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/0ea96524ba5e44c8aec414d65e349eb8 : SUCCESS in 22m 34s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/df7305d2d1694f8a97b511bb8c898a5c : SUCCESS in 24m 04s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/e706253455394f068e4219649c2d61ad : SUCCESS in 36m 27s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"87bcff6ec6ac51a7884d4358714d2a723cfdd46d","revisions":{"87bcff6ec6ac51a7884d4358714d2a723cfdd46d":{"kind":"REWORK","_number":1,"created":"2026-09-07 08:17:37.000000000","uploader":{"_account_id":36739,"name":"HyungJoon Kim","display_name":"hjoon87.kim","email":"hjoon87.kim@samsung.com","username":"hjoon87.kim"},"ref":"refs/changes/88/1004388/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/88/1004388/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/88/1004388/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/88/1004388/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/88/1004388/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/88/1004388/1"}}},"commit":{"parents":[{"commit":"1dc44b5988f75683564bc4e765be1f84c3d75dd4","subject":"Only load same-host instances when checking share usage","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/1dc44b5988f75683564bc4e765be1f84c3d75dd4"}]}],"author":{"name":"HyungJoon Kim","email":"hjoon87.kim@samsung.com","date":"2026-09-07 08:16:42.000000000","tz":540},"committer":{"name":"HyungJoon Kim","email":"hjoon87.kim@samsung.com","date":"2026-09-07 08:17:31.000000000","tz":540},"subject":"Add regression test for bug #2166652","message":"Add regression test for bug #2166652\n\nThe order of the \u003chostdev\u003e elements in the guest domain XML decides the\norder in which the guest OS enumerates its passthrough PCI devices, and\nnova produces that order with two different rules.\n\nOn the initial deploy the order comes from the flavor.\nPciDeviceStats.consume_requests() walks pci_requests.requests in the\norder the aliases appear in the pci_passthrough:alias extra spec, and\nPciDevice.allocate() appends each device to instance.pci_devices in\nthat same order.\n\nOn a later stop/start the instance object is rebuilt from the database.\nInstance._load_pci_devices() calls\npci_device_get_all_by_instance_uuid(), which has no ORDER BY clause and\ntherefore returns the rows in primary key order. That primary key order\nis the host PCI address order, because\nPciDevTracker._build_device_tree() sorts self.pci_devs by address\nbefore the rows are written.\n\nThe same instance is therefore handed a different BDF layout on its\nsecond boot with no configuration change at all. Topology aware\nworkloads such as multi-GPU jobs pin themselves to the layout of the\nfirst boot and break.\n\nThis functional regression test boots a server on a host whose GPUs and\nNICs are interleaved on the PCI bus, using a flavor that groups the two\naliases, and asserts both orders on master: the flavor order right\nafter the deploy and the host PCI address order after a stop/start. The\nfirst assertion is marked with a FIXME and changes once the devices are\nclaimed in host PCI address order.\n\nRelated-Bug: #2166652\nAssisted-By: Claude Code (claude-opus-5)\nChange-Id: I976cc553466c8dfc78b659333d5d68f8cc2e95e4\nSigned-off-by: HyungJoon Kim \u003chjoon87.kim@samsung.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/87bcff6ec6ac51a7884d4358714d2a723cfdd46d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/87bcff6ec6ac51a7884d4358714d2a723cfdd46d"}]},"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":""}}}]}
