)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9d45cb7dc98f4efcf44ed5268b4b41e98ce49e92","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     MultipleCrashes \u003cinimitableharish@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-06-04 21:21:28 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Retry decorator fix for autoscale delete"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"deallocate-network-retry"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_e6f1476c","line":7,"range":{"start_line":7,"start_character":24,"end_line":7,"end_character":40},"updated":"2018-06-06 15:11:58.000000000","message":"I have no idea what \"autoscale delete\" is.","commit_id":"2d46312171711a3fb00b95ffaed6a71758e54a04"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9d45cb7dc98f4efcf44ed5268b4b41e98ce49e92","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Retry decorator fix for autoscale delete"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"deallocate-network-retry"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"retry fix for VM going to ERROR state during auto-scale delete instance"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_66fd373a","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":24},"updated":"2018-06-06 15:11:58.000000000","message":"Is this supposed to be a reference to a blueprint?","commit_id":"2d46312171711a3fb00b95ffaed6a71758e54a04"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9d45cb7dc98f4efcf44ed5268b4b41e98ce49e92","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Delete issued to building server leaves the instance in error state due to"},{"line_number":14,"context_line":"not able to deallocate network error.During auto-scale delete, some of"},{"line_number":15,"context_line":"the machines go into ERROR state rather than being deleted.This happens"},{"line_number":16,"context_line":"once in a while during deletion of the instances at scale.Log line for"},{"line_number":17,"context_line":"the failure is \u0027Setting instance vm_state to ERROR\u0027,"},{"line_number":18,"context_line":"Failure in do_terminate_instance."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_e69627f0","line":16,"range":{"start_line":16,"start_character":16,"end_line":16,"end_character":57},"updated":"2018-06-06 15:11:58.000000000","message":"I\u0027m not sure what this means. Did you mean \"when attempting to delete many instances at once\"?","commit_id":"2d46312171711a3fb00b95ffaed6a71758e54a04"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9d45cb7dc98f4efcf44ed5268b4b41e98ce49e92","unresolved":false,"context_lines":[{"line_number":15,"context_line":"the machines go into ERROR state rather than being deleted.This happens"},{"line_number":16,"context_line":"once in a while during deletion of the instances at scale.Log line for"},{"line_number":17,"context_line":"the failure is \u0027Setting instance vm_state to ERROR\u0027,"},{"line_number":18,"context_line":"Failure in do_terminate_instance."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Ie27a19113b600a2e8222d39a5633504fd775a5ef"},{"line_number":21,"context_line":"Closes-Bug: #1765942"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_0691e3f1","line":18,"updated":"2018-06-06 15:11:58.000000000","message":"This commit message doesn\u0027t describe what is being fixed, why the patch is doing what it\u0027s doing nor how the fix is implemented. This commit message is merely re-stating the bug report, which isn\u0027t very helpful.","commit_id":"2d46312171711a3fb00b95ffaed6a71758e54a04"}],"nova/compute/manager.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9d45cb7dc98f4efcf44ed5268b4b41e98ce49e92","unresolved":false,"context_lines":[{"line_number":1646,"context_line":"            system_metadata\u003dsystem_metadata,"},{"line_number":1647,"context_line":"            extra_usage_info\u003dextra_usage_info, fault\u003dfault)"},{"line_number":1648,"context_line":""},{"line_number":1649,"context_line":"    def _deallocate_network(self, context, instance,"},{"line_number":1650,"context_line":"                            requested_networks\u003dNone):"},{"line_number":1651,"context_line":"        # If we were told not to allocate networks let\u0027s save ourselves"},{"line_number":1652,"context_line":"        # the trouble of calling the network API."},{"line_number":1653,"context_line":"        if requested_networks and requested_networks.no_allocate:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_863973f3","line":1650,"range":{"start_line":1649,"start_character":4,"end_line":1650,"end_character":53},"updated":"2018-06-06 15:11:58.000000000","message":"This is the method I would decorate with a retry loop.","commit_id":"2d46312171711a3fb00b95ffaed6a71758e54a04"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9d45cb7dc98f4efcf44ed5268b4b41e98ce49e92","unresolved":false,"context_lines":[{"line_number":2294,"context_line":"                            inc_sleep_time\u003d10,"},{"line_number":2295,"context_line":"                            max_sleep_time\u003d30,"},{"line_number":2296,"context_line":"                            exceptions\u003d("},{"line_number":2297,"context_line":"                                keystone_exception.connection.ConnectFailure,))"},{"line_number":2298,"context_line":"    def _try_deallocate_network(self, context, instance,"},{"line_number":2299,"context_line":"                                requested_networks\u003dNone):"},{"line_number":2300,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_2916304b","line":2297,"range":{"start_line":2297,"start_character":32,"end_line":2297,"end_character":77},"updated":"2018-06-06 15:11:58.000000000","message":"I would have at least expected that you mention in the commit message or bug report that the cause of the failure that you are seeing for multiple concurrent instance deletes is a failure to connect to Keystone. If that is really the case, it seems to me that the most appropriate place to put a retry would actually be on the neutron client\u0027s interaction with Keystone, not in Nova\u0027s compute manager...","commit_id":"2d46312171711a3fb00b95ffaed6a71758e54a04"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9d45cb7dc98f4efcf44ed5268b4b41e98ce49e92","unresolved":false,"context_lines":[{"line_number":2299,"context_line":"                                requested_networks\u003dNone):"},{"line_number":2300,"context_line":"        try:"},{"line_number":2301,"context_line":"            # tear down allocated network structure"},{"line_number":2302,"context_line":"            self._deallocate_network(context, instance, requested_networks)"},{"line_number":2303,"context_line":"        except Exception as ex:"},{"line_number":2304,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":2305,"context_line":"                LOG.error(\u0027Failed to deallocate network for instance. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_866bb3ef","line":2302,"range":{"start_line":2302,"start_character":12,"end_line":2302,"end_character":36},"updated":"2018-06-06 15:11:58.000000000","message":"why not decorate this method with the retry loop?","commit_id":"2d46312171711a3fb00b95ffaed6a71758e54a04"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9d45cb7dc98f4efcf44ed5268b4b41e98ce49e92","unresolved":false,"context_lines":[{"line_number":73,"context_line":"from nova.virt import hardware"},{"line_number":74,"context_line":"from nova.volume import cinder"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"try:"},{"line_number":77,"context_line":"    # py2.x"},{"line_number":78,"context_line":"    import threading"},{"line_number":79,"context_line":"    x \u003d threading._Event.wait"},{"line_number":80,"context_line":"    patch_func \u003d \u0027threading._Event.wait\u0027"},{"line_number":81,"context_line":"except Exception:"},{"line_number":82,"context_line":"    # py3.x"},{"line_number":83,"context_line":"    patch_func \u003d \u0027threading.Event.wait\u0027"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":86,"context_line":"fake_host_list \u003d [mock.sentinel.host1]"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_292f1089","line":83,"range":{"start_line":76,"start_character":0,"end_line":83,"end_character":39},"updated":"2018-06-06 15:11:58.000000000","message":"Why was this necessary? Seems odd to require this kind of messing with low-level primitives.","commit_id":"2d46312171711a3fb00b95ffaed6a71758e54a04"}]}
