)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"30fca8bc1efa5454cf256c137d3713b9c0dbc5cd","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Those races are intermittent and can be observed when stress testing revert"},{"line_number":10,"context_line":"migration on instances with SR-IOV."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"In ResourceTracker, make sure to delete migration records for isntances that"},{"line_number":13,"context_line":"we are migrating."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In PciDevTracker, free_device() should free PCI devices based on device ID"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dada55a8_1abda468","line":12,"updated":"2016-07-19 07:52:06.000000000","message":"nit: s/isntances/instances","commit_id":"f9fff2069c52da8f75a8c6eab17b8b05a04efdf9"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"f6390d02c6050237f0911b715beb32aa05f5e92c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ludovic Beliveau \u003cludovic.beliveau@windriver.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-03 12:42:33 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes for race conditions in revert migration with SR-IOV"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Those races are intermittent and can be observed when stress testing revert"},{"line_number":10,"context_line":"migration on instances with SR-IOV."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1ac06dbe_05bc2e6b","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":57},"updated":"2016-08-25 10:24:10.000000000","message":"I\u0027d prefer to have a bug for that","commit_id":"bcafe7319489851591144e93aca64e9d98debddd"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"f6390d02c6050237f0911b715beb32aa05f5e92c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Those races are intermittent and can be observed when stress testing revert"},{"line_number":10,"context_line":"migration on instances with SR-IOV."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"In ResourceTracker, make sure to delete migration records for isntances that"},{"line_number":13,"context_line":"we are migrating."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In PciDevTracker, free_device() should free PCI devices based on device ID"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1ac06dbe_85265e14","line":12,"range":{"start_line":12,"start_character":62,"end_line":12,"end_character":71},"updated":"2016-08-25 10:24:10.000000000","message":"typo: instances","commit_id":"bcafe7319489851591144e93aca64e9d98debddd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bc1e81ad9ceee4e664576a8b5e6e3d8ae90e5479","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes for race conditions in revert migration with SR-IOV"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Those races are intermittent and can be observed when stress testing revert"},{"line_number":10,"context_line":"migration on instances with SR-IOV."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"In ResourceTracker, make sure to delete migration records for isntances that"},{"line_number":13,"context_line":"we are migrating."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In PciDevTracker, free_device() should free PCI devices based on device ID"},{"line_number":16,"context_line":"(and ignore status).  Also, clean_usage() shouldn\u0027t free PCI devices that"},{"line_number":17,"context_line":"migrating or revert migrating."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I08e5a4645690d77e8f2d786bcf63bfe5a8f4fa98"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1ac06dbe_52ee2aed","line":17,"range":{"start_line":9,"start_character":0,"end_line":17,"end_character":30},"updated":"2016-08-19 11:33:57.000000000","message":"super nit: wrap at 71 (72) characters","commit_id":"bcafe7319489851591144e93aca64e9d98debddd"}],"nova/compute/resource_tracker.py":[{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"f6390d02c6050237f0911b715beb32aa05f5e92c","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        instance.migration_context \u003d mig_context"},{"line_number":264,"context_line":"        instance.save()"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        # NOTE(lbeliveau): This code is racy.  It\u0027s possible that PCI devices"},{"line_number":267,"context_line":"        # doesn\u0027t get claimed and allocated during prep_resize or"},{"line_number":268,"context_line":"        # finish_resize because a particular instance hasn\u0027t been cleaned yet"},{"line_number":269,"context_line":"        # in the self.tracked_instances."},{"line_number":270,"context_line":"        if instance[\u0027uuid\u0027] in self.tracked_instances:"},{"line_number":271,"context_line":"            self.tracked_instances.pop(instance[\u0027uuid\u0027])"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1ac06dbe_ed62943c","line":269,"range":{"start_line":266,"start_character":8,"end_line":269,"end_character":40},"updated":"2016-08-25 10:24:10.000000000","message":"it would be great if you elaborate this note more, so it will be very easy to understand code below.","commit_id":"bcafe7319489851591144e93aca64e9d98debddd"}],"nova/pci/manager.py":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"30fca8bc1efa5454cf256c137d3713b9c0dbc5cd","unresolved":false,"context_lines":[{"line_number":313,"context_line":"    # periodic task kicks in.  The resource tracker doesn\u0027t see it as an"},{"line_number":314,"context_line":"    # active instance in this case.  This cause the PCI devices to be freed"},{"line_number":315,"context_line":"    # even if the migration is not confirmed or finished reverted yet."},{"line_number":316,"context_line":"    def _is_instance_migrating(self, context, uuid):"},{"line_number":317,"context_line":"        try:"},{"line_number":318,"context_line":"            instance \u003d objects.Instance.get_by_uuid(context, uuid)"},{"line_number":319,"context_line":"            if (instance.task_state in (task_states.RESIZE_PREP,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_dafdcc3b","line":316,"updated":"2016-07-19 07:52:06.000000000","message":"Does https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L50 fit for your case?\nIMO it will be look better as Instance method.","commit_id":"f9fff2069c52da8f75a8c6eab17b8b05a04efdf9"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"db2d7ec13260efe4cbe6c52234563a5c7bbc1811","unresolved":false,"context_lines":[{"line_number":315,"context_line":"    # even if the migration is not confirmed or finished reverted yet."},{"line_number":316,"context_line":"    def _is_instance_migrating(self, context, uuid):"},{"line_number":317,"context_line":"        try:"},{"line_number":318,"context_line":"            instance \u003d objects.Instance.get_by_uuid(context, uuid)"},{"line_number":319,"context_line":"            if (instance.task_state in (task_states.RESIZE_PREP,"},{"line_number":320,"context_line":"                                        task_states.RESIZE_MIGRATING,"},{"line_number":321,"context_line":"                                        task_states.RESIZE_REVERTING)):"},{"line_number":322,"context_line":"                return True"},{"line_number":323,"context_line":"        except exception.InstanceNotFound:"},{"line_number":324,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_7958f78a","line":321,"range":{"start_line":318,"start_character":12,"end_line":321,"end_character":71},"updated":"2016-07-20 05:16:04.000000000","message":"you already have the instance in Line 328, so you don\u0027t need the query the DB again just pass the instance and use \n_instance_in_resize_state method","commit_id":"f9fff2069c52da8f75a8c6eab17b8b05a04efdf9"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"f6390d02c6050237f0911b715beb32aa05f5e92c","unresolved":false,"context_lines":[{"line_number":313,"context_line":"    # periodic task kicks in.  The resource tracker doesn\u0027t see it as an"},{"line_number":314,"context_line":"    # active instance in this case.  This cause the PCI devices to be freed"},{"line_number":315,"context_line":"    # even if the migration is not confirmed or finished reverted yet."},{"line_number":316,"context_line":"    def _is_instance_migrating(self, context, uuid):"},{"line_number":317,"context_line":"        try:"},{"line_number":318,"context_line":"            instance \u003d objects.Instance.get_by_uuid(context, uuid)"},{"line_number":319,"context_line":"            if (instance.task_state in (task_states.RESIZE_PREP,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1ac06dbe_ed061484","line":316,"range":{"start_line":316,"start_character":8,"end_line":316,"end_character":30},"updated":"2016-08-25 10:24:10.000000000","message":"where is this method used?","commit_id":"bcafe7319489851591144e93aca64e9d98debddd"}]}
