)]}'
{"id":"openstack%2Fnova~986754","triplet_id":"openstack%2Fnova~master~I57c4f2d31b1e0df4519583482152e3f2744511dc","project":"openstack/nova","branch":"master","topic":"bug/2150616","attention_set":{"34378":{"account":{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},"last_update":"2026-04-30 10:14:56.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I57c4f2d31b1e0df4519583482152e3f2744511dc","subject":"Reproduce bug #2150616: KeyError in _rollback_volume_bdms","status":"NEW","created":"2026-04-30 09:00:09.000000000","updated":"2026-04-30 11:33:47.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":"2cf815a9bdad43f193fe6400e3f574eb8c593d98","_number":986754,"virtual_id_number":986754,"owner":{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-04-30 10:14:49.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-04-30 09:58:02.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-04-30 10:14:49.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-04-30 10:14:56.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-04-30 10:22:53.000000000","updated_by":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"reviewer":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"state":"CC"},{"updated":"2026-04-30 10:23:02.000000000","updated_by":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"reviewer":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"state":"REMOVED"}],"messages":[{"id":"589bc8f7a389bd5d56f49f489302b9099129506b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},"date":"2026-04-30 09:00:09.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"7baa5e157f928d84c7030d6c22b253dd412a5d2d","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},"date":"2026-04-30 09:01:14.000000000","message":"Topic set to bug/2150616","accounts_in_message":[],"_revision_number":1},{"id":"7d1723e7559ff59c97af73b834bee87b54528c7a","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-04-30 09:58:02.000000000","message":"Patch Set 1:\n\nBuild Failed \n\n* quobyteci:  nova_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/I57c4f2d31b1e0df4519583482152e3f2744511dc .","accounts_in_message":[],"_revision_number":1},{"id":"8a76927ecbf5e73e451624da5f9bff510ef26d34","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-30 10:14:49.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/450d2c2f0ae241068d914df68b71103e\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b437d6ec22f6473180f6755c9162e7d1 : SUCCESS in 1h 12m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a90615f033b643a79926c6eeb91887c5 : SUCCESS in 4m 53s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/eea6b6a8d4ca45daa94fbf436cad76d5 : SUCCESS in 15m 20s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a2ffe134b6314f1abfd1eebe630aa627 : SUCCESS in 15m 20s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/acf18e905f9845b4a62c427b4406d143 : SUCCESS in 19m 32s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6b1ce3b3a901452cae00e63977f56ba4 : SUCCESS in 14m 15s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/5bb26ea298354721a6d9c46aa1b4cebd : SUCCESS in 1h 04m 04s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/fadf72802521463dbf0a2670ab19d43f : SUCCESS in 2m 55s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/de25087c93484d3db5bedd8961025555 : SUCCESS in 26m 46s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/8006c043ecda455ca624f608986f8cde : SUCCESS in 24m 51s\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/be4fd695ced74a34ace1536b3dbf76d3 : SUCCESS in 12m 02s","accounts_in_message":[],"_revision_number":1},{"id":"2d64b18d3098551e0ee7da971f5574b80e462b21","author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"date":"2026-04-30 10:22:53.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"092e614f5028d4ecec7297dfad9bce52f0e629f7","tag":"autogenerated:gerrit:deleteReviewer","author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"date":"2026-04-30 10:23:02.000000000","message":"Removed cc \u003cGERRIT_ACCOUNT_13915\u003e.","accounts_in_message":[{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"}],"_revision_number":1},{"id":"bac9f4fbc817b5c1fae6331ca1d842b2c092a72e","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-04-30 10:24:13.000000000","message":"Patch Set 1:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":1},{"id":"958fdae2061309c13d847be5a845c461df580f1a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-30 11:14:08.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b7e56318171e4e97a4d09d1452e8bfb5\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/bedcf82481fb4fd9a31e3edf6282f0bb : SUCCESS in 28m 27s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/d4a4ea877cd44137931b8ca0ad2c3930 : SUCCESS in 24m 57s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/aba4e9d192cc4ea296863e6a4aa6299b : SUCCESS in 55m 40s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"2cf815a9bdad43f193fe6400e3f574eb8c593d98","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-04-30 11:33:47.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I57c4f2d31b1e0df4519583482152e3f2744511dc .","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"b4bb17aa7027a21b25026ac28ee5d03350a48a2a","revisions":{"b4bb17aa7027a21b25026ac28ee5d03350a48a2a":{"kind":"REWORK","_number":1,"created":"2026-04-30 09:00:09.000000000","uploader":{"_account_id":34378,"name":"Julien LE JEUNE","email":"julien.le-jeune@mailops.fr","username":"jlejeune"},"ref":"refs/changes/54/986754/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/54/986754/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/54/986754/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/54/986754/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/54/986754/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/54/986754/1"}}},"commit":{"parents":[{"commit":"d2c81a9e18b239d86d53989bc0923115cafba4a0","subject":"Merge \"TPM: clean up orphaned libvirt secret on guest creation failure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/d2c81a9e18b239d86d53989bc0923115cafba4a0"}]}],"author":{"name":"Julien Le Jeune","email":"julien.le-jeune@ovhcloud.com","date":"2026-04-29 08:15:42.000000000","tz":120},"committer":{"name":"Julien Le Jeune","email":"julien.le-jeune@ovhcloud.com","date":"2026-04-30 08:58:52.000000000","tz":120},"subject":"Reproduce bug #2150616: KeyError in _rollback_volume_bdms","message":"Reproduce bug #2150616: KeyError in _rollback_volume_bdms\n\nAdd a functional regression test that demonstrates bug #2150616: when a\nlive migration fails after a new volume BDM has been added to the\ninstance during the migration window (i.e. after _do_live_migration has\ncaptured source_bdms but before _rollback_live_migration runs),\n_rollback_volume_bdms raises a KeyError when looking the unknown BDM up\nin the source_bdms snapshot. The unhandled exception aborts the\nrollback: the migration is flagged as \u0027error\u0027 instead of \u0027failed\u0027, the\ninstance is moved to ERROR state and the destination host is left with\nstale port bindings and volume connections.\n\nThe test boots an instance from a Cinder volume, then triggers a live\nmigration whose stub injects an extra volume BDM directly into the DB\nto model the late attach before failing the migration with fail_job().\nIt then asserts the current buggy behaviour (migration\u003d\u0027error\u0027,\nserver\u003d\u0027ERROR\u0027 and the \"Exception while attempting to rollback BDM for\nvolume\" / \"KeyError\" entries in the logs). A FIXME marks the\nassertions that will need to be flipped once the bug is fixed.\n\nRelated-Bug: #2150616\nAssisted-By: Claude-Code opus 4.7\n\nChange-Id: I57c4f2d31b1e0df4519583482152e3f2744511dc\nSigned-off-by: Julien Le Jeune \u003cjulien.le-jeune@ovhcloud.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/b4bb17aa7027a21b25026ac28ee5d03350a48a2a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/b4bb17aa7027a21b25026ac28ee5d03350a48a2a"}]},"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":""}}}]}
