)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"5ae5bbd5b57f248c336a12ff9a4fb03e59e65d6d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c8d28366_31f0d74b","updated":"2022-11-30 06:13:48.000000000","message":"@Al, I have an updated test_listing_under_populated_replica probe test. Which has found a continuation bug of a previously blocked cleave. Will push it up soon.\n\nI wanted to push it up before the end of my day, but it\u0027s not quite ready yet. Watch this space.","commit_id":"91caf071204a6f60c6e7d8b48e72da63aeca31c0"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"26c7af775ff7dc72b7d45d9473c2e2cb1662892d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"2a122c5c_7d3f1b18","updated":"2022-12-01 03:40:00.000000000","message":"Rebased on Al\u0027s change again and now with working probe test.","commit_id":"9540c79e293228d54d1214662f01d90efb877d60"}],"swift/container/sharder.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"a32db1aa136cf3a63e4c2c64d2b6e1efceb6b0e4","unresolved":true,"context_lines":[{"line_number":1752,"context_line":"                # copied to the shard broker. Only do this the first time each"},{"line_number":1753,"context_line":"                # shard range is cleaved."},{"line_number":1754,"context_line":"                shard_range.update_meta("},{"line_number":1755,"context_line":"                    info[\u0027object_count\u0027], info[\u0027bytes_used\u0027])"},{"line_number":1756,"context_line":"                # Update state to CLEAVED; only do this when sharding, not when"},{"line_number":1757,"context_line":"                # shrinking"},{"line_number":1758,"context_line":"                shard_range.update_state(ShardRange.CLEAVED)"}],"source_content_type":"text/x-python","patch_set":1,"id":"be74fa3c_4789cb27","line":1755,"updated":"2022-07-26 02:18:08.000000000","message":"I wonder if we need a check here for if the shard_range is already in the \u003e cleaved state. And only update the states if it\u0027s still in cleaved. Because if it happens to be a small replica that\u0027s waited until a full neighbour has finished we don\u0027t want to change the states to something less correct.\nIf something is already \"cleaved\" then the states must be \"good\" enough, and we can let the sharder update it later.","commit_id":"09c08d3e8e03ece51b18c9a73fab058984673a32"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"81874d459567252c7c50343fa20e528c6c3e732a","unresolved":true,"context_lines":[{"line_number":499,"context_line":""},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"def cleave_blocked(cleave_context, shard_range, block_timeout):"},{"line_number":502,"context_line":"    # let\u0027s start with a _very_ basic to get some logic out."},{"line_number":503,"context_line":"    # Short circuit if the shard_range is already \u003e\u003d CLEAVED"},{"line_number":504,"context_line":"    if shard_range.state \u003e\u003d ShardRange.CLEAVED:"},{"line_number":505,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"3579ac38_0cae752e","line":502,"updated":"2022-08-08 06:41:04.000000000","message":"s/basic/basic version/","commit_id":"34b347ae7631452d2a96661a76d7b6fda9c13750"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"9dc05fb40276ea293542cc13393e265cb14e364f","unresolved":false,"context_lines":[{"line_number":499,"context_line":""},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"def cleave_blocked(cleave_context, shard_range, block_timeout):"},{"line_number":502,"context_line":"    # let\u0027s start with a _very_ basic to get some logic out."},{"line_number":503,"context_line":"    # Short circuit if the shard_range is already \u003e\u003d CLEAVED"},{"line_number":504,"context_line":"    if shard_range.state \u003e\u003d ShardRange.CLEAVED:"},{"line_number":505,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f5b627a_1a738361","line":502,"in_reply_to":"3579ac38_0cae752e","updated":"2022-11-30 02:56:46.000000000","message":"Done","commit_id":"34b347ae7631452d2a96661a76d7b6fda9c13750"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"69a2928b2d458296d14c53ccf62d657a83ef8849","unresolved":true,"context_lines":[{"line_number":2216,"context_line":"                    break"},{"line_number":2217,"context_line":"                else:"},{"line_number":2218,"context_line":"                    # It shouldn\u0027t be blocked anymore"},{"line_number":2219,"context_line":"                    cleaving_context.unblock_range()"},{"line_number":2220,"context_line":"            cleave_result \u003d self._cleave_shard_range("},{"line_number":2221,"context_line":"                broker, cleaving_context, shard_range, own_shard_range)"},{"line_number":2222,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"c8fc9d67_6c68ed21","line":2219,"updated":"2022-12-01 03:42:00.000000000","message":"I\u0027m wondering if it makes sense to move this unblock into cleave_blocked. I mean it already takes in the cleave context, and actually determines if it should be blocked. So maybe it can just block and unblock in there. It would save an else here.","commit_id":"9540c79e293228d54d1214662f01d90efb877d60"}]}
