)]}'
{"kuryr_kubernetes/cni/daemon/service.py":[{"author":{"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},"change_message_id":"b8fda2ebf33ac135489ec8234bc9c0f25555b362","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        pod_name \u003d utils.get_pod_unique_name(pod)"},{"line_number":244,"context_line":"        try:"},{"line_number":245,"context_line":"            if pod_name in self.registry:"},{"line_number":246,"context_line":"                # NOTE(dulek): del on dict is atomic as long as we use standard"},{"line_number":247,"context_line":"                #              types as keys. This is the case, so we don\u0027t"},{"line_number":248,"context_line":"                #              need to lock here."},{"line_number":249,"context_line":"                with lockutils.lock(pod_name, external\u003dTrue):"},{"line_number":250,"context_line":"                    if self.registry[pod_name][\u0027vif_unplugged\u0027]:"},{"line_number":251,"context_line":"                        del self.registry[pod_name]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_4574a49c","line":248,"range":{"start_line":246,"start_character":15,"end_line":248,"end_character":49},"updated":"2019-11-14 05:10:58.000000000","message":"maybe remove this note","commit_id":"54e796e29be34df956894272eec0eaf18bfe2687"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1992f6a36623757a30f0a1cce894304b4dc1a124","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    if self.registry[pod_name][\u0027vif_unplugged\u0027]:"},{"line_number":251,"context_line":"                        del self.registry[pod_name]"},{"line_number":252,"context_line":"                    else:"},{"line_number":253,"context_line":"                        self.registry[pod_name][\u0027del_received\u0027] \u003d True"},{"line_number":254,"context_line":"        except KeyError:"},{"line_number":255,"context_line":"            # This means someone else removed it. It\u0027s odd but safe to ignore."},{"line_number":256,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_04450044","line":253,"range":{"start_line":253,"start_character":0,"end_line":253,"end_character":70},"updated":"2019-11-20 14:50:03.000000000","message":"This won\u0027t work, this is multiprocessing.dict(), it won\u0027t notice that object it holds changed and update it for all the processes.\n\nYou need to do it like it\u0027s done in lines 238-240:\n\n pod_dict \u003d self.registry[pod_name]\n pod_dict[\u0027del_received\u0027] \u003d True\n self.registry[pod_name] \u003d pod_dict","commit_id":"3b63eb49ee10bff94aa50c2101740f729fcd9e93"}],"kuryr_kubernetes/cni/plugins/k8s_cni_registry.py":[{"author":{"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},"change_message_id":"b8fda2ebf33ac135489ec8234bc9c0f25555b362","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        except KeyError:"},{"line_number":101,"context_line":"            pass"},{"line_number":102,"context_line":"        self._do_work(params, b_base.disconnect)"},{"line_number":103,"context_line":"        with lockutils.lock(pod_name, external\u003dTrue):"},{"line_number":104,"context_line":"            if self.registry[pod_name][\u0027del_received\u0027]:"},{"line_number":105,"context_line":"                del self.registry[pod_name]"},{"line_number":106,"context_line":"            else:"},{"line_number":107,"context_line":"                self.registry[pod_name][\u0027vif_unplugged\u0027] \u003d True"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def report_drivers_health(self, driver_healthy):"},{"line_number":110,"context_line":"        if not driver_healthy:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_257168a9","line":107,"range":{"start_line":103,"start_character":7,"end_line":107,"end_character":63},"updated":"2019-11-14 05:10:58.000000000","message":"I think we need to catch KeyError here, as someone else might have removed the pod from registry (so the self.registry[pod_name][\u0027del_received\u0027] dereference will fail)","commit_id":"54e796e29be34df956894272eec0eaf18bfe2687"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1992f6a36623757a30f0a1cce894304b4dc1a124","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                if self.registry[pod_name][\u0027del_received\u0027]:"},{"line_number":109,"context_line":"                    del self.registry[pod_name]"},{"line_number":110,"context_line":"                else:"},{"line_number":111,"context_line":"                    self.registry[pod_name][\u0027vif_unplugged\u0027] \u003d True"},{"line_number":112,"context_line":"        except KeyError:"},{"line_number":113,"context_line":"            pass"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_c474c89e","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":67},"updated":"2019-11-20 14:50:03.000000000","message":"Same comment as on service.py.","commit_id":"3b63eb49ee10bff94aa50c2101740f729fcd9e93"},{"author":{"_account_id":28082,"name":"Yash Gupta","email":"y.gupta@samsung.com","username":"y.gupta"},"change_message_id":"4e5ef54878ee33ccb5d98065d1f9ff4e0711f6c6","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                else:"},{"line_number":111,"context_line":"                    self.registry[pod_name][\u0027vif_unplugged\u0027] \u003d True"},{"line_number":112,"context_line":"        except KeyError:"},{"line_number":113,"context_line":"            pass"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def report_drivers_health(self, driver_healthy):"},{"line_number":116,"context_line":"        if not driver_healthy:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_a1dc37e1","line":113,"range":{"start_line":113,"start_character":12,"end_line":113,"end_character":16},"updated":"2019-11-19 01:04:44.000000000","message":"I think we could add a note why this is okay to pass","commit_id":"3b63eb49ee10bff94aa50c2101740f729fcd9e93"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"91e87ef835322845d33c10098f99cb5bd914fb8c","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                else:"},{"line_number":111,"context_line":"                    self.registry[pod_name][\u0027vif_unplugged\u0027] \u003d True"},{"line_number":112,"context_line":"        except KeyError:"},{"line_number":113,"context_line":"            pass"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def report_drivers_health(self, driver_healthy):"},{"line_number":116,"context_line":"        if not driver_healthy:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_ca8db92a","line":113,"range":{"start_line":113,"start_character":12,"end_line":113,"end_character":16},"in_reply_to":"3fa7e38b_a1dc37e1","updated":"2019-11-20 08:34:55.000000000","message":"+1","commit_id":"3b63eb49ee10bff94aa50c2101740f729fcd9e93"}]}
