)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"689accace5fd07d56147455275631168e07f2c9b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"other notify calls."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I391554d3904a5a60b921ef4714a1cfd0a64a25c2"},{"line_number":20,"context_line":"Implements: bp additional-notification-fields-for-searchlight-queens"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ff5d4b2f_780d438f","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":68},"updated":"2017-09-19 14:35:44.000000000","message":"I\u0027ve marked this blueprint as obsolete. Please remove this and just open a bug for tracking this performance fix.","commit_id":"69aba892423d33b9a9e922c9e17176d3e8128211"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"857d636ec330135bbc6f2f24149cd59102888abc","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In I18e7483ec9a484a660e1d306fdc0986e1d5f952b BDM was added to the instance"},{"line_number":10,"context_line":"notifications. In general to add BDM to the payload an exta DB query is"},{"line_number":11,"context_line":"needed. However in some places the BDM is already separately before the"},{"line_number":12,"context_line":"notify_about_instance_action is called to send the notification. In this cases"},{"line_number":13,"context_line":"loading the BDM again is unnecessary as the already loaded BDM can be reused."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7f515b1d_bfaee795","line":11,"range":{"start_line":11,"start_character":42,"end_line":11,"end_character":60},"updated":"2017-10-04 18:18:52.000000000","message":"already queried separately?","commit_id":"35e6c3197275d34e5aa59892ba0ffdeb3685389b"}],"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"857d636ec330135bbc6f2f24149cd59102888abc","unresolved":false,"context_lines":[{"line_number":2705,"context_line":"    @wrap_instance_fault"},{"line_number":2706,"context_line":"    def rebuild_instance(self, context, instance, orig_image_ref, image_ref,"},{"line_number":2707,"context_line":"                         injected_files, new_pass, orig_sys_metadata,"},{"line_number":2708,"context_line":"                         bdms, recreate, on_shared_storage\u003dNone,"},{"line_number":2709,"context_line":"                         preserve_ephemeral\u003dFalse, migration\u003dNone,"},{"line_number":2710,"context_line":"                         scheduled_node\u003dNone, limits\u003dNone):"},{"line_number":2711,"context_line":"        \"\"\"Destroy and re-make this instance."}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_7fc74f47","line":2708,"range":{"start_line":2708,"start_character":25,"end_line":2708,"end_character":29},"updated":"2017-10-04 18:18:52.000000000","message":"note to self: this will be None during evacuate; only rebuild in the API pulls the BDMs and passes them through to conductor which passes them through to compute. Why? I don\u0027t know.","commit_id":"35e6c3197275d34e5aa59892ba0ffdeb3685389b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"857d636ec330135bbc6f2f24149cd59102888abc","unresolved":false,"context_lines":[{"line_number":3026,"context_line":"        context \u003d context.elevated()"},{"line_number":3027,"context_line":"        LOG.info(\"Rebooting instance\", instance\u003dinstance)"},{"line_number":3028,"context_line":""},{"line_number":3029,"context_line":"        block_device_info \u003d self._get_instance_block_device_info(context,"},{"line_number":3030,"context_line":"                                                                 instance)"},{"line_number":3031,"context_line":""},{"line_number":3032,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context, instance)"},{"line_number":3033,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_f1fdb308","line":3030,"range":{"start_line":3029,"start_character":8,"end_line":3030,"end_character":74},"updated":"2017-10-04 18:18:52.000000000","message":"This method queries the BDMs for the instance. We could look them up first and pass them in and re-use them in the notifications below.","commit_id":"35e6c3197275d34e5aa59892ba0ffdeb3685389b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"857d636ec330135bbc6f2f24149cd59102888abc","unresolved":false,"context_lines":[{"line_number":4061,"context_line":"        self._notify_about_instance_usage("},{"line_number":4062,"context_line":"            context, instance, \"finish_resize.start\","},{"line_number":4063,"context_line":"            network_info\u003dnetwork_info)"},{"line_number":4064,"context_line":"        compute_utils.notify_about_instance_action(context, instance,"},{"line_number":4065,"context_line":"               self.host, action\u003dfields.NotificationAction.RESIZE_FINISH,"},{"line_number":4066,"context_line":"               phase\u003dfields.NotificationPhase.START)"},{"line_number":4067,"context_line":""},{"line_number":4068,"context_line":"        block_device_info \u003d self._get_instance_block_device_info("},{"line_number":4069,"context_line":"                            context, instance, refresh_conn_info\u003dTrue)"},{"line_number":4070,"context_line":""},{"line_number":4071,"context_line":"        # NOTE(mriedem): If the original vm_state was STOPPED, we don\u0027t"},{"line_number":4072,"context_line":"        # automatically power on the instance after it\u0027s migrated"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_f174939e","line":4069,"range":{"start_line":4064,"start_character":8,"end_line":4069,"end_character":70},"updated":"2017-10-04 18:18:52.000000000","message":"Here is another case, _get_instance_block_device_info is going to lookup the BDMs, we could do that beforehand and pass them in.","commit_id":"35e6c3197275d34e5aa59892ba0ffdeb3685389b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"857d636ec330135bbc6f2f24149cd59102888abc","unresolved":false,"context_lines":[{"line_number":4306,"context_line":"            phase\u003dfields.NotificationPhase.START)"},{"line_number":4307,"context_line":""},{"line_number":4308,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context, instance)"},{"line_number":4309,"context_line":"        block_device_info \u003d self._get_instance_block_device_info("},{"line_number":4310,"context_line":"                            context, instance)"},{"line_number":4311,"context_line":""},{"line_number":4312,"context_line":"        with self._error_out_instance_on_exception(context, instance,"},{"line_number":4313,"context_line":"             instance_state\u003dinstance.vm_state):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_7168a3b9","line":4310,"range":{"start_line":4309,"start_character":7,"end_line":4310,"end_character":46},"updated":"2017-10-04 18:18:52.000000000","message":"we can get the bdms before this and pass them in","commit_id":"35e6c3197275d34e5aa59892ba0ffdeb3685389b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"857d636ec330135bbc6f2f24149cd59102888abc","unresolved":false,"context_lines":[{"line_number":4431,"context_line":"        self.network_api.cleanup_instance_network_on_host(context, instance,"},{"line_number":4432,"context_line":"                                                          instance.host)"},{"line_number":4433,"context_line":"        network_info \u003d self.network_api.get_instance_nw_info(context, instance)"},{"line_number":4434,"context_line":"        bdms \u003d objects.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":4435,"context_line":"            context, instance.uuid)"},{"line_number":4436,"context_line":""},{"line_number":4437,"context_line":"        block_device_info \u003d self._get_instance_block_device_info(context,"},{"line_number":4438,"context_line":"                                                                 instance,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_31b7cb3d","line":4435,"range":{"start_line":4434,"start_character":8,"end_line":4435,"end_character":35},"updated":"2017-10-04 18:18:52.000000000","message":"why not move this up to re-use it?","commit_id":"35e6c3197275d34e5aa59892ba0ffdeb3685389b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d190efb015abc1152d7117f6d268f98983d1ae9c","unresolved":false,"context_lines":[{"line_number":718,"context_line":""},{"line_number":719,"context_line":"    def _complete_deletion(self, context, instance, bdms,"},{"line_number":720,"context_line":"                           system_meta):"},{"line_number":721,"context_line":"        # ensure block device mappings are not leaked"},{"line_number":722,"context_line":"        for bdm in bdms:"},{"line_number":723,"context_line":"            bdm.destroy()"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        self._update_resource_tracker(context, instance)"},{"line_number":726,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_100b337d","line":723,"range":{"start_line":721,"start_character":0,"end_line":723,"end_character":25},"updated":"2017-10-09 13:39:10.000000000","message":"What are we trying not to leak this to?","commit_id":"9ce1a71a131aa99084b74829c668ddfb325a625f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1e79a688deaea2b8addac1a03dc12f75f837d0d4","unresolved":false,"context_lines":[{"line_number":718,"context_line":""},{"line_number":719,"context_line":"    def _complete_deletion(self, context, instance, bdms,"},{"line_number":720,"context_line":"                           system_meta):"},{"line_number":721,"context_line":"        # ensure block device mappings are not leaked"},{"line_number":722,"context_line":"        for bdm in bdms:"},{"line_number":723,"context_line":"            bdm.destroy()"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        self._update_resource_tracker(context, instance)"},{"line_number":726,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_ba48bdb2","line":723,"range":{"start_line":721,"start_character":0,"end_line":723,"end_character":25},"in_reply_to":"7f515b1d_100b337d","updated":"2017-10-09 14:02:59.000000000","message":"I think leak here means having an undeleted bdm for a deleted instance. \n\nDestorying the bdm at this point in the db does no prevent us to send out the notification below as the in memory data of the bdm is still available. However I can move this loop after the instance.delete end notification if that makes function more logical.","commit_id":"9ce1a71a131aa99084b74829c668ddfb325a625f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0b51559cdb65c9217c70406af7d55d0be389023c","unresolved":false,"context_lines":[{"line_number":718,"context_line":""},{"line_number":719,"context_line":"    def _complete_deletion(self, context, instance, bdms,"},{"line_number":720,"context_line":"                           system_meta):"},{"line_number":721,"context_line":"        # ensure block device mappings are not leaked"},{"line_number":722,"context_line":"        for bdm in bdms:"},{"line_number":723,"context_line":"            bdm.destroy()"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        self._update_resource_tracker(context, instance)"},{"line_number":726,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_fd0f4f2b","line":723,"range":{"start_line":721,"start_character":0,"end_line":723,"end_character":25},"in_reply_to":"7f515b1d_ba48bdb2","updated":"2017-10-09 14:09:50.000000000","message":"Moving it in this patch seems unnecessary and unrelated.","commit_id":"9ce1a71a131aa99084b74829c668ddfb325a625f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"58dc2541241dc9df1f191a7687f7e6680071e1cd","unresolved":false,"context_lines":[{"line_number":718,"context_line":""},{"line_number":719,"context_line":"    def _complete_deletion(self, context, instance, bdms,"},{"line_number":720,"context_line":"                           system_meta):"},{"line_number":721,"context_line":"        # ensure block device mappings are not leaked"},{"line_number":722,"context_line":"        for bdm in bdms:"},{"line_number":723,"context_line":"            bdm.destroy()"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        self._update_resource_tracker(context, instance)"},{"line_number":726,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_9d84db5f","line":723,"range":{"start_line":721,"start_character":0,"end_line":723,"end_character":25},"in_reply_to":"7f515b1d_fd0f4f2b","updated":"2017-10-09 14:14:07.000000000","message":"This is likely dead code anyway, we delete the bdms when we delete the instance:\n\nhttps://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L1891","commit_id":"9ce1a71a131aa99084b74829c668ddfb325a625f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"58dc2541241dc9df1f191a7687f7e6680071e1cd","unresolved":false,"context_lines":[{"line_number":2414,"context_line":"        instance.terminated_at \u003d timeutils.utcnow()"},{"line_number":2415,"context_line":"        instance.save()"},{"line_number":2416,"context_line":"        system_meta \u003d instance.system_metadata"},{"line_number":2417,"context_line":"        instance.destroy()"},{"line_number":2418,"context_line":""},{"line_number":2419,"context_line":"        self._complete_deletion(context,"},{"line_number":2420,"context_line":"                                instance,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_1d98ebbd","line":2417,"range":{"start_line":2417,"start_character":8,"end_line":2417,"end_character":26},"updated":"2017-10-09 14:14:07.000000000","message":"The BDMs are deleted here anyway.","commit_id":"9ce1a71a131aa99084b74829c668ddfb325a625f"}]}
