)]}'
{"swift/container/sharder.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"923486f5ec6efca79f4365310511dc2b7ae29a49","unresolved":true,"context_lines":[{"line_number":853,"context_line":"        else:"},{"line_number":854,"context_line":"            self.stats[\u0027sharding\u0027][category][key] \u003d max(current, value)"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"    def _increment_stat(self, category, key, statsd\u003dFalse):"},{"line_number":857,"context_line":"        self.stats[\u0027sharding\u0027][category][key] +\u003d 1"},{"line_number":858,"context_line":"        if statsd:"},{"line_number":859,"context_line":"            statsd_key \u003d \u0027%s_%s\u0027 % (category, key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"80324e7d_0715fda8","line":856,"updated":"2022-07-25 20:48:41.000000000","message":"I feel like this should use _update_stat() now, similar to how StatsdClient.increment() punts to StatsdClient.update_stats()","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3011e27816b98cec800c9440db70184b49f0cfb6","unresolved":false,"context_lines":[{"line_number":853,"context_line":"        else:"},{"line_number":854,"context_line":"            self.stats[\u0027sharding\u0027][category][key] \u003d max(current, value)"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"    def _increment_stat(self, category, key, statsd\u003dFalse):"},{"line_number":857,"context_line":"        self.stats[\u0027sharding\u0027][category][key] +\u003d 1"},{"line_number":858,"context_line":"        if statsd:"},{"line_number":859,"context_line":"            statsd_key \u003d \u0027%s_%s\u0027 % (category, key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"0e9cd6f1_f131b0f8","line":856,"in_reply_to":"80324e7d_0715fda8","updated":"2022-07-27 10:01:15.000000000","message":"I agree. I dodged that because the test churn is significant because of the way the debug_logger gathers increment calls vs update calls, but I think I can see a way to fix that without too much pain.","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"923486f5ec6efca79f4365310511dc2b7ae29a49","unresolved":true,"context_lines":[{"line_number":1496,"context_line":"                src_broker, dest_shard_range, **dest_args)"},{"line_number":1497,"context_line":""},{"line_number":1498,"context_line":"        self._update_stat(\u0027misplaced\u0027, \u0027placed\u0027, step\u003dplaced, statsd\u003dTrue)"},{"line_number":1499,"context_line":"        self._update_stat(\u0027misplaced\u0027, \u0027unplaced\u0027, step\u003dunplaced, statsd\u003dTrue)"},{"line_number":1500,"context_line":"        return success, placed, unplaced"},{"line_number":1501,"context_line":""},{"line_number":1502,"context_line":"    def _make_shard_range_fetcher(self, broker, src_shard_range):"}],"source_content_type":"text/x-python","patch_set":1,"id":"70e65ef6_6ba76fe9","line":1499,"range":{"start_line":1499,"start_character":66,"end_line":1499,"end_character":77},"updated":"2022-07-25 20:48:41.000000000","message":"This part\u0027s untested; settings statsd\u003dFalse, tests still pass.","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3011e27816b98cec800c9440db70184b49f0cfb6","unresolved":false,"context_lines":[{"line_number":1496,"context_line":"                src_broker, dest_shard_range, **dest_args)"},{"line_number":1497,"context_line":""},{"line_number":1498,"context_line":"        self._update_stat(\u0027misplaced\u0027, \u0027placed\u0027, step\u003dplaced, statsd\u003dTrue)"},{"line_number":1499,"context_line":"        self._update_stat(\u0027misplaced\u0027, \u0027unplaced\u0027, step\u003dunplaced, statsd\u003dTrue)"},{"line_number":1500,"context_line":"        return success, placed, unplaced"},{"line_number":1501,"context_line":""},{"line_number":1502,"context_line":"    def _make_shard_range_fetcher(self, broker, src_shard_range):"}],"source_content_type":"text/x-python","patch_set":1,"id":"190d3b77_bbb4ee07","line":1499,"range":{"start_line":1499,"start_character":66,"end_line":1499,"end_character":77},"in_reply_to":"70e65ef6_6ba76fe9","updated":"2022-07-27 10:01:15.000000000","message":"Done","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"923486f5ec6efca79f4365310511dc2b7ae29a49","unresolved":true,"context_lines":[{"line_number":1598,"context_line":"            self._increment_stat(\u0027misplaced\u0027, \u0027found\u0027, statsd\u003dTrue)"},{"line_number":1599,"context_line":"            self.logger.debug(\u0027Placed %s misplaced objects (%s unplaced)\u0027,"},{"line_number":1600,"context_line":"                              num_placed, num_unplaced)"},{"line_number":1601,"context_line":"        self._increment_stat(\u0027misplaced\u0027, \u0027success\u0027 if success else \u0027failure\u0027)"},{"line_number":1602,"context_line":"        self.logger.debug(\u0027Finished handling misplaced objects\u0027)"},{"line_number":1603,"context_line":"        return success"},{"line_number":1604,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f9f25f6_2f6a621b","line":1601,"range":{"start_line":1601,"start_character":42,"end_line":1601,"end_character":77},"updated":"2022-07-25 20:48:41.000000000","message":"I wonder if we should emit these two via statsd, too. All the other success/failure metrics get emitted.","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3011e27816b98cec800c9440db70184b49f0cfb6","unresolved":false,"context_lines":[{"line_number":1598,"context_line":"            self._increment_stat(\u0027misplaced\u0027, \u0027found\u0027, statsd\u003dTrue)"},{"line_number":1599,"context_line":"            self.logger.debug(\u0027Placed %s misplaced objects (%s unplaced)\u0027,"},{"line_number":1600,"context_line":"                              num_placed, num_unplaced)"},{"line_number":1601,"context_line":"        self._increment_stat(\u0027misplaced\u0027, \u0027success\u0027 if success else \u0027failure\u0027)"},{"line_number":1602,"context_line":"        self.logger.debug(\u0027Finished handling misplaced objects\u0027)"},{"line_number":1603,"context_line":"        return success"},{"line_number":1604,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"8c5a11b1_70a6be29","line":1601,"range":{"start_line":1601,"start_character":42,"end_line":1601,"end_character":77},"in_reply_to":"1f9f25f6_2f6a621b","updated":"2022-07-27 10:01:15.000000000","message":"Done","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"923486f5ec6efca79f4365310511dc2b7ae29a49","unresolved":true,"context_lines":[{"line_number":1637,"context_line":"            else:"},{"line_number":1638,"context_line":"                # we didn\u0027t find anything"},{"line_number":1639,"context_line":"                self.logger.warning(\"No shard ranges found\")"},{"line_number":1640,"context_line":"                self._increment_stat(\u0027scanned\u0027, \u0027failure\u0027, statsd\u003dTrue)"},{"line_number":1641,"context_line":"            return 0"},{"line_number":1642,"context_line":""},{"line_number":1643,"context_line":"        shard_ranges \u003d make_shard_ranges("}],"source_content_type":"text/x-python","patch_set":1,"id":"7181d071_475c3b39","line":1640,"updated":"2022-07-25 20:48:41.000000000","message":"Off-topic: Interesting that this is the only place we can emit scanned_failure -- makes me wonder if we should have some exception handling around make_shard_ranges()/merge_shard_ranges() below...","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3011e27816b98cec800c9440db70184b49f0cfb6","unresolved":false,"context_lines":[{"line_number":1637,"context_line":"            else:"},{"line_number":1638,"context_line":"                # we didn\u0027t find anything"},{"line_number":1639,"context_line":"                self.logger.warning(\"No shard ranges found\")"},{"line_number":1640,"context_line":"                self._increment_stat(\u0027scanned\u0027, \u0027failure\u0027, statsd\u003dTrue)"},{"line_number":1641,"context_line":"            return 0"},{"line_number":1642,"context_line":""},{"line_number":1643,"context_line":"        shard_ranges \u003d make_shard_ranges("}],"source_content_type":"text/x-python","patch_set":1,"id":"0599e171_61ad1836","line":1640,"in_reply_to":"7181d071_475c3b39","updated":"2022-07-27 10:01:15.000000000","message":"Ack","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"}],"test/unit/container/test_sharder.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"923486f5ec6efca79f4365310511dc2b7ae29a49","unresolved":true,"context_lines":[{"line_number":459,"context_line":"            sharder._update_stat(\u0027scanned\u0027, \u0027found\u0027, step\u003d4)"},{"line_number":460,"context_line":"        self._assert_stats({\u0027found\u0027: 4}, sharder, \u0027scanned\u0027)"},{"line_number":461,"context_line":"        with self._mock_sharder() as sharder:"},{"line_number":462,"context_line":"            sharder._update_stat(\u0027scanned\u0027, \u0027found\u0027, step\u003d4,)"},{"line_number":463,"context_line":"            sharder._update_stat(\u0027misplaced\u0027, \u0027placed\u0027, step\u003d456, statsd\u003dTrue)"},{"line_number":464,"context_line":"        self._assert_stats({\u0027found\u0027: 4}, sharder, \u0027scanned\u0027)"},{"line_number":465,"context_line":"        self.assertEqual([(\u0027misplaced_placed\u0027, 456)],"}],"source_content_type":"text/x-python","patch_set":1,"id":"edb4a6e1_7a70dfdb","line":462,"range":{"start_line":462,"start_character":59,"end_line":462,"end_character":60},"updated":"2022-07-25 20:48:41.000000000","message":"nit: trailing comma here is a little funny.","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3011e27816b98cec800c9440db70184b49f0cfb6","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            sharder._update_stat(\u0027scanned\u0027, \u0027found\u0027, step\u003d4)"},{"line_number":460,"context_line":"        self._assert_stats({\u0027found\u0027: 4}, sharder, \u0027scanned\u0027)"},{"line_number":461,"context_line":"        with self._mock_sharder() as sharder:"},{"line_number":462,"context_line":"            sharder._update_stat(\u0027scanned\u0027, \u0027found\u0027, step\u003d4,)"},{"line_number":463,"context_line":"            sharder._update_stat(\u0027misplaced\u0027, \u0027placed\u0027, step\u003d456, statsd\u003dTrue)"},{"line_number":464,"context_line":"        self._assert_stats({\u0027found\u0027: 4}, sharder, \u0027scanned\u0027)"},{"line_number":465,"context_line":"        self.assertEqual([(\u0027misplaced_placed\u0027, 456)],"}],"source_content_type":"text/x-python","patch_set":1,"id":"56f79714_dcf011c7","line":462,"range":{"start_line":462,"start_character":59,"end_line":462,"end_character":60},"in_reply_to":"edb4a6e1_7a70dfdb","updated":"2022-07-27 10:01:15.000000000","message":"Done","commit_id":"a4a8103c8c8ad33ed8131f000149d1f09d31c4c6"}]}
