)]}'
{"test/unit/proxy/controllers/test_obj.py":[{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"d8b9f7d91b8ae625985a0e88b6582654b30ac9bc","unresolved":false,"context_lines":[{"line_number":1500,"context_line":""},{"line_number":1501,"context_line":"        # FIXME: This is weird. EC object server always 206 Partial"},{"line_number":1502,"context_line":"        # content (maybe for supporting footer) even though the required"},{"line_number":1503,"context_line":"        # renge is not satisfiable."},{"line_number":1504,"context_line":"        headers \u003d {\u0027X-Object-Sysmeta-Ec-Content-Length\u0027: str(4096)}"},{"line_number":1505,"context_line":"        responses \u003d [(416, headers)"},{"line_number":1506,"context_line":"                     for i in range(POLICIES.default.ec_ndata)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_6472c4af","line":1503,"updated":"2015-07-17 04:57:10.000000000","message":"It\u0027s not the footer; it\u0027s a subtlety of the interaction between segment sizes, fragment sizes, and range requests.\n\nA request for bytes M-N gets widened to land on segment boundaries so that the proxy gets whole segments. For example, with segment size 4096, a request for bytes 30000-35000 gets widened to bytes 28672-36863.\n\nFinally, it gets scaled by fragment-size/segment-size so it\u0027s requesting whole fragments from the object server.\n\nConsider a 5000-byte object with segment size 4096. If a request comes in for bytes 5500-6000 of that object, it\u0027s obviously not satisfiable. However, the proxy widens that to bytes 4096-8191 to get the whole segment, and once it scales that to fragments and sends it to the object server, that object-server request *does* end up being satisfiable.\n\nThe proxy will detect this situation and return a 416 to the client anyway, but it does look weird that an object-server 206 gets turned into a proxy-server 416.\n\nIf you request something completely beyond the last segment (say, bytes 100000-150000 for a 99-byte object), then you should be able to observe an object-server 416 that turns into a proxy-server 416.","commit_id":"11e65161021e4040ade2ac0ad01cf2c623bc95f5"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"64cc4775333dffb58c0edccf4cf14d99df17f8af","unresolved":false,"context_lines":[{"line_number":1500,"context_line":""},{"line_number":1501,"context_line":"        # FIXME: This is weird. EC object server always 206 Partial"},{"line_number":1502,"context_line":"        # content (maybe for supporting footer) even though the required"},{"line_number":1503,"context_line":"        # renge is not satisfiable."},{"line_number":1504,"context_line":"        headers \u003d {\u0027X-Object-Sysmeta-Ec-Content-Length\u0027: str(4096)}"},{"line_number":1505,"context_line":"        responses \u003d [(416, headers)"},{"line_number":1506,"context_line":"                     for i in range(POLICIES.default.ec_ndata)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_0402d83e","line":1503,"in_reply_to":"9a41bdd9_6472c4af","updated":"2015-07-17 05:27:59.000000000","message":"OIC, I finally got the behavior. It makes me sense that proxy server may have a chance to get 206 from object server but returns 416 when the required bytes is in the last segment range and I confirmed object-server also has a chance to return 416 in EC case when the required range absolutely over stored segment range.\n\n*BUT* I might find another issue at such a over ranged request. (i.e. 5000 byte object with segment size 4096, a request for bytes 8191- seems not to set correct response length and body, xml of \"Requested Range Not Satisfiable\")\n\nTo reproduce the above failure, (tested segment size 1MB default value for EC)\n- PUT an 5 bytes object to an EC container\n- GET the object with range bytes\u003d1048575- \u003d\u003e 416 with response body\n- GET the object with range bytes\u003d1048576- \u003d\u003e 416 but no body and my curl client stuck.\n\nMaybe I could work for fixing that, thanks!","commit_id":"11e65161021e4040ade2ac0ad01cf2c623bc95f5"}]}
