)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d57d9f67e6632e59f72954215c807cf07153e86","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Avoid error state for recovered instances after failed migrations"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Most users expect that if a live migration fails but the instance"},{"line_number":10,"context_line":"is fully recovered, it shouldn\u0027t enter \u0027error\u0027 state. Setting"},{"line_number":11,"context_line":"the migration status to \u0027error\u0027 should be enough. This simplifies"},{"line_number":12,"context_line":"debugging, making it clear that the instance dosn\u0027t have to be"},{"line_number":13,"context_line":"manually recovered."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_0310f34e","line":11,"range":{"start_line":10,"start_character":54,"end_line":11,"end_character":49},"updated":"2019-08-27 21:41:18.000000000","message":"Hmm, but if you don\u0027t raise an error from the driver then you won\u0027t hit the except block in this change right?\n\nhttps://review.opendev.org/#/c/430404/3/nova/compute/manager.py\n\nWhich means the migration status won\u0027t be set to \u0027error\u0027?\n\n(later)\n\nOK I guess the migration.status gets set to \u0027error\u0027 in the rollback method:\n\nhttps://github.com/openstack/nova/blob/912a46c9d4d3a8cc63724adff70acf8a4fc34d9b/nova/compute/manager.py#L7408","commit_id":"12b361f0b44f3d34899982b643482228044d3d86"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"86e7e082920e9752bfed29172999a9e8585d73f9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Avoid error state for recovered instances after failed migrations"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Most users expect that if a live migration fails but the instance"},{"line_number":10,"context_line":"is fully recovered, it shouldn\u0027t enter \u0027error\u0027 state. Setting"},{"line_number":11,"context_line":"the migration status to \u0027error\u0027 should be enough. This simplifies"},{"line_number":12,"context_line":"debugging, making it clear that the instance dosn\u0027t have to be"},{"line_number":13,"context_line":"manually recovered."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_92ff4bff","line":11,"range":{"start_line":10,"start_character":54,"end_line":11,"end_character":49},"in_reply_to":"7faddb67_0310f34e","updated":"2019-08-28 06:11:15.000000000","message":"I probably should\u0027ve mentioned it in the commit message, sparing you from having to look it up :).","commit_id":"12b361f0b44f3d34899982b643482228044d3d86"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d57d9f67e6632e59f72954215c807cf07153e86","unresolved":false,"context_lines":[{"line_number":15,"context_line":"This patch changed this behavior, indirectly affecting the Hyper-V"},{"line_number":16,"context_line":"driver: Idfdce9e7dd8106af01db0358ada15737cb846395"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"We\u0027ll stop propagating exceptions when managing to recover the"},{"line_number":19,"context_line":"instance, which matches the reference driver (libvirt) behavior."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I16c200ebf0a996865ddce5688434e9c9ad69e331"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_b1512c33","line":18,"updated":"2019-08-27 21:41:18.000000000","message":"But if recover_method itself raises then you\u0027ll still propagate that and the instance will probably be in error status, correct?","commit_id":"12b361f0b44f3d34899982b643482228044d3d86"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"86e7e082920e9752bfed29172999a9e8585d73f9","unresolved":false,"context_lines":[{"line_number":15,"context_line":"This patch changed this behavior, indirectly affecting the Hyper-V"},{"line_number":16,"context_line":"driver: Idfdce9e7dd8106af01db0358ada15737cb846395"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"We\u0027ll stop propagating exceptions when managing to recover the"},{"line_number":19,"context_line":"instance, which matches the reference driver (libvirt) behavior."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I16c200ebf0a996865ddce5688434e9c9ad69e331"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_b219277b","line":18,"in_reply_to":"7faddb67_b1512c33","updated":"2019-08-28 06:11:15.000000000","message":"Indeed, which is what we want since probably we didn\u0027t manage to fully restore the instance.","commit_id":"12b361f0b44f3d34899982b643482228044d3d86"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d57d9f67e6632e59f72954215c807cf07153e86","unresolved":false,"context_lines":[{"line_number":16,"context_line":"driver: Idfdce9e7dd8106af01db0358ada15737cb846395"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"We\u0027ll stop propagating exceptions when managing to recover the"},{"line_number":19,"context_line":"instance, which matches the reference driver (libvirt) behavior."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I16c200ebf0a996865ddce5688434e9c9ad69e331"},{"line_number":22,"context_line":"Closes-Bug: 1841411"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_d10aa825","line":19,"range":{"start_line":19,"start_character":46,"end_line":19,"end_character":53},"updated":"2019-08-27 21:41:18.000000000","message":"I guess you mean this:\n\nhttps://github.com/openstack/nova/blob/912a46c9d4d3a8cc63724adff70acf8a4fc34d9b/nova/virt/libvirt/driver.py#L8083","commit_id":"12b361f0b44f3d34899982b643482228044d3d86"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"86e7e082920e9752bfed29172999a9e8585d73f9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"driver: Idfdce9e7dd8106af01db0358ada15737cb846395"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"We\u0027ll stop propagating exceptions when managing to recover the"},{"line_number":19,"context_line":"instance, which matches the reference driver (libvirt) behavior."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I16c200ebf0a996865ddce5688434e9c9ad69e331"},{"line_number":22,"context_line":"Closes-Bug: 1841411"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_522233a5","line":19,"range":{"start_line":19,"start_character":46,"end_line":19,"end_character":53},"in_reply_to":"7faddb67_d10aa825","updated":"2019-08-28 06:11:15.000000000","message":"Exactly, no exception\u0027s being thrown there.","commit_id":"12b361f0b44f3d34899982b643482228044d3d86"}],"nova/virt/hyperv/livemigrationops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d57d9f67e6632e59f72954215c807cf07153e86","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                dest,"},{"line_number":79,"context_line":"                migrate_disks\u003dnot shared_storage)"},{"line_number":80,"context_line":"        except Exception:"},{"line_number":81,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":82,"context_line":"                LOG.debug(\"Calling live migration recover_method \""},{"line_number":83,"context_line":"                          \"for instance: %s\", instance_name)"},{"line_number":84,"context_line":"                recover_method(context, instance_ref, dest, migrate_data)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_b1260ccb","side":"PARENT","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":55},"updated":"2019-08-27 21:41:18.000000000","message":"You could still do this like:\n\nwith excutils.save_and_reraise_exception() as err_ctx:\n    LOG.debug(\"Calling live migration recover_method \"\n              \"for instance: %s\", instance_name)\n    recover_method(context, instance_ref, dest, migrate_data)\n    # If we got this far, don\u0027t re-raise since we rolled back.\n    err_ctx.reraise \u003d False\n\nHowever, I\u0027m not sure if that really buys you much since you already logged the original exception traceback with the proposed change.","commit_id":"e493d33128f738138d34cb8fa6f689ac67c8bd46"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"86e7e082920e9752bfed29172999a9e8585d73f9","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                dest,"},{"line_number":79,"context_line":"                migrate_disks\u003dnot shared_storage)"},{"line_number":80,"context_line":"        except Exception:"},{"line_number":81,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":82,"context_line":"                LOG.debug(\"Calling live migration recover_method \""},{"line_number":83,"context_line":"                          \"for instance: %s\", instance_name)"},{"line_number":84,"context_line":"                recover_method(context, instance_ref, dest, migrate_data)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_924d0b73","side":"PARENT","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":55},"in_reply_to":"7faddb67_b1260ccb","updated":"2019-08-28 06:11:15.000000000","message":"That\u0027s the first thing that came to my mind but then I realized that since we\u0027re not going to propagate the exception, it wouldn\u0027t help much.","commit_id":"e493d33128f738138d34cb8fa6f689ac67c8bd46"}]}
