)]}'
{"swift/obj/diskfile.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52fe3cdc501c253a049d7d1e2fba3286ac7270d5","unresolved":true,"context_lines":[{"line_number":2077,"context_line":"                    self._drop_cache(self._fp.fileno(), dropped_cache,"},{"line_number":2078,"context_line":"                                     self._bytes_read - dropped_cache)"},{"line_number":2079,"context_line":"                    break"},{"line_number":2080,"context_line":"        except IOError as e:"},{"line_number":2081,"context_line":"            self._quarantine(str(e))"},{"line_number":2082,"context_line":"        finally:"},{"line_number":2083,"context_line":"            if not self._suppress_file_closing:"}],"source_content_type":"text/x-python","patch_set":1,"id":"47522aeb_363bf4bd","line":2080,"range":{"start_line":2080,"start_character":15,"end_line":2080,"end_character":22},"updated":"2021-06-21 14:02:21.000000000","message":"this seems quite broad - were there specific IOErrors that motivated the change?\n\nI\u0027m worried about cases (admittedly contrived) like someone messing up permissions and getting an EPERM when reading that leads to a quarantine. OK, so IDK how the caller open an _fp in that case. But nevertheless, are we *sure* we want to quarantine on every possible IOError??","commit_id":"1789a9e4dacf9ff7b8c1311d0985910f529e0c9e"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"9a7716abcc781cada99d378e0af0facd10acf35d","unresolved":true,"context_lines":[{"line_number":2078,"context_line":"                                     self._bytes_read - dropped_cache)"},{"line_number":2079,"context_line":"                    break"},{"line_number":2080,"context_line":"        except IOError as e:"},{"line_number":2081,"context_line":"            self._quarantine(str(e))"},{"line_number":2082,"context_line":"        finally:"},{"line_number":2083,"context_line":"            if not self._suppress_file_closing:"},{"line_number":2084,"context_line":"                self.close()"}],"source_content_type":"text/x-python","patch_set":1,"id":"d742c2ab_978b42e9","line":2081,"updated":"2021-06-18 06:54:25.000000000","message":"I think anything that deals with moving data on disk (like quarantine) especially in diskfile should have a test.","commit_id":"1789a9e4dacf9ff7b8c1311d0985910f529e0c9e"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52fe3cdc501c253a049d7d1e2fba3286ac7270d5","unresolved":true,"context_lines":[{"line_number":2078,"context_line":"                                     self._bytes_read - dropped_cache)"},{"line_number":2079,"context_line":"                    break"},{"line_number":2080,"context_line":"        except IOError as e:"},{"line_number":2081,"context_line":"            self._quarantine(str(e))"},{"line_number":2082,"context_line":"        finally:"},{"line_number":2083,"context_line":"            if not self._suppress_file_closing:"},{"line_number":2084,"context_line":"                self.close()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5988f784_9e6d03f7","line":2081,"in_reply_to":"d742c2ab_978b42e9","updated":"2021-06-21 14:02:21.000000000","message":"+1","commit_id":"1789a9e4dacf9ff7b8c1311d0985910f529e0c9e"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3879cbd5486e47732e8f7e21e086cac6bdcf83fb","unresolved":true,"context_lines":[{"line_number":2067,"context_line":"                    chunk \u003d self._fp.read(self._disk_chunk_size)"},{"line_number":2068,"context_line":"                except IOError as e:"},{"line_number":2069,"context_line":"                    if e.errno \u003d\u003d errno.EIO:"},{"line_number":2070,"context_line":"                        # Note that if there\u0027s no quarantine hook set up,"},{"line_number":2071,"context_line":"                        # this will no-op"},{"line_number":2072,"context_line":"                        self._quarantine(str(e))"},{"line_number":2073,"context_line":"                    # ... so it\u0027s significant that this is not in an else"},{"line_number":2074,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":2,"id":"d927879f_c4bb1c8e","line":2071,"range":{"start_line":2070,"start_character":26,"end_line":2071,"end_character":41},"updated":"2021-07-02 11:34:31.000000000","message":"it\u0027s not exactly a no-op: the file is quarantined.\n\ndo you mean to say \"_quarantine() won\u0027t raise an exception unless there is a quarantine hook set up that does so\"","commit_id":"1d64c6ed6b522f1424af99dd16c1374afd24d3c7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3879cbd5486e47732e8f7e21e086cac6bdcf83fb","unresolved":true,"context_lines":[{"line_number":2070,"context_line":"                        # Note that if there\u0027s no quarantine hook set up,"},{"line_number":2071,"context_line":"                        # this will no-op"},{"line_number":2072,"context_line":"                        self._quarantine(str(e))"},{"line_number":2073,"context_line":"                    # ... so it\u0027s significant that this is not in an else"},{"line_number":2074,"context_line":"                    raise"},{"line_number":2075,"context_line":"                if chunk:"},{"line_number":2076,"context_line":"                    self._update_checks(chunk)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dd8fc3b8_84d19d61","line":2073,"updated":"2021-07-02 11:34:31.000000000","message":"+1 that\u0027s helpful","commit_id":"1d64c6ed6b522f1424af99dd16c1374afd24d3c7"}]}
