)]}'
{"id":"openstack%2Fnova~1007872","triplet_id":"openstack%2Fnova~master~I56c9a3dd0081bb40263794130e3b9358765d92cd","project":"openstack/nova","branch":"master","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-09-29 16:29:32.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I56c9a3dd0081bb40263794130e3b9358765d92cd","subject":"Fix NUMA topology corruption on failed live migration","status":"NEW","created":"2026-09-29 13:58:20.000000000","updated":"2026-10-12 12:22:46.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"86c3a7c0f62460e753418d285683ac642c8aaed4","_number":1007872,"virtual_id_number":1007872,"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":[{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-29 16:29:23.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":{"recommended":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"all":[{"value":1,"date":"2026-10-12 12:22:46.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"_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":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"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":{"REVIEWER":[{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-29 14:55:30.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-29 15:51:46.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-09-29 16:29:23.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-29 16:29:32.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":"2026-10-08 12:17:54.000000000","updated_by":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"CC"},{"updated":"2026-10-12 12:22:46.000000000","updated_by":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"REVIEWER"}],"messages":[{"id":"9d789c2d85b43446dd2d85da1804cef90918c341","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-09-29 13:58:20.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"8bc700a02c1ff5a045102a18ccb36eb8696dfef0","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-09-29 14:55:30.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I56c9a3dd0081bb40263794130e3b9358765d92cd .","accounts_in_message":[],"_revision_number":1},{"id":"6389d12c016860142deb68abaacfeadb4f4b911b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 15:51:46.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c3b2201e85974144b85340956250af95\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/33de39c072cb43a9ac5f86b717230fdd : SUCCESS in 29m 42s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/34ef87028f9c4ef99a7ba1e2a0970fe8 : SUCCESS in 21m 18s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"d8d84cf928a790ddfa414b975d091232d237c5fe","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 16:29:23.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fc48913f02a3469faaf27b869586508d\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/9b56d5bec05b422ea4d374855d3ce849 : SUCCESS in 1h 10m 18s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/139da574a4a7402cb851dbd4cd1d55c3 : SUCCESS in 1h 42m 40s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/6b5d2228a4d14279aa61984c6e43b4e0 : SUCCESS in 49m 18s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/bbfa6ae8f4cc48f4a8fba3368ccfcb94 : SUCCESS in 1h 19m 52s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/54a62731e89046cfadcf178e5c150a70 : SUCCESS in 8m 28s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/775a06219ffe42ba84a182ab97f3b0be : SUCCESS in 15m 25s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4e22cb00445f40b6af026624db13521d : SUCCESS in 19m 44s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bf88a309d43f4bc1a981af1f8cfe8050 : SUCCESS in 15m 50s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/982b3904e7954836a011ea64ad91e9a9 : SUCCESS in 8m 19s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/0ca1fe04ff704e9c9a1398c2bf9d9137 : SUCCESS in 56m 41s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/ec16166b9fb54ca8951caae2542c5cfc : SUCCESS in 1h 53m 39s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/19b025be5c8a4f1896240cb9c463c057 : SUCCESS in 36m 51s\n- nova-whitebox https://zuul.opendev.org/t/openstack/build/86aa99e79b7c4892986fac7eb066b20b : SUCCESS in 42m 11s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/458a56a00ef14225b061904f8dfe322d : SUCCESS in 1h 01m 18s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/e4a5caa6cccb4cd79b52de45d595d49a : SUCCESS in 54m 03s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/281f0503a7644d10bae76f6fb274710e : SUCCESS in 1h 55m 54s\n- nova-next https://zuul.opendev.org/t/openstack/build/714ec186a1cd4572bacfaf531d312a4b : SUCCESS in 2h 13m 38s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/0dd7ad56e4cd46f182140763d10806de : SUCCESS in 39m 58s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/39a2424375af4574801d06dc245f879c : SUCCESS in 5m 21s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/503e419899804f11b452db6381ad57aa : SUCCESS in 28m 13s\n- nova-tox-functional-py314 https://zuul.opendev.org/t/openstack/build/111543c54aca4d389ad8c08dd854a1d8 : SUCCESS in 37m 41s\n- nova-tox-functional-py314-threading https://zuul.opendev.org/t/openstack/build/1bfeed0765e34707ac3baef53dca9f4a : SUCCESS in 47m 18s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/1cd8b5212dcd4928ade57f6f60602dad : SUCCESS in 1h 28m 57s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/780868ee668640e9992a56602fcd39a5 : SUCCESS in 51m 35s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/ce708b8205d643e685f0665e356b91e1 : SUCCESS in 55m 15s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/d6d28d8ace7b4f88aa85ab6f47c7aa64 : SUCCESS in 31m 40s (non-voting)\n- nova-tox-py314-threading https://zuul.opendev.org/t/openstack/build/bacdd892a7234504b4a422ef10597845 : SUCCESS in 19m 41s","accounts_in_message":[],"_revision_number":1},{"id":"bbafc5d2c25aa37004e8313166332df8a1f13b08","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-09-29 16:39:20.000000000","message":"Patch Set 1:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":1},{"id":"86c3a7c0f62460e753418d285683ac642c8aaed4","author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"date":"2026-10-12 12:22:46.000000000","message":"Patch Set 1: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"ee450107feaf1a98779a7a37fa46f3984921568f","revisions":{"ee450107feaf1a98779a7a37fa46f3984921568f":{"kind":"REWORK","_number":1,"created":"2026-09-29 13:58:20.000000000","uploader":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"ref":"refs/changes/72/1007872/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/72/1007872/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/72/1007872/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/72/1007872/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/72/1007872/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/72/1007872/1"}}},"commit":{"parents":[{"commit":"c4e01094d969a8222ac2d32350f992afa705a6a5","subject":"Add reproducer for bug #2163408: NUMA topology corrupted on failed live migration","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/c4e01094d969a8222ac2d32350f992afa705a6a5"}]}],"author":{"name":"René Ribaud","email":"rribaud@redhat.com","date":"2026-09-28 14:24:19.000000000","tz":120},"committer":{"name":"René Ribaud","email":"rribaud@redhat.com","date":"2026-09-29 13:28:45.000000000","tz":120},"subject":"Fix NUMA topology corruption on failed live migration","message":"Fix NUMA topology corruption on failed live migration\n\nmutated_migration_context() temporarily applies the destination NUMA\ntopology so that cleanup code sees the migration-context values.\nHowever, if instance.save() is called inside the context manager\n(e.g. by the libvirt driver persisting clean_attempts in _cleanup),\nthe destination CPU pins were written to the database, corrupting\nthe source host\u0027s pinning information.\n\nThe root cause is that obj_reset_changes() without recursive\u003dTrue\nonly clears the parent Instance\u0027s _changed_fields set.\noslo.versionedobjects\u0027 obj_what_changed() re-adds any ObjectField\nwhose child object carries its own internal changes, so\nnuma_topology remained dirty and was persisted by\n_save_extra_generic().\n\nFix this by calling obj_reset_changes() with recursive\u003dTrue to also\nclear the child objects\u0027 internal change tracking. On entry, we\nsnapshot which migration-context attrs were already dirty; on exit,\nwe restore the original values and only re-dirty the attrs that were\ndirty before entering the context manager.\n\nThis also resolves the FIXME assertions in test_bug_1894095 where\nthe source host picked up destination CPU pins after a periodic\nresource tracker update.\n\nCloses-Bug: #2163408\n\nAssisted-By: Claude-Code opus 4.6\nChange-Id: I56c9a3dd0081bb40263794130e3b9358765d92cd\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/ee450107feaf1a98779a7a37fa46f3984921568f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/ee450107feaf1a98779a7a37fa46f3984921568f"}]},"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","applied_by":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"}},{"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":""}}}]}
