)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"227caeb54d9615466e5a0079471d473c6d8444a9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"py3: fix up listings on sharded containers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We were playing a little fast \u0026 losse with types before; as a result,"},{"line_number":10,"context_line":"marker/end_marker weren\u0027t quite working right."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Now, get everything to native strings before making comparisons, and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_f265ea1e","line":9,"range":{"start_line":9,"start_character":32,"end_line":9,"end_character":37},"updated":"2019-07-24 23:14:25.000000000","message":"Speaking of fast \u0026 loose...","commit_id":"c167a8d926f11c7d3902d02d2586d25c7639bbdb"}],"swift/proxy/controllers/container.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b08fe11c7da51817e499930850ba9f9c049b6a46","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            # expected shard range are not fetched. This prevents a misplaced"},{"line_number":188,"context_line":"            # object obscuring correctly placed objects in the next shard"},{"line_number":189,"context_line":"            # range."},{"line_number":190,"context_line":"            if end_marker and end_marker in shard_range:"},{"line_number":191,"context_line":"                params[\u0027end_marker\u0027] \u003d str_to_wsgi(end_marker)"},{"line_number":192,"context_line":"            elif reverse:"},{"line_number":193,"context_line":"                params[\u0027end_marker\u0027] \u003d str_to_wsgi(shard_range.lower_str)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_5d41bca5","line":190,"range":{"start_line":190,"start_character":30,"end_line":190,"end_character":55},"updated":"2019-08-14 23:47:16.000000000","message":"This one was the problem: previously we checked whether a wsgi string was within some native-string bounds.","commit_id":"c167a8d926f11c7d3902d02d2586d25c7639bbdb"}],"test/unit/proxy/controllers/test_container.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"90826ca14c78b31fe29185b76ef0d2997e558552","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    \u0027hash\u0027: \u0027hash%s\u0027 % six.unichr(i),"},{"line_number":451,"context_line":"                    \u0027content_type\u0027: \u0027text/plain\u0027, \u0027deleted\u0027: 0,"},{"line_number":452,"context_line":"                    \u0027last_modified\u0027: next(self.ts_iter).isoformat}"},{"line_number":453,"context_line":"                   for i in range(lower + 1, upper + 1)][:1024]"},{"line_number":454,"context_line":"        return objects"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"    def _check_GET_shard_listing(self, mock_responses, expected_objects,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_e2d66a27","line":453,"updated":"2019-08-20 22:15:13.000000000","message":"Why is the limit to 1024 entries? I don\u0027t see it harming anything, but I\u0027m curious.","commit_id":"3750285bc863f8b6b56ba9526b028ee9cddcf04b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3ea6caa797b84d14cc5d9a5960cb41b9dbc7c484","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    \u0027hash\u0027: \u0027hash%s\u0027 % six.unichr(i),"},{"line_number":451,"context_line":"                    \u0027content_type\u0027: \u0027text/plain\u0027, \u0027deleted\u0027: 0,"},{"line_number":452,"context_line":"                    \u0027last_modified\u0027: next(self.ts_iter).isoformat}"},{"line_number":453,"context_line":"                   for i in range(lower + 1, upper + 1)][:1024]"},{"line_number":454,"context_line":"        return objects"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"    def _check_GET_shard_listing(self, mock_responses, expected_objects,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_36d284fe","line":453,"in_reply_to":"7faddb67_e2d66a27","updated":"2019-08-21 05:27:30.000000000","message":"Otherwise I\u0027d start bumping up against swift\u0027s limit of 10k objects per listing request, particularly with the shards later in the namespace. I probably could\u0027ve done 100 or even just 10 and it\u0027d be just as valid.","commit_id":"3750285bc863f8b6b56ba9526b028ee9cddcf04b"}]}
