)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ae667f678b76309a523b652c03e940174b883326","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"20a0ccb7_e87e816b","updated":"2024-01-12 10:47:35.000000000","message":"@Jianjian this is the relevant test: test_backend_headers_update_shard_container_no_cache\n\npreviously, if recheck_updating_shard_ranges was non-zero we would fetch all namespaces *even though there is no memcache to write them to*.","commit_id":"31e061b1213f411c2d5bc2096d780b9937ec0aea"},{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"0b067305e397e9ea1b5300a6a52c23bede952fae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"074e06d0_e91f6855","updated":"2024-01-09 16:52:44.000000000","message":"I am not sure this is needed, maybe we just need better comments.","commit_id":"31e061b1213f411c2d5bc2096d780b9937ec0aea"},{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"c5d3fa84299c3041133999bedf9838071e1c4691","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"841916f8_983ff3c8","in_reply_to":"074e06d0_e91f6855","updated":"2024-01-09 17:19:40.000000000","message":"I see, this patch is to optimize the shard range query path when memcache is not available. Instead of getting all shard ranges, the new change will only give us the single shard we need. This is good, but we also need to clean up ``recheck_updating_shard_ranges``, and also probably do the same thing to listing shard range query path?","commit_id":"31e061b1213f411c2d5bc2096d780b9937ec0aea"}],"swift/proxy/controllers/base.py":[{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"0b067305e397e9ea1b5300a6a52c23bede952fae","unresolved":true,"context_lines":[{"line_number":908,"context_line":"    # then try get them from memcache"},{"line_number":909,"context_line":"    memcache \u003d cache_from_env(req.environ, True)"},{"line_number":910,"context_line":"    if not memcache:"},{"line_number":911,"context_line":"        return None, \u0027disabled\u0027"},{"line_number":912,"context_line":"    if skip_chance and random.random() \u003c skip_chance:"},{"line_number":913,"context_line":"        return None, \u0027skip\u0027"},{"line_number":914,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"80095f56_4bdd52fd","line":911,"updated":"2024-01-09 16:52:44.000000000","message":"this case was done here, and it covers both updating shard range and listing shard range.","commit_id":"31e061b1213f411c2d5bc2096d780b9937ec0aea"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ae667f678b76309a523b652c03e940174b883326","unresolved":true,"context_lines":[{"line_number":908,"context_line":"    # then try get them from memcache"},{"line_number":909,"context_line":"    memcache \u003d cache_from_env(req.environ, True)"},{"line_number":910,"context_line":"    if not memcache:"},{"line_number":911,"context_line":"        return None, \u0027disabled\u0027"},{"line_number":912,"context_line":"    if skip_chance and random.random() \u003c skip_chance:"},{"line_number":913,"context_line":"        return None, \u0027skip\u0027"},{"line_number":914,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"66626cfd_ef5c0982","line":911,"in_reply_to":"80095f56_4bdd52fd","updated":"2024-01-12 10:47:35.000000000","message":"when this returns None to _get_update_shard, that then fetches *all* the namespaces from the backend\n\nhttps://review.opendev.org/c/openstack/swift/+/905112/2/swift/proxy/controllers/obj.py#359\n\nif this method is called it indicates that we\u0027re on the \u0027fetch-all-namespaces\u0027 code path","commit_id":"31e061b1213f411c2d5bc2096d780b9937ec0aea"}],"test/unit/proxy/test_server.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ae667f678b76309a523b652c03e940174b883326","unresolved":true,"context_lines":[{"line_number":4316,"context_line":"        self.app.sort_nodes \u003d lambda nodes, *args, **kwargs: nodes"},{"line_number":4317,"context_line":"        # we\u0027d cache shards *if* there was memcache"},{"line_number":4318,"context_line":"        self.app.recheck_updating_shard_ranges \u003d 3600"},{"line_number":4319,"context_line":""},{"line_number":4320,"context_line":"        def do_test(method, sharding_state):"},{"line_number":4321,"context_line":"            self.app.logger.clear()  # clean capture state"},{"line_number":4322,"context_line":"            req \u003d Request.blank(\u0027/v1/a/c/o\u0027, {}, method\u003dmethod, body\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"8c071124_b14784b2","line":4319,"updated":"2024-01-12 10:47:35.000000000","message":"this is the test that now covers the fix: the request has no cache in its environ, so the request should have the param \u0027includes\u0027 even though recheck_updating_shard_ranges is non-zero,","commit_id":"31e061b1213f411c2d5bc2096d780b9937ec0aea"}]}
