)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b4384fe89689d63dab31c1f2c83d42c924b37758","unresolved":false,"context_lines":[{"line_number":11,"context_line":"during the init of the nova-compute service the resource tracker"},{"line_number":12,"context_line":"already knows the compute node ids associated to the given compute"},{"line_number":13,"context_line":"host. This is not true and therefore _destroy_evacuated_instances fails"},{"line_number":14,"context_line":"with and exception and does not clean up the evacuated instance."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The solution for the original bug included a functional regression"},{"line_number":17,"context_line":"test. However the functional test env is not capable of fully simulate"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f4e5783_59a81c1e","line":14,"range":{"start_line":14,"start_character":5,"end_line":14,"end_character":8},"updated":"2017-10-11 13:23:00.000000000","message":"an","commit_id":"783b18dbb64807ef1a161fa11aea7a746077512e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"542f5363aab33cffea65e60c7a0d3f6589455edb","unresolved":false,"context_lines":[{"line_number":11,"context_line":"during the init of the nova-compute service the resource tracker"},{"line_number":12,"context_line":"already knows the compute node ids associated to the given compute"},{"line_number":13,"context_line":"host. This is not true and therefore _destroy_evacuated_instances fails"},{"line_number":14,"context_line":"with and exception and does not clean up the evacuated instance."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The solution for the original bug included a functional regression"},{"line_number":17,"context_line":"test. However the functional test env is not capable of fully simulate"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f4e5783_f0e6a016","line":14,"range":{"start_line":14,"start_character":5,"end_line":14,"end_character":8},"in_reply_to":"5f4e5783_59a81c1e","updated":"2017-10-12 08:52:13.000000000","message":"Done","commit_id":"783b18dbb64807ef1a161fa11aea7a746077512e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b4384fe89689d63dab31c1f2c83d42c924b37758","unresolved":false,"context_lines":[{"line_number":18,"context_line":"a nova-compute service restart. The service only stopped then started"},{"line_number":19,"context_line":"again. This allows some in memory state of the compute service to"},{"line_number":20,"context_line":"survive the simulated restart. This caused that the functional test"},{"line_number":21,"context_line":"was not able to catch that the above described assumtion is not"},{"line_number":22,"context_line":"correct."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Related-Bug: #1721652"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f4e5783_3963201d","line":21,"range":{"start_line":21,"start_character":47,"end_line":21,"end_character":56},"updated":"2017-10-11 13:23:00.000000000","message":"assumption","commit_id":"783b18dbb64807ef1a161fa11aea7a746077512e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"542f5363aab33cffea65e60c7a0d3f6589455edb","unresolved":false,"context_lines":[{"line_number":18,"context_line":"a nova-compute service restart. The service only stopped then started"},{"line_number":19,"context_line":"again. This allows some in memory state of the compute service to"},{"line_number":20,"context_line":"survive the simulated restart. This caused that the functional test"},{"line_number":21,"context_line":"was not able to catch that the above described assumtion is not"},{"line_number":22,"context_line":"correct."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Related-Bug: #1721652"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f4e5783_d0e164fe","line":21,"range":{"start_line":21,"start_character":47,"end_line":21,"end_character":56},"in_reply_to":"5f4e5783_3963201d","updated":"2017-10-12 08:52:13.000000000","message":"Done","commit_id":"783b18dbb64807ef1a161fa11aea7a746077512e"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b4384fe89689d63dab31c1f2c83d42c924b37758","unresolved":false,"context_lines":[{"line_number":1613,"context_line":"        self._delete_and_check_allocations("},{"line_number":1614,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"},{"line_number":1615,"context_line":""},{"line_number":1616,"context_line":"    def _restart_compute_service(self, compute):"},{"line_number":1617,"context_line":"        # NOTE(gibi): The service interface cannot be used to simulate a real"},{"line_number":1618,"context_line":"        # service restart as the manager object will not be recreated after a"},{"line_number":1619,"context_line":"        # service.stop() and service.start() therefore the manager state will"},{"line_number":1620,"context_line":"        # survive. For example the resource tracker will not be recreated after"},{"line_number":1621,"context_line":"        # a stop start. The service.kill() call cannot help as it deletes"},{"line_number":1622,"context_line":"        # the service from the DB which is unrealistic and causes that some"},{"line_number":1623,"context_line":"        # operation that refers to the killed host (e.g. evacuate) fails."},{"line_number":1624,"context_line":"        # So this helper method tries to simulate a better compute service"},{"line_number":1625,"context_line":"        # restart by cleaning up some of the internal state of the compute"},{"line_number":1626,"context_line":"        # manager."},{"line_number":1627,"context_line":"        compute.manager._resource_tracker \u003d None"},{"line_number":1628,"context_line":"        compute.start()"},{"line_number":1629,"context_line":""},{"line_number":1630,"context_line":"    def test_evacuate(self):"},{"line_number":1631,"context_line":"        source_hostname \u003d self.compute1.host"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_f9134865","line":1628,"range":{"start_line":1616,"start_character":4,"end_line":1628,"end_character":23},"updated":"2017-10-11 13:23:00.000000000","message":"I wonder if we could/should stub out nova.compute.manager.ComputeManager.cleanup_host, which is called from service.stop(), from within the ServiceFixture, and use that to null out the ComputeManager._resource_tracker? Then this can be done globally in the ServiceFixture rather than just in this one test. Just a thought.","commit_id":"783b18dbb64807ef1a161fa11aea7a746077512e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"542f5363aab33cffea65e60c7a0d3f6589455edb","unresolved":false,"context_lines":[{"line_number":1613,"context_line":"        self._delete_and_check_allocations("},{"line_number":1614,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"},{"line_number":1615,"context_line":""},{"line_number":1616,"context_line":"    def _restart_compute_service(self, compute):"},{"line_number":1617,"context_line":"        # NOTE(gibi): The service interface cannot be used to simulate a real"},{"line_number":1618,"context_line":"        # service restart as the manager object will not be recreated after a"},{"line_number":1619,"context_line":"        # service.stop() and service.start() therefore the manager state will"},{"line_number":1620,"context_line":"        # survive. For example the resource tracker will not be recreated after"},{"line_number":1621,"context_line":"        # a stop start. The service.kill() call cannot help as it deletes"},{"line_number":1622,"context_line":"        # the service from the DB which is unrealistic and causes that some"},{"line_number":1623,"context_line":"        # operation that refers to the killed host (e.g. evacuate) fails."},{"line_number":1624,"context_line":"        # So this helper method tries to simulate a better compute service"},{"line_number":1625,"context_line":"        # restart by cleaning up some of the internal state of the compute"},{"line_number":1626,"context_line":"        # manager."},{"line_number":1627,"context_line":"        compute.manager._resource_tracker \u003d None"},{"line_number":1628,"context_line":"        compute.start()"},{"line_number":1629,"context_line":""},{"line_number":1630,"context_line":"    def test_evacuate(self):"},{"line_number":1631,"context_line":"        source_hostname \u003d self.compute1.host"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_f0f8e0c4","line":1628,"range":{"start_line":1616,"start_character":4,"end_line":1628,"end_character":23},"in_reply_to":"5f4e5783_f9134865","updated":"2017-10-12 08:52:13.000000000","message":"Good point. I also have an intention for a follow up to do the restart even more realistic (like creating a new Manager instance and going through the proper steps of init) and then I\u0027d like to replace all the service stop/start sequences in the functional test with the proper restart call as I suspect we have some other hidden bugs around.","commit_id":"783b18dbb64807ef1a161fa11aea7a746077512e"}]}
