)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"634c0f137fcfe2f3c3008e4c761064746b385390","unresolved":false,"context_lines":[{"line_number":22,"context_line":"So, this makes it an explicit error, where we stop further processing,"},{"line_number":23,"context_line":"set the migration for the evacuation to \u0027failed\u0027, and send a"},{"line_number":24,"context_line":"notification for it. This is the same behavior as happens further"},{"line_number":25,"context_line":"down if we find that the instance has been deleted underneath us."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I88b962aaeaa0554da4ab00906ac4d9e6deb43589"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3ee7c48c_b0e5096d","line":25,"updated":"2023-04-18 07:25:35.000000000","message":"Thanks for spotting the root cause. It was a long pain as the migration was eventually failing. Thanks for this.","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"634c0f137fcfe2f3c3008e4c761064746b385390","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3a0eabe6_2c500dfc","updated":"2023-04-18 07:25:35.000000000","message":"A very slight -1 because while I agree with the fix, I think we could reuse the existing helper tooling we have.","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"24d484743d408e8d5eb834f819b552bc432c93c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e7f97a82_58c012e5","updated":"2023-04-17 19:31:11.000000000","message":"recheck guest kernel crash","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d1cdfee5936cd9f1d763855793ac83308269e35a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3c0a336b_79b88b9d","updated":"2023-04-24 15:32:38.000000000","message":"Looks good.","commit_id":"024e4cfea376108d4f076e40f75c264dd211fbd8"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f48fd5ed487dfa3cdf33de8a3b95a26886dabf29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d36f8033_e3c6f9ba","updated":"2023-04-24 21:49:05.000000000","message":"recheck gate fix merged","commit_id":"024e4cfea376108d4f076e40f75c264dd211fbd8"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2b139a87d1b581338e1d7a0ee19d359e54fb9f4b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b8b17405_315a5400","updated":"2023-04-19 14:27:49.000000000","message":"recheck massive unrelated cinder failure","commit_id":"024e4cfea376108d4f076e40f75c264dd211fbd8"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ee0bd80427ef9e6a271989635b0ca04f1c94f9bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"89d9f171_fd7fa98b","updated":"2023-04-20 15:39:22.000000000","message":"recheck ssh failed in glance resources phase","commit_id":"024e4cfea376108d4f076e40f75c264dd211fbd8"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a77c1b8b85eeb54e0b4664468c5ca41c28a4277e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0988a581_1dda8afd","updated":"2023-04-19 17:10:52.000000000","message":"recheck timeout tempest talking to neutron","commit_id":"024e4cfea376108d4f076e40f75c264dd211fbd8"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"30517120c2c643076629a2ceb79b09256fb918ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"60f94115_83d6bda9","updated":"2023-04-18 16:26:29.000000000","message":"thanks","commit_id":"024e4cfea376108d4f076e40f75c264dd211fbd8"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"db11103f012ef8a1f03ca41457115233ff80cfc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5150ed5e_938dd338","updated":"2023-04-25 13:07:43.000000000","message":"recheck neutron revert merged","commit_id":"fbf2515b4c1dc5f279bb3df2fcb2193a1b52673a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"990e3c80215d965c635ac8c1e2140a220f440105","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"33b484bb_f2a6c533","updated":"2023-04-25 20:30:29.000000000","message":"recheck u-c revert merged","commit_id":"fbf2515b4c1dc5f279bb3df2fcb2193a1b52673a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2ef12a1522bac22caf11ee93bd88093349c269af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"322f5060_e318687a","updated":"2023-04-26 13:25:07.000000000","message":"sending it back to the resurrected gate.","commit_id":"fbf2515b4c1dc5f279bb3df2fcb2193a1b52673a"}],"nova/compute/manager.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"634c0f137fcfe2f3c3008e4c761064746b385390","unresolved":true,"context_lines":[{"line_number":3801,"context_line":"                    self._set_migration_status(migration, \u0027failed\u0027)"},{"line_number":3802,"context_line":"                    self._notify_instance_rebuild_error(context, instance, e,"},{"line_number":3803,"context_line":"                                                        bdms)"},{"line_number":3804,"context_line":"                    return"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"            else:"},{"line_number":3807,"context_line":"                scheduled_node \u003d instance.node"}],"source_content_type":"text/x-python","patch_set":2,"id":"f6a0af7b_d49488a9","line":3804,"updated":"2023-04-18 07:25:35.000000000","message":"nit: we could wrap the exception with InstanceFaultRollback like we do below instead of directly returning and notifying.\n\n\nIf we do this, all of the meat is done by the decorator : \nhttps://github.com/openstack/nova/blob/50fdbc752a9ca9c31488140ef2997ed59d861a41/nova/exception_wrapper.py#L53\n\n(that\u0027s not really needed, but we can use the same pattern here, hence my comment)","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3f40e0509dc2854ebd09040fca1068cb1b9d6d46","unresolved":true,"context_lines":[{"line_number":3801,"context_line":"                    self._set_migration_status(migration, \u0027failed\u0027)"},{"line_number":3802,"context_line":"                    self._notify_instance_rebuild_error(context, instance, e,"},{"line_number":3803,"context_line":"                                                        bdms)"},{"line_number":3804,"context_line":"                    return"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"            else:"},{"line_number":3807,"context_line":"                scheduled_node \u003d instance.node"}],"source_content_type":"text/x-python","patch_set":2,"id":"427a2480_4c80c6c6","line":3804,"in_reply_to":"3e85ca5d_2b1541da","updated":"2023-04-18 15:38:10.000000000","message":"We will send *a* notification, but not an instance-specific one about the rebuild failure right? The decorator doesn\u0027t do anything  to determine what instance this is for, or that it\u0027s specific to a rebuild right? All the failures below send a specific rebuild error notification, which is what I was trying to replicate.","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"30517120c2c643076629a2ceb79b09256fb918ea","unresolved":false,"context_lines":[{"line_number":3801,"context_line":"                    self._set_migration_status(migration, \u0027failed\u0027)"},{"line_number":3802,"context_line":"                    self._notify_instance_rebuild_error(context, instance, e,"},{"line_number":3803,"context_line":"                                                        bdms)"},{"line_number":3804,"context_line":"                    return"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"            else:"},{"line_number":3807,"context_line":"                scheduled_node \u003d instance.node"}],"source_content_type":"text/x-python","patch_set":2,"id":"88d1ec3f_370fbdf2","line":3804,"in_reply_to":"427a2480_4c80c6c6","updated":"2023-04-18 16:26:29.000000000","message":"OK, then let\u0027s do what you wrote in PS3. #Iwanttostopnitpicking","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"35f5c7a98835b71c743f3f959d97f027bb18e5a2","unresolved":true,"context_lines":[{"line_number":3801,"context_line":"                    self._set_migration_status(migration, \u0027failed\u0027)"},{"line_number":3802,"context_line":"                    self._notify_instance_rebuild_error(context, instance, e,"},{"line_number":3803,"context_line":"                                                        bdms)"},{"line_number":3804,"context_line":"                    return"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"            else:"},{"line_number":3807,"context_line":"                scheduled_node \u003d instance.node"}],"source_content_type":"text/x-python","patch_set":2,"id":"3e85ca5d_2b1541da","line":3804,"in_reply_to":"50243d61_cc57927f","updated":"2023-04-18 15:24:12.000000000","message":"No, you just need to set the status to fail and then to raise the InstanceFaultRollback exception like we do in L3858 :\n\n                 raise exception.InstanceFaultRollback(\n                    inner_exception\u003dexception.BuildAbortException(\n                        instance_uuid\u003dinstance.uuid,\n                        reason\u003de.format_message()))\n\nAs you will see in the @wrap_exception decorator, we already notify the error inside it.","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a84b183fe0599f65f33cac5a8980b0789f0b6792","unresolved":true,"context_lines":[{"line_number":3801,"context_line":"                    self._set_migration_status(migration, \u0027failed\u0027)"},{"line_number":3802,"context_line":"                    self._notify_instance_rebuild_error(context, instance, e,"},{"line_number":3803,"context_line":"                                                        bdms)"},{"line_number":3804,"context_line":"                    return"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"            else:"},{"line_number":3807,"context_line":"                scheduled_node \u003d instance.node"}],"source_content_type":"text/x-python","patch_set":2,"id":"50243d61_cc57927f","line":3804,"in_reply_to":"f6a0af7b_d49488a9","updated":"2023-04-18 13:47:15.000000000","message":"Are you just talking about for the return? I still need to mark the migration as failed and send the per-instance notify.","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"634c0f137fcfe2f3c3008e4c761064746b385390","unresolved":true,"context_lines":[{"line_number":3855,"context_line":"                raise exception.InstanceFaultRollback("},{"line_number":3856,"context_line":"                    inner_exception\u003dexception.BuildAbortException("},{"line_number":3857,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":3858,"context_line":"                        reason\u003de.format_message()))"},{"line_number":3859,"context_line":"            except (exception.InstanceNotFound,"},{"line_number":3860,"context_line":"                    exception.UnexpectedDeletingTaskStateError) as e:"},{"line_number":3861,"context_line":"                LOG.debug(\u0027Instance was deleted while rebuilding\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"aec44398_8a198454","line":3858,"updated":"2023-04-18 07:25:35.000000000","message":"see, here we raise an InstanceFaultRollback exception","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"30517120c2c643076629a2ceb79b09256fb918ea","unresolved":false,"context_lines":[{"line_number":3855,"context_line":"                raise exception.InstanceFaultRollback("},{"line_number":3856,"context_line":"                    inner_exception\u003dexception.BuildAbortException("},{"line_number":3857,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":3858,"context_line":"                        reason\u003de.format_message()))"},{"line_number":3859,"context_line":"            except (exception.InstanceNotFound,"},{"line_number":3860,"context_line":"                    exception.UnexpectedDeletingTaskStateError) as e:"},{"line_number":3861,"context_line":"                LOG.debug(\u0027Instance was deleted while rebuilding\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"2dd3d292_d0aab8f4","line":3858,"in_reply_to":"aec44398_8a198454","updated":"2023-04-18 16:26:29.000000000","message":"Done","commit_id":"ba6dcbc2a21bb3c3dec21eb147850a11e06ca8a2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"30517120c2c643076629a2ceb79b09256fb918ea","unresolved":false,"context_lines":[{"line_number":3805,"context_line":"                        inner_exception\u003dexception.BuildAbortException("},{"line_number":3806,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":3807,"context_line":"                        reason\u003de.format_message()))"},{"line_number":3808,"context_line":""},{"line_number":3809,"context_line":"            else:"},{"line_number":3810,"context_line":"                scheduled_node \u003d instance.node"},{"line_number":3811,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1705dec8_8521a596","line":3808,"updated":"2023-04-18 16:26:29.000000000","message":"thanks for the modification.","commit_id":"024e4cfea376108d4f076e40f75c264dd211fbd8"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"30517120c2c643076629a2ceb79b09256fb918ea","unresolved":false,"context_lines":[{"line_number":13621,"context_line":"                              side_effect\u003dfake_get_compute_info)"},{"line_number":13622,"context_line":"        ) as (mock_inst, mock_get):"},{"line_number":13623,"context_line":"            self.assertRaises(exception.InstanceFaultRollback,"},{"line_number":13624,"context_line":"                              self._rebuild, expect_error\u003dTrue)"},{"line_number":13625,"context_line":""},{"line_number":13626,"context_line":"            # Should be on destination host"},{"line_number":13627,"context_line":"            instance \u003d db.instance_get(self.context, self.inst.id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"72ee4621_4c74aae6","line":13624,"updated":"2023-04-18 16:26:29.000000000","message":"yup","commit_id":"024e4cfea376108d4f076e40f75c264dd211fbd8"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"30517120c2c643076629a2ceb79b09256fb918ea","unresolved":false,"context_lines":[{"line_number":13627,"context_line":"            instance \u003d db.instance_get(self.context, self.inst.id)"},{"line_number":13628,"context_line":"            self.assertEqual(\u0027fake_host_2\u0027, instance[\u0027host\u0027])"},{"line_number":13629,"context_line":"            self.assertEqual(\u0027fakenode2\u0027, instance[\u0027node\u0027])"},{"line_number":13630,"context_line":"            mock_inst.assert_not_called()"},{"line_number":13631,"context_line":"            mock_get.assert_called_once_with(mock.ANY, self.compute.host)"},{"line_number":13632,"context_line":""},{"line_number":13633,"context_line":"    def test_rebuild_on_host_node_passed(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"63ea3e98_1bf21735","line":13630,"updated":"2023-04-18 16:26:29.000000000","message":"that\u0027s the whole meat.","commit_id":"024e4cfea376108d4f076e40f75c264dd211fbd8"}]}
