)]}'
{"swift/cli/relinker.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"7d15f6b1b00e85ff74a0ef25c1caa1f2f0636d4b","unresolved":true,"context_lines":[{"line_number":335,"context_line":"                self.stats[\u0027removed\u0027] +\u003d 1"},{"line_number":336,"context_line":"                self.logger.debug(\"Removed %s\", old_file)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"            if rehash:"},{"line_number":339,"context_line":"                try:"},{"line_number":340,"context_line":"                    diskfile.invalidate_hash(os.path.dirname(hash_path))"},{"line_number":341,"context_line":"                except Exception as exc:"}],"source_content_type":"text/x-python","patch_set":4,"id":"eebf28c3_155091b2","line":338,"updated":"2021-03-15 23:19:38.000000000","message":"Did you mean to move this into the loop?","commit_id":"0d57a99b569739fceab6b8aea7a9ffeeda2096b8"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cc70beeee592f2ebea44e33c31cb70ce186d9690","unresolved":true,"context_lines":[{"line_number":335,"context_line":"                self.stats[\u0027removed\u0027] +\u003d 1"},{"line_number":336,"context_line":"                self.logger.debug(\"Removed %s\", old_file)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"            if rehash:"},{"line_number":339,"context_line":"                try:"},{"line_number":340,"context_line":"                    diskfile.invalidate_hash(os.path.dirname(hash_path))"},{"line_number":341,"context_line":"                except Exception as exc:"}],"source_content_type":"text/x-python","patch_set":4,"id":"98a39a86_2e098834","line":338,"in_reply_to":"eebf28c3_155091b2","updated":"2021-03-18 14:15:14.000000000","message":"no, that\u0027s a mistake","commit_id":"0d57a99b569739fceab6b8aea7a9ffeeda2096b8"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0382b2cb4a8e44a9c494517119d0ce2fad4f0f53","unresolved":true,"context_lines":[{"line_number":445,"context_line":"            self.logger.warning("},{"line_number":446,"context_line":"                \u0027There were %d errors listing partition directories\u0027,"},{"line_number":447,"context_line":"                listdir_errors)"},{"line_number":448,"context_line":"        if self.stats:"},{"line_number":449,"context_line":"            self.logger.warning("},{"line_number":450,"context_line":"                \u0027There were unexpected errors while enumerating disk \u0027"},{"line_number":451,"context_line":"                \u0027files: %r\u0027, self.stats)"}],"source_content_type":"text/x-python","patch_set":6,"id":"48c7a8d0_5942fa41","line":448,"updated":"2021-03-18 19:46:59.000000000","message":"I\u0027m starting to think we really want two different dicts -- one for our internal stats, and another for the audit_location_generator errors.","commit_id":"d07a3e1fc625fd442780daa289804a3512176626"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3cc4bc37c36c6a480874617fb55c4e7264ecc500","unresolved":true,"context_lines":[{"line_number":311,"context_line":"            except OSError as exc:"},{"line_number":312,"context_line":"                self.logger.warning("},{"line_number":313,"context_line":"                    \"Error relinking%s: failed to relink %s to \""},{"line_number":314,"context_line":"                    \"%s: %s\", \u0027 (cleanup)\u0027 if self.do_cleanup else \u0027\u0027,"},{"line_number":315,"context_line":"                    old_file, new_file, exc)"},{"line_number":316,"context_line":"                self.stats[\u0027errors\u0027] +\u003d 1"},{"line_number":317,"context_line":"                missing_links +\u003d 1"}],"source_content_type":"text/x-python","patch_set":8,"id":"6bcd3cb4_3192a9ce","line":314,"updated":"2021-03-19 19:44:31.000000000","message":"+1","commit_id":"a1350a2c21166ea980690258ce921ef1d3876594"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3cc4bc37c36c6a480874617fb55c4e7264ecc500","unresolved":true,"context_lines":[{"line_number":314,"context_line":"                    \"%s: %s\", \u0027 (cleanup)\u0027 if self.do_cleanup else \u0027\u0027,"},{"line_number":315,"context_line":"                    old_file, new_file, exc)"},{"line_number":316,"context_line":"                self.stats[\u0027errors\u0027] +\u003d 1"},{"line_number":317,"context_line":"                missing_links +\u003d 1"},{"line_number":318,"context_line":"        if created_links:"},{"line_number":319,"context_line":"            diskfile.invalidate_hash(os.path.dirname(new_hash_path))"},{"line_number":320,"context_line":"        if missing_links or not self.do_cleanup:"}],"source_content_type":"text/x-python","patch_set":8,"id":"889aff5e_7c8b50dd","line":317,"updated":"2021-03-19 19:44:31.000000000","message":"Off-topic: I feel like missing_links should prevent us from marking a partition as processed in the state file...","commit_id":"a1350a2c21166ea980690258ce921ef1d3876594"}],"test/unit/cli/test_relinker.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3cc4bc37c36c6a480874617fb55c4e7264ecc500","unresolved":true,"context_lines":[{"line_number":1781,"context_line":"        log_lines \u003d self.logger.get_lines_for_level(\u0027warning\u0027)"},{"line_number":1782,"context_line":"        # The error is logged six times:"},{"line_number":1783,"context_line":"        # during _common_test_cleanup() relink: once for cleanup_ondisk_files"},{"line_number":1784,"context_line":"        # in old and once for get_ondisk_files of union of files;"},{"line_number":1785,"context_line":"        # during cleanup: once for cleanup_ondisk_files in old and new"},{"line_number":1786,"context_line":"        # location, once for get_ondisk_files of union of files;"},{"line_number":1787,"context_line":"        # during either relink or cleanup: once for the rehash of the new"}],"source_content_type":"text/x-python","patch_set":8,"id":"62fdf066_51800979","line":1784,"updated":"2021-03-19 19:44:31.000000000","message":"Should we assert this immediately after calling _common_test_cleanup, then clear the logger? Oh, maybe the rehash complicates that...","commit_id":"a1350a2c21166ea980690258ce921ef1d3876594"}]}
