)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"94943e0ccb54baa9a65ed9ec0ffd352e68a5f8fa","unresolved":false,"context_lines":[{"line_number":15,"context_line":"To make live-migration consistent with resize, confirm-resize and revert-"},{"line_number":16,"context_line":"resize operation, it needs to mark migration status to \u0027error\u0027 instead of"},{"line_number":17,"context_line":"\u0027failed\u0027 in case of failure."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"DocImpact: On live-migration failure, set migration status to \u0027error\u0027"},{"line_number":20,"context_line":"instead of \u0027failed\u0027."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba15a1d1_3b903195","line":18,"updated":"2015-09-22 08:32:44.000000000","message":"You made a comment saying this is fixing a bug.\n\nCan you please add this into the commit message. The git commit message should should talk about *why* this patch is needed, particularly when its not obvious from the code change.","commit_id":"1d76ab6bd76ae0a36ffa327164ddcfd2cea1e4df"},{"author":{"_account_id":10795,"name":"Rajesh Tailor","email":"tailor.rajesh88@gmail.com","username":"rajeshtailor"},"change_message_id":"807c513e1a7c2da8ed3da3a925165558843fe2cc","unresolved":false,"context_lines":[{"line_number":15,"context_line":"To make live-migration consistent with resize, confirm-resize and revert-"},{"line_number":16,"context_line":"resize operation, it needs to mark migration status to \u0027error\u0027 instead of"},{"line_number":17,"context_line":"\u0027failed\u0027 in case of failure."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"DocImpact: On live-migration failure, set migration status to \u0027error\u0027"},{"line_number":20,"context_line":"instead of \u0027failed\u0027."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba15a1d1_f152aa66","line":18,"in_reply_to":"ba15a1d1_3b903195","updated":"2015-09-23 04:19:48.000000000","message":"Done","commit_id":"1d76ab6bd76ae0a36ffa327164ddcfd2cea1e4df"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"204a0859461118e2a2a92105b19b8dc7c41c0e5b","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"To make live-migration consistent with resize, confirm-resize and revert-"},{"line_number":16,"context_line":"resize operation, it needs to mark migration status to \u0027error\u0027 instead of"},{"line_number":17,"context_line":"\u0027failed\u0027 in case of failure."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"(B) Apart from consistency, proposed change fixes issue (similar to [1])"},{"line_number":20,"context_line":"which might occur on live-migration failure as follows:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba8a016a_aac10056","line":17,"updated":"2015-11-18 13:15:26.000000000","message":"I\u0027m not sure this is right. I looked around at migration code following Alex\u0027s comment about failed vs error. It seems to me that migrations should be marked as failed if they can be cleaned up and error only if not. Maybe the resize operations should be made consistent.","commit_id":"b96fe33729df5870f2fb7a9b0836770a8ed95212"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"1f9d801cf6f78ed71d865de0ac266549ce37b27d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"deleted, instance files will remain on other host (not instance.host)."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Set migration status to \u0027error\u0027 on live-migration failure, so that"},{"line_number":29,"context_line":"periodic task _cleanup_incomplete_migrations [2] will remove orphaned"},{"line_number":30,"context_line":"instance files from compute nodes after instance deletion in above case."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[1] https://bugs.launchpad.net/nova/+bug/1392527"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba8a016a_20af6fe3","line":29,"range":{"start_line":29,"start_character":14,"end_line":29,"end_character":44},"updated":"2015-11-18 13:29:24.000000000","message":"I feel that the fix this was introduced in is a very blunt instrument that tries to fix something that was a security issue.\n\nWe really should fix this in a better way, and we should not be twisting the semantics of something that is very clear such as migrations status, to fit this quick fix.","commit_id":"b96fe33729df5870f2fb7a9b0836770a8ed95212"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"46293053b7e2dd1f04834e6ce9ec30510944cc1e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"deleted, instance files will remain on other host (not instance.host)."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Set migration status to \u0027error\u0027 on live-migration failure, so that"},{"line_number":29,"context_line":"periodic task _cleanup_incomplete_migrations [2] will remove orphaned"},{"line_number":30,"context_line":"instance files from compute nodes after instance deletion in above case."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[1] https://bugs.launchpad.net/nova/+bug/1392527"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a740942_6d852358","line":29,"range":{"start_line":29,"start_character":14,"end_line":29,"end_character":44},"in_reply_to":"ba8a016a_20af6fe3","updated":"2015-12-08 16:31:31.000000000","message":"I agree that a fix should not rely on changing user facing status messages.  A better fix would be to have deletion clean up both source/dest hosts if there is a migration in progress.","commit_id":"b96fe33729df5870f2fb7a9b0836770a8ed95212"}],"nova/compute/manager.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"1f9d801cf6f78ed71d865de0ac266549ce37b27d","unresolved":false,"context_lines":[{"line_number":5026,"context_line":"                LOG.exception(_LE(\u0027Pre live migration failed at %s\u0027),"},{"line_number":5027,"context_line":"                              dest, instance\u003dinstance)"},{"line_number":5028,"context_line":"                if migration:"},{"line_number":5029,"context_line":"                    migration.status \u003d \u0027error\u0027"},{"line_number":5030,"context_line":"                    migration.save()"},{"line_number":5031,"context_line":"                self._rollback_live_migration(context, instance, dest,"},{"line_number":5032,"context_line":"                                              block_migration, migrate_data)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_5d15bc46","line":5029,"range":{"start_line":5029,"start_character":39,"end_line":5029,"end_character":46},"updated":"2015-11-18 13:29:24.000000000","message":"I am meh on this one - it will be set to error on _rollback_live_migration... maybe we should just remove it","commit_id":"b96fe33729df5870f2fb7a9b0836770a8ed95212"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"204a0859461118e2a2a92105b19b8dc7c41c0e5b","unresolved":false,"context_lines":[{"line_number":5026,"context_line":"                LOG.exception(_LE(\u0027Pre live migration failed at %s\u0027),"},{"line_number":5027,"context_line":"                              dest, instance\u003dinstance)"},{"line_number":5028,"context_line":"                if migration:"},{"line_number":5029,"context_line":"                    migration.status \u003d \u0027error\u0027"},{"line_number":5030,"context_line":"                    migration.save()"},{"line_number":5031,"context_line":"                self._rollback_live_migration(context, instance, dest,"},{"line_number":5032,"context_line":"                                              block_migration, migrate_data)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_0a7fec15","line":5029,"updated":"2015-11-18 13:15:26.000000000","message":"I think this should be failed, not error. We also have failed in scheduling etc. This condition is normally cleaned up.","commit_id":"b96fe33729df5870f2fb7a9b0836770a8ed95212"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"1f9d801cf6f78ed71d865de0ac266549ce37b27d","unresolved":false,"context_lines":[{"line_number":5041,"context_line":"                                       self._post_live_migration,"},{"line_number":5042,"context_line":"                                       self._rollback_live_migration,"},{"line_number":5043,"context_line":"                                       block_migration, migrate_data)"},{"line_number":5044,"context_line":"        except Exception:"},{"line_number":5045,"context_line":"            # Executing live migration"},{"line_number":5046,"context_line":"            # live_migration might raises exceptions, but"},{"line_number":5047,"context_line":"            # nothing must be recovered in this version."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_fddd90e0","line":5044,"range":{"start_line":5044,"start_character":8,"end_line":5044,"end_character":25},"updated":"2015-11-18 13:29:24.000000000","message":"This particular block will not get called on normal failure path, just if there is an exception such as temporary libvirt issue etc.\n\nIn this case it is reasonable to retry the migration. We already set the migration to error in rollback_live_migration callback, and should have a different state than error (although not sure failed is the best choice to convey that message).","commit_id":"b96fe33729df5870f2fb7a9b0836770a8ed95212"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"204a0859461118e2a2a92105b19b8dc7c41c0e5b","unresolved":false,"context_lines":[{"line_number":5048,"context_line":"            LOG.exception(_LE(\u0027Live migration failed.\u0027), instance\u003dinstance)"},{"line_number":5049,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":5050,"context_line":"                if migration:"},{"line_number":5051,"context_line":"                    migration.status \u003d \u0027error\u0027"},{"line_number":5052,"context_line":"                    migration.save()"},{"line_number":5053,"context_line":""},{"line_number":5054,"context_line":"    @wrap_exception()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_2acaf04e","line":5051,"updated":"2015-11-18 13:15:26.000000000","message":"Maybe this one is error, not sure","commit_id":"b96fe33729df5870f2fb7a9b0836770a8ed95212"}],"nova/conductor/manager.py":[{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"204a0859461118e2a2a92105b19b8dc7c41c0e5b","unresolved":false,"context_lines":[{"line_number":683,"context_line":"                      exc_info\u003dTrue)"},{"line_number":684,"context_line":"            _set_vm_state(context, instance, ex, vm_states.ERROR,"},{"line_number":685,"context_line":"                          instance.task_state)"},{"line_number":686,"context_line":"            migration.status \u003d \u0027error\u0027"},{"line_number":687,"context_line":"            migration.save()"},{"line_number":688,"context_line":"            raise exception.MigrationError(reason\u003dsix.text_type(ex))"},{"line_number":689,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_9df00400","line":686,"updated":"2015-11-18 13:15:26.000000000","message":"Again, in this case error may be correct if there is no chance of cleanup.","commit_id":"b96fe33729df5870f2fb7a9b0836770a8ed95212"}]}
