)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d1f2b8f1e6e1e0d69f7446aedbc067ac7a0bb058","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Make find_shard_ranges cope with misplaced objects"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before if a shard db had misplaced objects (i.e. names outside of the"},{"line_number":10,"context_line":"shard namespace) then find_shard_ranges() could blow up."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Now, the final shard range found is always limited to the shard\u0027s"},{"line_number":13,"context_line":"upper namespace bound even if there happen to be misplaced objects"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa0c359_8373a715","line":10,"range":{"start_line":10,"start_character":48,"end_line":10,"end_character":55},"updated":"2018-02-06 23:34:21.000000000","message":"For the curious: ShardRange.__init__ would throw\n\n ValueError: upper (...) must be greater than or equal to lower (...)","commit_id":"7091bb25f3534cea77e1a52b27bc820cc985278a"}],"swift/container/backend.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d1f2b8f1e6e1e0d69f7446aedbc067ac7a0bb058","unresolved":false,"context_lines":[{"line_number":1864,"context_line":"            if (next_shard_upper is None or"},{"line_number":1865,"context_line":"                    next_shard_upper \u003e own_shard_range.upper):"},{"line_number":1866,"context_line":"                # We reached the end of the container namespace, or possibly"},{"line_number":1867,"context_line":"                # beyond if the container has misplaced objects. In either case"},{"line_number":1868,"context_line":"                # limit the final shard range to own_shard_range.upper."},{"line_number":1869,"context_line":"                next_shard_upper \u003d own_shard_range.upper"},{"line_number":1870,"context_line":"                # object count may include misplaced objects, so the final"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_63e45bad","line":1867,"range":{"start_line":1867,"start_character":28,"end_line":1867,"end_character":63},"updated":"2018-02-06 23:34:21.000000000","message":"Those misplaced objects then hang around until the next sharder cycle, I suppose? At which point we ... deal with them *first*, even before trying to further cleave, yeah? Am I remembering this right?","commit_id":"7091bb25f3534cea77e1a52b27bc820cc985278a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fd90dbd2a7b760c777fe39ebfe738127f1a928cf","unresolved":false,"context_lines":[{"line_number":1864,"context_line":"            if (next_shard_upper is None or"},{"line_number":1865,"context_line":"                    next_shard_upper \u003e own_shard_range.upper):"},{"line_number":1866,"context_line":"                # We reached the end of the container namespace, or possibly"},{"line_number":1867,"context_line":"                # beyond if the container has misplaced objects. In either case"},{"line_number":1868,"context_line":"                # limit the final shard range to own_shard_range.upper."},{"line_number":1869,"context_line":"                next_shard_upper \u003d own_shard_range.upper"},{"line_number":1870,"context_line":"                # object count may include misplaced objects, so the final"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_ea791093","line":1867,"range":{"start_line":1867,"start_character":28,"end_line":1867,"end_character":63},"in_reply_to":"3fa0c359_63e45bad","updated":"2018-02-07 10:20:02.000000000","message":"yes, every cycle the misplaced_objects() method clears out anything misplaced, and currently it is the first operation in each cycle.","commit_id":"7091bb25f3534cea77e1a52b27bc820cc985278a"}]}
