)]}'
{"swift/container/sharder.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0b8e76ed8fc8a9bf9f22ab5d5c627ccd4002cdfc","unresolved":false,"context_lines":[{"line_number":694,"context_line":"            shard_ranges \u003d self._fetch_shard_ranges("},{"line_number":695,"context_line":"                broker, newest\u003dTrue,"},{"line_number":696,"context_line":"                params\u003d{\u0027marker\u0027: own_shard_range.lower,"},{"line_number":697,"context_line":"                        \u0027end_marker\u0027: own_shard_range.upper})"},{"line_number":698,"context_line":"            for shard_range in shard_ranges:"},{"line_number":699,"context_line":"                if (shard_range.lower \u003d\u003d own_shard_range.lower and"},{"line_number":700,"context_line":"                        shard_range.upper \u003d\u003d own_shard_range.upper and"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_608586ac","line":697,"updated":"2018-04-13 22:15:27.000000000","message":"Hmm... we don\u0027t have a way to plumb include_deleted through the container-server yet, do we?\n\nWe probably ought to have a way to differentiate between \"root knows nothing about me\" and \"root thinks I\u0027m deleted\".","commit_id":"8e2ac3f7d7ff6151de60518cf96829740b4fd769"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"78f59285b5790941b27355a97700f6f005fc29fd","unresolved":false,"context_lines":[{"line_number":694,"context_line":"            shard_ranges \u003d self._fetch_shard_ranges("},{"line_number":695,"context_line":"                broker, newest\u003dTrue,"},{"line_number":696,"context_line":"                params\u003d{\u0027marker\u0027: own_shard_range.lower,"},{"line_number":697,"context_line":"                        \u0027end_marker\u0027: own_shard_range.upper})"},{"line_number":698,"context_line":"            for shard_range in shard_ranges:"},{"line_number":699,"context_line":"                if (shard_range.lower \u003d\u003d own_shard_range.lower and"},{"line_number":700,"context_line":"                        shard_range.upper \u003d\u003d own_shard_range.upper and"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_c8e80418","line":697,"in_reply_to":"bf659307_608586ac","updated":"2018-04-16 16:59:19.000000000","message":"https://review.openstack.org/#/c/560978/","commit_id":"8e2ac3f7d7ff6151de60518cf96829740b4fd769"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0b8e76ed8fc8a9bf9f22ab5d5c627ccd4002cdfc","unresolved":false,"context_lines":[{"line_number":703,"context_line":"            else:"},{"line_number":704,"context_line":"                # this is not necessarily an error - some replicas of the root"},{"line_number":705,"context_line":"                # may not yet know about this shard container"},{"line_number":706,"context_line":"                warnings.append(\u0027root has no matching shard range\u0027)"},{"line_number":707,"context_line":"                shard_range \u003d None"},{"line_number":708,"context_line":"        else:"},{"line_number":709,"context_line":"            errors.append(\u0027missing own shard range\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_00e28aa0","line":706,"updated":"2018-04-13 22:15:27.000000000","message":"FWIW, using swift-manage-shard-ranges on a large DB tripped a whole bunch of these on the second cycle. I guess the 8 hours between pushing the shard ranges into a particular DB and that DB finishing its first sharding cycle wasn\u0027t enough time to get the shard ranges replicated to the other nodes?","commit_id":"8e2ac3f7d7ff6151de60518cf96829740b4fd769"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0b8e76ed8fc8a9bf9f22ab5d5c627ccd4002cdfc","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"        if shard_range:"},{"line_number":724,"context_line":"            self.logger.debug(\u0027Updating shard from root %s\u0027, dict(shard_range))"},{"line_number":725,"context_line":"            broker.merge_shard_ranges([shard_range])"},{"line_number":726,"context_line":"            own_shard_range \u003d broker.get_own_shard_range()"},{"line_number":727,"context_line":"            delete_age \u003d time.time() - self.reclaim_age"},{"line_number":728,"context_line":"            if (own_shard_range.state \u003d\u003d ShardRange.SHARDED and"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_c07a52ef","line":725,"updated":"2018-04-13 22:15:27.000000000","message":"I wonder if we should merge all of shard_ranges...\n\nIf the shard has been sharded or shrunk into its neighbor, but didn\u0027t previously know it -- we\u0027ll surely need to know about those overlapping ranges anyway, right?\n\nIn fact, we probably want to do that even if we *don\u0027t* find shard_range... if the root doesn\u0027t know about us, but *does* have an idea about where our namespace ought to be... is there any other way for us to get that knowledge?\n\nUgh, but then we\u0027re getting back to the multiple leaders problem...","commit_id":"8e2ac3f7d7ff6151de60518cf96829740b4fd769"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"78f59285b5790941b27355a97700f6f005fc29fd","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"        if shard_range:"},{"line_number":724,"context_line":"            self.logger.debug(\u0027Updating shard from root %s\u0027, dict(shard_range))"},{"line_number":725,"context_line":"            broker.merge_shard_ranges([shard_range])"},{"line_number":726,"context_line":"            own_shard_range \u003d broker.get_own_shard_range()"},{"line_number":727,"context_line":"            delete_age \u003d time.time() - self.reclaim_age"},{"line_number":728,"context_line":"            if (own_shard_range.state \u003d\u003d ShardRange.SHARDED and"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_48dcf473","line":725,"in_reply_to":"bf659307_c07a52ef","updated":"2018-04-16 16:59:19.000000000","message":"added a trello card","commit_id":"8e2ac3f7d7ff6151de60518cf96829740b4fd769"}]}
