)]}'
{"swift/container/sharder.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"37577d38d4b9df9b18844f5c35ba5a95fd7c75ae","unresolved":true,"context_lines":[{"line_number":1102,"context_line":"        info \u003d broker.get_replication_info()"},{"line_number":1103,"context_line":"        remote_info \u003d translate_container_headers_to_info(root_resp.headers)"},{"line_number":1104,"context_line":"        if incorrect_policy_index(info, remote_info):"},{"line_number":1105,"context_line":"            broker.set_storage_policy_index("},{"line_number":1106,"context_line":"                remote_info[\u0027storage_policy_index\u0027])"},{"line_number":1107,"context_line":""},{"line_number":1108,"context_line":"    def _audit_shard_container(self, broker):"}],"source_content_type":"text/x-python","patch_set":2,"id":"d01816a9_ec333e32","line":1105,"range":{"start_line":1105,"start_character":19,"end_line":1105,"end_character":43},"updated":"2021-08-23 09:24:31.000000000","message":"this updates the status_changed_at but not the put/delete timestamps, so the *first* shard replica to have been updated from a root becomes dominant when the shards replicate to each other (i.e. the oldest status_changed_at wins in replication)\n\ni.e. during replication, shards may well undo any useful policy update from root\n\neventually, once roots become sync\u0027d, shards will converge on the root policy, but there could be ping ponging along the way.","commit_id":"146815b188ab8e2cfd37dd421fef1b976452420c"}],"test/unit/container/test_sharder.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"37577d38d4b9df9b18844f5c35ba5a95fd7c75ae","unresolved":true,"context_lines":[{"line_number":5813,"context_line":"                sharder._update_storage_policy_index("},{"line_number":5814,"context_line":"                    shard_brokers[i], root_responses[i])"},{"line_number":5815,"context_line":""},{"line_number":5816,"context_line":"        # only the one that got the \"correct\" resp can update"},{"line_number":5817,"context_line":"        self.assertEqual("},{"line_number":5818,"context_line":"            [0, 2, 0],"},{"line_number":5819,"context_line":"            [broker.storage_policy_index for broker in shard_brokers])"}],"source_content_type":"text/x-python","patch_set":2,"id":"c5a174bd_b9007c48","line":5816,"updated":"2021-08-23 09:24:31.000000000","message":"this is only true because the test creates the shard brokers with (likely) older put timestamp than the the roots, which means the shards only pay attention to a recreated root.\n\nIn the more likely case that shards have newer put timestamps, they will update to whatever the root sends them, which results in shard policies ping-ponging until the roots sync to a single policy.","commit_id":"146815b188ab8e2cfd37dd421fef1b976452420c"}]}
