)]}'
{"id":"openstack%2Fnova~1000961","triplet_id":"openstack%2Fnova~master~I555c719a8a5e717471acea9b6c1fcf2df27dfa92","project":"openstack/nova","branch":"master","topic":"bug/2163417","attention_set":{"33607":{"account":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"last_update":"2026-08-14 17:03:29.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I555c719a8a5e717471acea9b6c1fcf2df27dfa92","subject":"libvirt: Add reproducer for unstable vNIC PCI addresses on hard reboot","status":"NEW","created":"2026-08-14 12:09:43.000000000","updated":"2026-08-17 14:49:43.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":"6cd3b19706c9cb089b2a6addb29188cc92580eed","_number":1000961,"virtual_id_number":1000961,"owner":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-08-17 14:39:08.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-08-14 12:10:51.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-08-14 12:48:34.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-08-14 13:04:56.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-08-14 17:03:29.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":"19e04fd55f93c5e80671a377acf47bfc53debad9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"date":"2026-08-14 12:09:43.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"153b9f59bd5e7fb792b8cf9b754c38df8aa29e18","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 12:10:51.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e91bb51cd0d84d44ada026f04ab31aff\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/be9e9845208f472b87ce239d75b938bd : NODE_FAILURE Node(set) request e407bd5393ea4b70852895d79737683a failed in 0s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/3878d0be16224c5e8121cbd8bfbe8a84 : NODE_FAILURE Node(set) request 871e9fe8357a40f187fb273a09f71782 failed in 0s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/c189b64d6b2a4a98bb1ee3b2264a3f45 : NODE_FAILURE Node(set) request d2b61daad90a4cddaf49096fc3473d49 failed in 0s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"93c4bdf70631918314f942923d74a5abb34b22ee","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 12:48:34.000000000","message":"Patch Set 1: Verified-1\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/a6b8caf483ae4496940b516f7ce358e5\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/fab78912fd4545f2900991fa4c2a1cb0 : FAILURE in 27m 28s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5d3f3c9adcc34f7db64f06859618d1f7 : SUCCESS in 8m 14s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/57f9f28bca1d4d5481c2718ada8fbafd : FAILURE in 8m 14s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d40eb377ce0b43ccb13e78cbc5571d64 : FAILURE in 10m 31s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c6225af1971e42608de52415c8fa7897 : FAILURE in 18m 32s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d61f1e50d59f49c4ad05b1c4de176578 : SUCCESS in 13m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a188def879ae4734807f5e47e036ac84 : SUCCESS in 4m 33s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/5a95d145952f4b9da7bf2e73562a14a3 : SUCCESS in 5m 16s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/6542507b353d46e08a398991d152baa9 : SUCCESS in 27m 50s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/ecd69c2c05894ff583eed10fd46fd2d4 : SUCCESS in 22m 27s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/00905194a0054d6cb8661761c4cc0031 : SUCCESS in 32m 40s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/c0db949beb9f4209b55d6935f739d297 : FAILURE in 16m 04s","accounts_in_message":[],"_revision_number":1},{"id":"85d12175ef1d852b7c115e1d4f9bfaad2ae48ee5","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-08-14 13:04:56.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I555c719a8a5e717471acea9b6c1fcf2df27dfa92 .","accounts_in_message":[],"_revision_number":1},{"id":"0784654d9132f463d53a847e88eb60da11455c5b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"date":"2026-08-14 15:49:47.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"d2545a325ee37a73b6e2d177f2d61071b12d8d08","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 15:50:55.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7993ba915d044e21b2ff589b198ef454\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/782e16d4d9bc4c1883e6f4da4d4ffff4 : NODE_FAILURE Node(set) request 5b43aec317064f4da77e4dfaf374f6a7 failed in 0s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/8d3882916540433dbb5118a8dd8842ee : NODE_FAILURE Node(set) request 99455429e5064903a24d9432777622e1 failed in 0s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/048922e329e44bf184b559ce7b62663e : NODE_FAILURE Node(set) request 2200de3933b64b2f8a96b52507d8d262 failed in 0s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"a30f33963722482df015f7932e616ff47fa88422","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-08-14 16:57:44.000000000","message":"Patch Set 2:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I555c719a8a5e717471acea9b6c1fcf2df27dfa92 .","accounts_in_message":[],"_revision_number":2},{"id":"b9ae6753feae4b881b958f7146b9fd67ba45129b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 17:03:19.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/de07f3f896724a61bef34f20283bbd2f\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/cd5f4450cb9546ecb2ece275ab53863c : SUCCESS in 1h 12m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4e317cbf644143b58bf72236b005077f : SUCCESS in 7m 51s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/3d7669de8ccf465995e5cfd02c732d41 : SUCCESS in 11m 36s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/edebca0f60b84be4b9f89585a4969ab0 : SUCCESS in 13m 34s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c9d65942eae2486ea9c79f1f477e63a6 : SUCCESS in 18m 22s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7b5eccc9740149b98f2db2d20ea186d1 : SUCCESS in 12m 03s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/15b3af0c59854f6796347d2008ffce22 : SUCCESS in 7m 56s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/df575a11f1ce4a5b929b6467839d3cf5 : SUCCESS in 5m 14s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/00200d5d85d047dfb2cb22797ff805ba : SUCCESS in 29m 44s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/a4565eb49edd4a1eb61db5ed3f0bdd72 : SUCCESS in 32m 19s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/fbb5fc8962b149bbb2b88b23e1fe0cd6 : SUCCESS in 32m 04s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/a38d1300c6754fa995a7d8899e867f83 : SUCCESS in 13m 29s","accounts_in_message":[],"_revision_number":2},{"id":"dd273df84e863eb01323732b3f2c5dcbd866ffab","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-08-14 17:13:39.000000000","message":"Patch Set 2:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":2},{"id":"488057e735903c084bd936901844a02ba27b4bb7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"date":"2026-08-17 13:40:11.000000000","message":"Uploaded patch set 3: Commit message was updated.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"a82173fbcc49a00ed8f28000a9930252a638972a","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-08-17 14:36:59.000000000","message":"Patch Set 3:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I555c719a8a5e717471acea9b6c1fcf2df27dfa92 .","accounts_in_message":[],"_revision_number":3},{"id":"9902d7b4d7e9d58bfea5f90fbc97744b7cd52d1c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-17 14:39:08.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/763b43ed1a77459d9d852582fd7b9afc\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/1a5dbc41af9f489fbfede6f618f704cb : SUCCESS in 56m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/eb72812c87f94772af358ef3022f9977 : SUCCESS in 9m 58s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/eef8387a9cea46548ea07d80d554c145 : SUCCESS in 13m 50s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/32c95efca0184337ac901533eee2fbc2 : SUCCESS in 16m 13s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/cf6cfdeb40cd474ca15b815c56f4fc4f : SUCCESS in 14m 28s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0bb68306ec9f4b4bbc673e8d702467aa : SUCCESS in 7m 32s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/84516460a7174ada86a66c6310fe845b : SUCCESS in 3m 52s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/e8ae173cd204464bb8635afa1bca1586 : SUCCESS in 3m 14s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/7e1668df61ee491f8bf640473de44de2 : SUCCESS in 25m 01s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/348a537768de4aa9b03163c09373c55e : SUCCESS in 23m 23s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/02b0a8e3e0994d2f9fd6d845f278c3f3 : SUCCESS in 35m 16s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/245333b0498b4342a37d85585474efb1 : SUCCESS in 12m 57s","accounts_in_message":[],"_revision_number":3},{"id":"ce6608318997d829f6bf7ed8918c3d5c113be5db","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-17 14:45:39.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/883e822476dd4aaf9bc543d5e81bf92e\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/cb8c405999fd447583826c5bb1283ee3 : SUCCESS in 25m 22s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/5d38bf2ce82c477aad5a02eaecc68a8d : SUCCESS in 24m 59s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/1544ef66866f41779e560286ab7db05c : SUCCESS in 33m 06s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"6cd3b19706c9cb089b2a6addb29188cc92580eed","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-08-17 14:49:43.000000000","message":"Patch Set 3:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"5a36ddbad1ae85a5769e2a78e7de989b00237adb","revisions":{"fab20b32d2108dee7f7695b78dbb3294b1070541":{"kind":"REWORK","_number":1,"created":"2026-08-14 12:09:43.000000000","uploader":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"ref":"refs/changes/61/1000961/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/61/1000961/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/61/1000961/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/61/1000961/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/61/1000961/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/61/1000961/1"}}},"commit":{"parents":[{"commit":"48d4b3f7032364e2030035a33596c0f407cb0279","subject":"Merge \"Fix deny_share host locality for NFS\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/48d4b3f7032364e2030035a33596c0f407cb0279"}]}],"author":{"name":"Pierre Libeau","email":"pierre.libeau@corp.ovh.com","date":"2026-08-14 06:46:54.000000000","tz":120},"committer":{"name":"Pierre Libeau","email":"pierre.libeau@corp.ovh.com","date":"2026-08-14 12:09:15.000000000","tz":120},"subject":"libvirt: Add reproducer for unstable vNIC PCI addresses on hard reboot","message":"libvirt: Add reproducer for unstable vNIC PCI addresses on hard reboot\n\nWhen the libvirt domain XML is regenerated (hard reboot, power on, resume\non host boot), network interfaces are emitted in network_info order and no\nexplicit guest \u003caddress type\u003d\u0027pci\u0027\u003e is set, so libvirt auto-assigns each\nvNIC\u0027s guest PCI slot from the XML order. If that order changed since the\nprevious boot (port detach/reattach, migration, info-cache rebuild), the\nguest PCI slots of the vNICs are swapped.\n\nGuests that map their NICs by PCI enumeration order and cannot pin a port\nto a MAC address (e.g. FortiGate port1/port2), and that do not consume the\nmetadata API device role tags, then end up with their interfaces inverted,\nwhich can break connectivity.\n\nRelated-Bug: #2163417\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: I555c719a8a5e717471acea9b6c1fcf2df27dfa92\nSigned-off-by: Pierre Libeau \u003cpierre.libeau@corp.ovh.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/fab20b32d2108dee7f7695b78dbb3294b1070541"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/fab20b32d2108dee7f7695b78dbb3294b1070541"}]},"branch":"refs/heads/master"},"62136ccf86ec97e77e03a99a40783ce1e947bf44":{"kind":"REWORK","_number":2,"created":"2026-08-14 15:49:47.000000000","uploader":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"ref":"refs/changes/61/1000961/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/61/1000961/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/61/1000961/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/61/1000961/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/61/1000961/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/61/1000961/2"}}},"commit":{"parents":[{"commit":"48d4b3f7032364e2030035a33596c0f407cb0279","subject":"Merge \"Fix deny_share host locality for NFS\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/48d4b3f7032364e2030035a33596c0f407cb0279"}]}],"author":{"name":"Pierre Libeau","email":"pierre.libeau@corp.ovh.com","date":"2026-08-14 15:30:23.000000000","tz":120},"committer":{"name":"Pierre Libeau","email":"pierre.libeau@corp.ovh.com","date":"2026-08-14 15:49:35.000000000","tz":120},"subject":"libvirt: Add reproducer for unstable vNIC PCI addresses on hard reboot","message":"libvirt: Add reproducer for unstable vNIC PCI addresses on hard reboot\n\nWhen the domain XML is regenerated (hard reboot, power on, resume on host\nboot), network interfaces are emitted in network_info order and no explicit\nguest \u003caddress type\u003d\u0027pci\u0027\u003e is set, so libvirt auto-assigns each vNIC\u0027s guest\nPCI slot from the XML order. If that order changed since the previous boot\n(port detach/reattach, migration, info-cache rebuild), the guest PCI slots of\nthe vNICs are swapped. Guests that map their NICs by PCI enumeration order and\ncannot pin a port to a MAC (e.g. FortiGate port1/port2) then see their\ninterfaces inverted.\n\nAdd a unit test that documents the current behaviour: even when the previous\ndomain (old_guest) is available, the regenerated interfaces do not keep their\nguest PCI address. A later change makes it stable and flips the assertions.\n\nRelated-Bug: #2163417\nChange-Id: I555c719a8a5e717471acea9b6c1fcf2df27dfa92\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Pierre Libeau \u003cpierre.libeau@corp.ovh.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/62136ccf86ec97e77e03a99a40783ce1e947bf44"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/62136ccf86ec97e77e03a99a40783ce1e947bf44"}]},"branch":"refs/heads/master"},"5a36ddbad1ae85a5769e2a78e7de989b00237adb":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2026-08-17 13:40:11.000000000","uploader":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"ref":"refs/changes/61/1000961/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/61/1000961/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/61/1000961/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/61/1000961/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/61/1000961/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/61/1000961/3"}}},"commit":{"parents":[{"commit":"48d4b3f7032364e2030035a33596c0f407cb0279","subject":"Merge \"Fix deny_share host locality for NFS\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/48d4b3f7032364e2030035a33596c0f407cb0279"}]}],"author":{"name":"Pierre Libeau","email":"pierre.libeau@corp.ovh.com","date":"2026-08-14 15:30:23.000000000","tz":120},"committer":{"name":"Pierre Libeau","email":"pierre.libeau@corp.ovh.com","date":"2026-08-17 13:39:51.000000000","tz":120},"subject":"libvirt: Add reproducer for unstable vNIC PCI addresses on hard reboot","message":"libvirt: Add reproducer for unstable vNIC PCI addresses on hard reboot\n\nWhen the domain XML is regenerated (hard reboot, power on, resume on host\nboot), network interfaces are emitted in network_info order and no explicit\nguest \u003caddress type\u003d\u0027pci\u0027\u003e is set, so libvirt auto-assigns each vNIC\u0027s guest\nPCI slot from the XML order. If that order changed since the previous boot\n(port detach/reattach, migration, info-cache rebuild), the guest PCI slots of\nthe vNICs are swapped. Guests that map their NICs by PCI enumeration order and\ncannot pin a port to a MAC (e.g. FortiGate port1/port2) then see their\ninterfaces inverted.\n\nAdd a unit test that documents the current behaviour: even when the previous\ndomain (old_guest) is available, the regenerated interfaces do not keep their\nguest PCI address. A later change makes it stable and flips the assertions.\n\nRelated-Bug: #2163417\nChange-Id: I555c719a8a5e717471acea9b6c1fcf2df27dfa92\nAssisted-By: Claude Code Opus 4.8\nSigned-off-by: Pierre Libeau \u003cpierre.libeau@corp.ovh.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/5a36ddbad1ae85a5769e2a78e7de989b00237adb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/5a36ddbad1ae85a5769e2a78e7de989b00237adb"}]},"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":""}}}]}
