)]}'
{"swift/container/sharder.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"fab9ae031c2069abc9bc1e3aa2210f3f2f40244c","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            self.logger.debug(\u0027Starting to cleave %s/%s\u0027,"},{"line_number":995,"context_line":"                              broker.account, broker.container)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        # TODO: use get_shard_ranges with marker?"},{"line_number":998,"context_line":"        ranges_todo \u003d ["},{"line_number":999,"context_line":"            srange for srange in shard_ranges"},{"line_number":1000,"context_line":"            if srange.upper \u003e last_upper or srange.lower \u003e\u003d last_upper]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_a3402337","side":"PARENT","line":997,"updated":"2018-02-06 22:51:48.000000000","message":"TODONE!","commit_id":"cf1bfe37c63279f30bcb53572e95188229990d99"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"8fe349680a843d64f1c262cf5c11d96b8692975f","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            self.logger.debug(\u0027Starting to cleave %s/%s\u0027,"},{"line_number":995,"context_line":"                              broker.account, broker.container)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        # TODO: use get_shard_ranges with marker?"},{"line_number":998,"context_line":"        ranges_todo \u003d ["},{"line_number":999,"context_line":"            srange for srange in shard_ranges"},{"line_number":1000,"context_line":"            if srange.upper \u003e last_upper or srange.lower \u003e\u003d last_upper]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_a8631b1a","side":"PARENT","line":997,"updated":"2018-02-07 04:48:04.000000000","message":"lol","commit_id":"cf1bfe37c63279f30bcb53572e95188229990d99"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"d447becfb3545d4a81daa090781cc64d3d742b0f","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            self.logger.debug(\u0027Starting to cleave %s/%s\u0027,"},{"line_number":995,"context_line":"                              broker.account, broker.container)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        # TODO: use get_shard_ranges with marker?"},{"line_number":998,"context_line":"        ranges_todo \u003d ["},{"line_number":999,"context_line":"            srange for srange in shard_ranges"},{"line_number":1000,"context_line":"            if srange.upper \u003e last_upper or srange.lower \u003e\u003d last_upper]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_af2b1a2e","side":"PARENT","line":997,"in_reply_to":"3fa0c359_a8631b1a","updated":"2018-02-07 09:56:14.000000000","message":"TADA!","commit_id":"cf1bfe37c63279f30bcb53572e95188229990d99"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"fab9ae031c2069abc9bc1e3aa2210f3f2f40244c","unresolved":false,"context_lines":[{"line_number":1086,"context_line":"                shard_range.state \u003d ShardRange.ACTIVE"},{"line_number":1087,"context_line":"                shard_range.state_timestamp \u003d Timestamp.now()"},{"line_number":1088,"context_line":""},{"line_number":1089,"context_line":"            if not hasattr(shard_range, \u0027dont_save\u0027):"},{"line_number":1090,"context_line":"                ranges_done.append(shard_range)"},{"line_number":1091,"context_line":""},{"line_number":1092,"context_line":"            self.logger.info(\u0027Replicating new shard container %s/%s with %s\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_0d3a6835","side":"PARENT","line":1089,"updated":"2018-02-06 22:51:48.000000000","message":"+100","commit_id":"cf1bfe37c63279f30bcb53572e95188229990d99"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"fab9ae031c2069abc9bc1e3aa2210f3f2f40244c","unresolved":false,"context_lines":[{"line_number":968,"context_line":"        # False otherwise"},{"line_number":969,"context_line":"        state \u003d broker.get_db_state()"},{"line_number":970,"context_line":"        if state \u003d\u003d DB_STATE_SHARDED:"},{"line_number":971,"context_line":"            self.logger.debug(\u0027Passing over already sharded container %s/%s\u0027,"},{"line_number":972,"context_line":"                              broker.account, broker.container)"},{"line_number":973,"context_line":"            return True"},{"line_number":974,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_e8560a07","line":971,"updated":"2018-02-06 22:51:48.000000000","message":"Do we ever call _cleave from an unknown state? Or is this protection against concurrent actors? I almost wonder if this should get *louder*, not quieter...","commit_id":"d3da39d5857edc452e714d52098cf5e1eba37131"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"d447becfb3545d4a81daa090781cc64d3d742b0f","unresolved":false,"context_lines":[{"line_number":968,"context_line":"        # False otherwise"},{"line_number":969,"context_line":"        state \u003d broker.get_db_state()"},{"line_number":970,"context_line":"        if state \u003d\u003d DB_STATE_SHARDED:"},{"line_number":971,"context_line":"            self.logger.debug(\u0027Passing over already sharded container %s/%s\u0027,"},{"line_number":972,"context_line":"                              broker.account, broker.container)"},{"line_number":973,"context_line":"            return True"},{"line_number":974,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_0ff1eecd","line":971,"in_reply_to":"3fa0c359_e8560a07","updated":"2018-02-07 09:56:14.000000000","message":"nope we only call it while in sharding state\n\nre concurrent actors - maybe we could use an _assert_state() method that shouts if the state is ever wonky","commit_id":"d3da39d5857edc452e714d52098cf5e1eba37131"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"fab9ae031c2069abc9bc1e3aa2210f3f2f40244c","unresolved":false,"context_lines":[{"line_number":973,"context_line":"            return True"},{"line_number":974,"context_line":""},{"line_number":975,"context_line":"        last_upper \u003d get_sharding_info(broker, \u0027Last\u0027, node) or \u0027\u0027"},{"line_number":976,"context_line":"        ranges_todo \u003d broker.get_shard_ranges(marker\u003dlast_upper + \u0027\\x00\u0027)"},{"line_number":977,"context_line":"        if not ranges_todo:"},{"line_number":978,"context_line":"            self.logger.debug(\u0027No uncleaved shard ranges for %s/%s\u0027,"},{"line_number":979,"context_line":"                              broker.account, broker.container)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_a33b43cf","line":976,"updated":"2018-02-06 22:51:48.000000000","message":"marker\u003d\u0027\u0027 is equivalent to marker\u003d\u0027\\x00\u0027 isn\u0027t it?\n\nWell that\u0027s a handy trick :-)","commit_id":"d3da39d5857edc452e714d52098cf5e1eba37131"}]}
