)]}'
{"swift/cli/relinker.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"bcb288cfc9331ba8266ac5dfd22f01c6808d0322","unresolved":true,"context_lines":[{"line_number":383,"context_line":"                continue"},{"line_number":384,"context_line":"            except DiskFileNotExist:"},{"line_number":385,"context_line":"                logger.debug(\u0027Found reapable on-disk file: %s\u0027, fname)"},{"line_number":386,"context_line":"                continue"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            expected_fname \u003d replace_partition_in_path(fname, part_power)"},{"line_number":389,"context_line":"            if fname \u003d\u003d expected_fname:"}],"source_content_type":"text/x-python","patch_set":3,"id":"6f5181e6_fb84e3c4","line":386,"updated":"2021-03-05 11:04:35.000000000","message":"what about non-durable ec frags? stray meta files? DiskFileNotExist isn\u0027t necessarily a good indicator that there are no files in old partition that should have been relinked.\n\ne.g. https://github.com/openstack/swift/blob/24eb16fc2ab64a3e9dc4e11876c9b381301d2323/test/unit/obj/test_diskfile.py#L1787-L1794","commit_id":"b8aefd750e18414eba8a4e956f56823d34851f73"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"bcb288cfc9331ba8266ac5dfd22f01c6808d0322","unresolved":true,"context_lines":[{"line_number":405,"context_line":"                errors +\u003d 1"},{"line_number":406,"context_line":"                continue"},{"line_number":407,"context_line":"            except DiskFileDeleted:"},{"line_number":408,"context_line":"                pass"},{"line_number":409,"context_line":"            except DiskFileNotExist as exc:"},{"line_number":410,"context_line":"                err \u003d False"},{"line_number":411,"context_line":"                if policy.policy_type \u003d\u003d \u0027erasure_coding\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5e16b9e6_3c611381","line":408,"range":{"start_line":408,"start_character":16,"end_line":408,"end_character":20},"updated":"2021-03-05 11:04:35.000000000","message":"but what if the tombstone in new partition is older than whatever is in old partition?","commit_id":"b8aefd750e18414eba8a4e956f56823d34851f73"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"bcb288cfc9331ba8266ac5dfd22f01c6808d0322","unresolved":true,"context_lines":[{"line_number":415,"context_line":"                    if not os.path.isfile(expected_fname):"},{"line_number":416,"context_line":"                        err \u003d True"},{"line_number":417,"context_line":"                else:"},{"line_number":418,"context_line":"                    err \u003d True"},{"line_number":419,"context_line":"                if err:"},{"line_number":420,"context_line":"                    logger.warning("},{"line_number":421,"context_line":"                        \u0027Error cleaning up %s: %r\u0027, fname, exc)"}],"source_content_type":"text/x-python","patch_set":3,"id":"284db579_0e12d148","line":418,"range":{"start_line":418,"start_character":20,"end_line":418,"end_character":30},"updated":"2021-03-05 11:04:35.000000000","message":"could be a stray meta file","commit_id":"b8aefd750e18414eba8a4e956f56823d34851f73"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"bcb288cfc9331ba8266ac5dfd22f01c6808d0322","unresolved":true,"context_lines":[{"line_number":422,"context_line":"                    errors +\u003d 1"},{"line_number":423,"context_line":"                    continue"},{"line_number":424,"context_line":"            try:"},{"line_number":425,"context_line":"                os.remove(fname)"},{"line_number":426,"context_line":"                cleaned_up +\u003d 1"},{"line_number":427,"context_line":"                logger.debug(\"Removed %s\", fname)"},{"line_number":428,"context_line":"                suffix_dir \u003d os.path.dirname(os.path.dirname(fname))"}],"source_content_type":"text/x-python","patch_set":3,"id":"bd671313_5d4c5ab6","line":425,"range":{"start_line":425,"start_character":16,"end_line":425,"end_character":32},"updated":"2021-03-05 11:04:35.000000000","message":"so, we know there is a valid diskfile in the new partition (maybe data, maybe a tombstone), but we don\u0027t know that it is at least as new as the one in the old partition :(","commit_id":"b8aefd750e18414eba8a4e956f56823d34851f73"}]}
