)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3c36f6a3114dc9e7849eb364d2119c1cdb67afe7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"395d187c_08a0981c","updated":"2023-04-26 16:21:59.000000000","message":"let\u0027s keep working on this","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"af58c976_4d438527","updated":"2023-05-02 19:08:02.000000000","message":"looks good!  I think we should reduce the sleep and might need to fix the flake8","commit_id":"3c7b149ec130e55148133726f94aac73291d43d1"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"52490f86dd95aa8a1c6d39aa29c06a499dc1bfdb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"00fe7f24_0d02c904","updated":"2023-05-12 17:26:28.000000000","message":"lgtm!\n\nhttps://review.opendev.org/c/openstack/swift/+/883084","commit_id":"647ee83906df8fae336b479c0f169be2ced1772c"}],"test/unit/__init__.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"64161a020360d1a0305eb9d8f20995396f9f3df2","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    buf \u003d b\u0027\u0027"},{"line_number":517,"context_line":"    with eventlet.Timeout(timeout):"},{"line_number":518,"context_line":"        while len(buf) \u003c size:"},{"line_number":519,"context_line":"            chunk \u003d fd.read(min(64, size - len(buf)))"},{"line_number":520,"context_line":"            buf +\u003d chunk"},{"line_number":521,"context_line":"            if len(buf) \u003e\u003d size:"},{"line_number":522,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":3,"id":"09d9c0f8_c07e46ba","line":519,"range":{"start_line":519,"start_character":32,"end_line":519,"end_character":34},"updated":"2023-05-05 23:05:42.000000000","message":"Feels like a funny little constant... \\*shrug* w/e","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"}],"test/unit/proxy/test_server.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3c36f6a3114dc9e7849eb364d2119c1cdb67afe7","unresolved":true,"context_lines":[{"line_number":8179,"context_line":""},{"line_number":8180,"context_line":"    def test_GET_ec_pipeline(self):"},{"line_number":8181,"context_line":"        prolis \u003d _test_sockets[0]"},{"line_number":8182,"context_line":"        prosrv \u003d _test_servers[0]"},{"line_number":8183,"context_line":""},{"line_number":8184,"context_line":"        self.put_container(self.ec_policy.name, self.ec_policy.name)"},{"line_number":8185,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"c3ded4f0_b747160e","line":8182,"in_reply_to":"79f5571c_7a1e14c9","updated":"2023-04-26 16:21:59.000000000","message":"\u003e pep8: F841 local variable \u0027prosrv\u0027 is assigned to but never used\n\nPlease fix.","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":false,"context_lines":[{"line_number":8179,"context_line":""},{"line_number":8180,"context_line":"    def test_GET_ec_pipeline(self):"},{"line_number":8181,"context_line":"        prolis \u003d _test_sockets[0]"},{"line_number":8182,"context_line":"        prosrv \u003d _test_servers[0]"},{"line_number":8183,"context_line":""},{"line_number":8184,"context_line":"        self.put_container(self.ec_policy.name, self.ec_policy.name)"},{"line_number":8185,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7e72d9ee_7ba2ca24","line":8182,"in_reply_to":"c3ded4f0_b747160e","updated":"2023-05-02 19:08:02.000000000","message":"Done","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3c36f6a3114dc9e7849eb364d2119c1cdb67afe7","unresolved":true,"context_lines":[{"line_number":8206,"context_line":"                  \u0027X-Storage-Token: t\\r\\n\u0027"},{"line_number":8207,"context_line":"                  \u0027\\r\\n\u0027 % self.ec_policy.name).encode(\u0027ascii\u0027))"},{"line_number":8208,"context_line":""},{"line_number":8209,"context_line":"        fd.flush()"},{"line_number":8210,"context_line":"        time.sleep(70)  # pipeline-timeout"},{"line_number":8211,"context_line":""},{"line_number":8212,"context_line":"        fd.write((\u0027GET /v1/a/%s/go-get-it HTTP/1.1\\r\\n\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"458aa13c_2f9a7d78","line":8209,"updated":"2023-04-26 16:21:59.000000000","message":"we should the fd and asssert 200 response here","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":false,"context_lines":[{"line_number":8206,"context_line":"                  \u0027X-Storage-Token: t\\r\\n\u0027"},{"line_number":8207,"context_line":"                  \u0027\\r\\n\u0027 % self.ec_policy.name).encode(\u0027ascii\u0027))"},{"line_number":8208,"context_line":""},{"line_number":8209,"context_line":"        fd.flush()"},{"line_number":8210,"context_line":"        time.sleep(70)  # pipeline-timeout"},{"line_number":8211,"context_line":""},{"line_number":8212,"context_line":"        fd.write((\u0027GET /v1/a/%s/go-get-it HTTP/1.1\\r\\n\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"2295bbba_49a1dffc","line":8209,"in_reply_to":"458aa13c_2f9a7d78","updated":"2023-05-02 19:08:02.000000000","message":"Done","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3c36f6a3114dc9e7849eb364d2119c1cdb67afe7","unresolved":true,"context_lines":[{"line_number":8207,"context_line":"                  \u0027\\r\\n\u0027 % self.ec_policy.name).encode(\u0027ascii\u0027))"},{"line_number":8208,"context_line":""},{"line_number":8209,"context_line":"        fd.flush()"},{"line_number":8210,"context_line":"        time.sleep(70)  # pipeline-timeout"},{"line_number":8211,"context_line":""},{"line_number":8212,"context_line":"        fd.write((\u0027GET /v1/a/%s/go-get-it HTTP/1.1\\r\\n\u0027"},{"line_number":8213,"context_line":"                  \u0027Host: localhost\\r\\n\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"96d98484_67f3a5c9","line":8210,"updated":"2023-04-26 16:21:59.000000000","message":"we don\u0027t need to sleep this long in a unittest","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":false,"context_lines":[{"line_number":8207,"context_line":"                  \u0027\\r\\n\u0027 % self.ec_policy.name).encode(\u0027ascii\u0027))"},{"line_number":8208,"context_line":""},{"line_number":8209,"context_line":"        fd.flush()"},{"line_number":8210,"context_line":"        time.sleep(70)  # pipeline-timeout"},{"line_number":8211,"context_line":""},{"line_number":8212,"context_line":"        fd.write((\u0027GET /v1/a/%s/go-get-it HTTP/1.1\\r\\n\u0027"},{"line_number":8213,"context_line":"                  \u0027Host: localhost\\r\\n\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ed891e14_9ed16ab6","line":8210,"in_reply_to":"96d98484_67f3a5c9","updated":"2023-05-02 19:08:02.000000000","message":"Done","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3c36f6a3114dc9e7849eb364d2119c1cdb67afe7","unresolved":true,"context_lines":[{"line_number":8214,"context_line":"                  \u0027Connection: close\\r\\n\u0027"},{"line_number":8215,"context_line":"                  \u0027X-Storage-Token: t\\r\\n\u0027"},{"line_number":8216,"context_line":"                  \u0027\\r\\n\u0027 % self.ec_policy.name).encode(\u0027ascii\u0027))"},{"line_number":8217,"context_line":"        # time.sleep(70)  #pipeline-timeout"},{"line_number":8218,"context_line":"        fd.flush()"},{"line_number":8219,"context_line":"        headers \u003d readuntil2crlfs(fd)"},{"line_number":8220,"context_line":"        exp \u003d b\u0027HTTP/1.1 200\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"d852766c_a901f0b2","line":8217,"updated":"2023-04-26 16:21:59.000000000","message":"we don\u0027t need to merged commented code","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":false,"context_lines":[{"line_number":8214,"context_line":"                  \u0027Connection: close\\r\\n\u0027"},{"line_number":8215,"context_line":"                  \u0027X-Storage-Token: t\\r\\n\u0027"},{"line_number":8216,"context_line":"                  \u0027\\r\\n\u0027 % self.ec_policy.name).encode(\u0027ascii\u0027))"},{"line_number":8217,"context_line":"        # time.sleep(70)  #pipeline-timeout"},{"line_number":8218,"context_line":"        fd.flush()"},{"line_number":8219,"context_line":"        headers \u003d readuntil2crlfs(fd)"},{"line_number":8220,"context_line":"        exp \u003d b\u0027HTTP/1.1 200\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ed1aeaf_65c9444d","line":8217,"in_reply_to":"d852766c_a901f0b2","updated":"2023-05-02 19:08:02.000000000","message":"Done","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"3c36f6a3114dc9e7849eb364d2119c1cdb67afe7","unresolved":true,"context_lines":[{"line_number":8218,"context_line":"        fd.flush()"},{"line_number":8219,"context_line":"        headers \u003d readuntil2crlfs(fd)"},{"line_number":8220,"context_line":"        exp \u003d b\u0027HTTP/1.1 200\u0027"},{"line_number":8221,"context_line":"        self.assertEqual(headers[:len(exp)], exp)"},{"line_number":8222,"context_line":""},{"line_number":8223,"context_line":"    def test_ec_client_disconnect(self):"},{"line_number":8224,"context_line":"        prolis \u003d _test_sockets[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"29c96ab1_d21022c8","line":8221,"updated":"2023-04-26 16:21:59.000000000","message":"this seems to suggest we CAN make a 3rd pipeline\u0027d request even after the client was lazy on the socket for such a long time; what\u0027s going on there?\n\noh, maybe because it\u0027s a hard time.sleep which blocks eventlet - so the proxy isn\u0027t running.\n\nOh and maybe this is the *first* GET response success","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":false,"context_lines":[{"line_number":8218,"context_line":"        fd.flush()"},{"line_number":8219,"context_line":"        headers \u003d readuntil2crlfs(fd)"},{"line_number":8220,"context_line":"        exp \u003d b\u0027HTTP/1.1 200\u0027"},{"line_number":8221,"context_line":"        self.assertEqual(headers[:len(exp)], exp)"},{"line_number":8222,"context_line":""},{"line_number":8223,"context_line":"    def test_ec_client_disconnect(self):"},{"line_number":8224,"context_line":"        prolis \u003d _test_sockets[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"75265a71_89944ea1","line":8221,"in_reply_to":"29c96ab1_d21022c8","updated":"2023-05-02 19:08:02.000000000","message":"Done","commit_id":"86f7a37362631a5414a2ea919baeee823ac91973"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":true,"context_lines":[{"line_number":22,"context_line":"import os"},{"line_number":23,"context_line":"import posix"},{"line_number":24,"context_line":"import socket"},{"line_number":25,"context_line":"import errno"},{"line_number":26,"context_line":"from six import PY2"},{"line_number":27,"context_line":"import sys"},{"line_number":28,"context_line":"import traceback"}],"source_content_type":"text/x-python","patch_set":2,"id":"590c9a2d_01b530c7","line":25,"updated":"2023-05-02 19:08:02.000000000","message":"i\u0027m getting a flake8 error saying this is un-used.","commit_id":"3c7b149ec130e55148133726f94aac73291d43d1"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"a6ebb953cb92f4817e4030408181d2fc24217370","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import os"},{"line_number":23,"context_line":"import posix"},{"line_number":24,"context_line":"import socket"},{"line_number":25,"context_line":"import errno"},{"line_number":26,"context_line":"from six import PY2"},{"line_number":27,"context_line":"import sys"},{"line_number":28,"context_line":"import traceback"}],"source_content_type":"text/x-python","patch_set":2,"id":"e12e3dde_1289e78a","line":25,"in_reply_to":"590c9a2d_01b530c7","updated":"2023-05-05 21:40:49.000000000","message":"Done","commit_id":"3c7b149ec130e55148133726f94aac73291d43d1"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":true,"context_lines":[{"line_number":8244,"context_line":"            gotten_obj \u003d readlength(fd, content_length)"},{"line_number":8245,"context_line":"            self.assertEqual(gotten_obj, obj)"},{"line_number":8246,"context_line":""},{"line_number":8247,"context_line":"            sleep(1.3)  # client_timeout should kick us off"},{"line_number":8248,"context_line":""},{"line_number":8249,"context_line":"            fd.write((\u0027GET /v1/a/%s/go-get-it HTTP/1.1\\r\\n\u0027"},{"line_number":8250,"context_line":"                      \u0027Host: localhost\\r\\n\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"4575b081_ca4acce1","line":8247,"updated":"2023-05-02 19:08:02.000000000","message":"I don\u0027t think we need to sleep this long; i can get the test to fail with 0.09, but it seems to work with \u003e\u003d 0.1\n\nI\u0027d recommend 0.3","commit_id":"3c7b149ec130e55148133726f94aac73291d43d1"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"a6ebb953cb92f4817e4030408181d2fc24217370","unresolved":false,"context_lines":[{"line_number":8244,"context_line":"            gotten_obj \u003d readlength(fd, content_length)"},{"line_number":8245,"context_line":"            self.assertEqual(gotten_obj, obj)"},{"line_number":8246,"context_line":""},{"line_number":8247,"context_line":"            sleep(1.3)  # client_timeout should kick us off"},{"line_number":8248,"context_line":""},{"line_number":8249,"context_line":"            fd.write((\u0027GET /v1/a/%s/go-get-it HTTP/1.1\\r\\n\u0027"},{"line_number":8250,"context_line":"                      \u0027Host: localhost\\r\\n\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"06cca8d2_b021f7e5","line":8247,"in_reply_to":"4575b081_ca4acce1","updated":"2023-05-05 21:40:49.000000000","message":"Done","commit_id":"3c7b149ec130e55148133726f94aac73291d43d1"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":true,"context_lines":[{"line_number":8252,"context_line":"                      \u0027\\r\\n\u0027 % self.ec_policy.name).encode(\u0027ascii\u0027))"},{"line_number":8253,"context_line":"            fd.flush()"},{"line_number":8254,"context_line":"            # makefile is a little weird, but this is disconnected"},{"line_number":8255,"context_line":"            self.assertEqual(b\u0027\u0027, fd.read())"},{"line_number":8256,"context_line":"            # I expected this to raise a socket error"},{"line_number":8257,"context_line":"            self.assertEqual(b\u0027\u0027, sock.recv(1024))"},{"line_number":8258,"context_line":"            # ... but we ARE disconnected"}],"source_content_type":"text/x-python","patch_set":2,"id":"bba0e3c0_dbaad77e","line":8255,"updated":"2023-05-02 19:08:02.000000000","message":"looks good!  if i reduce the sleep this request will work:\n\nE           AssertionError: b\u0027\u0027 !\u003d b\u0027HTTP/1.1 200 OK\\r\\nContent-Type: applicat[1760 chars]3456\u0027","commit_id":"3c7b149ec130e55148133726f94aac73291d43d1"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"a6ebb953cb92f4817e4030408181d2fc24217370","unresolved":false,"context_lines":[{"line_number":8252,"context_line":"                      \u0027\\r\\n\u0027 % self.ec_policy.name).encode(\u0027ascii\u0027))"},{"line_number":8253,"context_line":"            fd.flush()"},{"line_number":8254,"context_line":"            # makefile is a little weird, but this is disconnected"},{"line_number":8255,"context_line":"            self.assertEqual(b\u0027\u0027, fd.read())"},{"line_number":8256,"context_line":"            # I expected this to raise a socket error"},{"line_number":8257,"context_line":"            self.assertEqual(b\u0027\u0027, sock.recv(1024))"},{"line_number":8258,"context_line":"            # ... but we ARE disconnected"}],"source_content_type":"text/x-python","patch_set":2,"id":"eea57c5b_7ad2f331","line":8255,"in_reply_to":"bba0e3c0_dbaad77e","updated":"2023-05-05 21:40:49.000000000","message":"Ack","commit_id":"3c7b149ec130e55148133726f94aac73291d43d1"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0ab3b44dadd9966e8686b97c0148c436a1ab0333","unresolved":true,"context_lines":[{"line_number":8261,"context_line":"                self.assertRaises(socket.error, sock.send, b\u0027test\u0027)"},{"line_number":8262,"context_line":"            else:"},{"line_number":8263,"context_line":"                # py3 environment"},{"line_number":8264,"context_line":"                self.assertRaises(BrokenPipeError, sock.send, b\u0027test\u0027)"},{"line_number":8265,"context_line":"            # and logging confirms we\u0027ve timed out"},{"line_number":8266,"context_line":"            last_debug_msg \u003d prosrv.logger.get_lines_for_level(\u0027debug\u0027)[-1]"},{"line_number":8267,"context_line":"            self.assertIn(\u0027timed out\u0027, last_debug_msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"0fc1c789_96163f34","line":8264,"updated":"2023-05-02 19:08:02.000000000","message":"i might spell this differently:\n\n\t-            if PY2:\n\t-                # py2 environment\n\t-                self.assertRaises(socket.error, sock.send, b\u0027test\u0027)\n\t-            else:\n\t-                # py3 environment\n\t-                self.assertRaises(BrokenPipeError, sock.send, b\u0027test\u0027)\n\t+            expected_error \u003d socket.error if PY2 else BrokenPipeError\n\t+            self.assertRaises(expected_error, sock.send, b\u0027test\u0027)","commit_id":"3c7b149ec130e55148133726f94aac73291d43d1"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"a6ebb953cb92f4817e4030408181d2fc24217370","unresolved":false,"context_lines":[{"line_number":8261,"context_line":"                self.assertRaises(socket.error, sock.send, b\u0027test\u0027)"},{"line_number":8262,"context_line":"            else:"},{"line_number":8263,"context_line":"                # py3 environment"},{"line_number":8264,"context_line":"                self.assertRaises(BrokenPipeError, sock.send, b\u0027test\u0027)"},{"line_number":8265,"context_line":"            # and logging confirms we\u0027ve timed out"},{"line_number":8266,"context_line":"            last_debug_msg \u003d prosrv.logger.get_lines_for_level(\u0027debug\u0027)[-1]"},{"line_number":8267,"context_line":"            self.assertIn(\u0027timed out\u0027, last_debug_msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"abce1a65_2964982b","line":8264,"in_reply_to":"0fc1c789_96163f34","updated":"2023-05-05 21:40:49.000000000","message":"Done","commit_id":"3c7b149ec130e55148133726f94aac73291d43d1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"64161a020360d1a0305eb9d8f20995396f9f3df2","unresolved":true,"context_lines":[{"line_number":7333,"context_line":"    server_kwargs.update(extra_server_kwargs)"},{"line_number":7334,"context_line":"    prolis \u003d listen_zero()"},{"line_number":7335,"context_line":"    try:"},{"line_number":7336,"context_line":"        prospa \u003d spawn(wsgi.server, prolis, prosrv, prosrv.logger,"},{"line_number":7337,"context_line":"                       **server_kwargs)"},{"line_number":7338,"context_line":"        yield prolis"},{"line_number":7339,"context_line":"    finally:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0594a762_6fddbf48","line":7336,"range":{"start_line":7336,"start_character":8,"end_line":7336,"end_character":14},"updated":"2023-05-05 23:05:42.000000000","message":"Might be better named; say, `proxy_thread`?","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"525504843caedd4e065ae99fde90e697bc4933e4","unresolved":false,"context_lines":[{"line_number":7333,"context_line":"    server_kwargs.update(extra_server_kwargs)"},{"line_number":7334,"context_line":"    prolis \u003d listen_zero()"},{"line_number":7335,"context_line":"    try:"},{"line_number":7336,"context_line":"        prospa \u003d spawn(wsgi.server, prolis, prosrv, prosrv.logger,"},{"line_number":7337,"context_line":"                       **server_kwargs)"},{"line_number":7338,"context_line":"        yield prolis"},{"line_number":7339,"context_line":"    finally:"}],"source_content_type":"text/x-python","patch_set":3,"id":"b26f2f5c_24c5ef49","line":7336,"range":{"start_line":7336,"start_character":8,"end_line":7336,"end_character":14},"in_reply_to":"0594a762_6fddbf48","updated":"2023-05-07 04:13:37.000000000","message":"Done","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"64161a020360d1a0305eb9d8f20995396f9f3df2","unresolved":true,"context_lines":[{"line_number":8196,"context_line":"            os.rename(self.ec_policy.object_ring.serialized_path + \u0027.bak\u0027,"},{"line_number":8197,"context_line":"                      self.ec_policy.object_ring.serialized_path)"},{"line_number":8198,"context_line":""},{"line_number":8199,"context_line":"    def test_GET_ec_pipeline(self):"},{"line_number":8200,"context_line":"        conf \u003d _test_context[\u0027conf\u0027]"},{"line_number":8201,"context_line":"        conf[\u0027client_timeout\u0027] \u003d 0.1"},{"line_number":8202,"context_line":"        prosrv \u003d proxy_server.Application(conf, logger\u003ddebug_logger(\u0027proxy\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1446832c_937eadef","line":8199,"range":{"start_line":8199,"start_character":17,"end_line":8199,"end_character":19},"updated":"2023-05-05 23:05:42.000000000","message":"Should we have a comparable replicated test? I don\u0027t know that there\u0027s much EC-specific here; would it make sense to hang this off `BaseTestObjectController`?","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"b41ec9bdf5624b18419729a416f423970a1cd239","unresolved":false,"context_lines":[{"line_number":8196,"context_line":"            os.rename(self.ec_policy.object_ring.serialized_path + \u0027.bak\u0027,"},{"line_number":8197,"context_line":"                      self.ec_policy.object_ring.serialized_path)"},{"line_number":8198,"context_line":""},{"line_number":8199,"context_line":"    def test_GET_ec_pipeline(self):"},{"line_number":8200,"context_line":"        conf \u003d _test_context[\u0027conf\u0027]"},{"line_number":8201,"context_line":"        conf[\u0027client_timeout\u0027] \u003d 0.1"},{"line_number":8202,"context_line":"        prosrv \u003d proxy_server.Application(conf, logger\u003ddebug_logger(\u0027proxy\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"90d6c96f_f2992a60","line":8199,"range":{"start_line":8199,"start_character":17,"end_line":8199,"end_character":19},"in_reply_to":"1446832c_937eadef","updated":"2023-05-10 14:53:09.000000000","message":"Done","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"64161a020360d1a0305eb9d8f20995396f9f3df2","unresolved":false,"context_lines":[{"line_number":8201,"context_line":"        conf[\u0027client_timeout\u0027] \u003d 0.1"},{"line_number":8202,"context_line":"        prosrv \u003d proxy_server.Application(conf, logger\u003ddebug_logger(\u0027proxy\u0027))"},{"line_number":8203,"context_line":"        with in_process_proxy("},{"line_number":8204,"context_line":"                prosrv, socket_timeout\u003dconf[\u0027client_timeout\u0027]) as prolis:"},{"line_number":8205,"context_line":"            self.put_container(self.ec_policy.name, self.ec_policy.name,"},{"line_number":8206,"context_line":"                               prolis\u003dprolis)"},{"line_number":8207,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ec371e24_c6e8ec29","line":8204,"range":{"start_line":8204,"start_character":24,"end_line":8204,"end_character":61},"updated":"2023-05-05 23:05:42.000000000","message":"So this override is why we don\u0027t like `_test_sockets[0]` -- and it doesn\u0027t work to go poking at `_test_servers[0]` attributes because the timeout\u0027s set down in eventlet-land. Sure.","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"64161a020360d1a0305eb9d8f20995396f9f3df2","unresolved":true,"context_lines":[{"line_number":8241,"context_line":"            else:"},{"line_number":8242,"context_line":"                self.fail(\"Didn\u0027t find content-length in %r\" % (headers,))"},{"line_number":8243,"context_line":""},{"line_number":8244,"context_line":"            gotten_obj \u003d readlength(fd, content_length)"},{"line_number":8245,"context_line":"            self.assertEqual(gotten_obj, obj)"},{"line_number":8246,"context_line":""},{"line_number":8247,"context_line":"            sleep(1.3)  # client_timeout should kick us off"}],"source_content_type":"text/x-python","patch_set":3,"id":"9c9eab9a_75a0db35","line":8244,"range":{"start_line":8244,"start_character":25,"end_line":8244,"end_character":35},"updated":"2023-05-05 23:05:42.000000000","message":"Is it significant that we use `readlength` here, rather than saying `fd.read(content_length)`?","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"525504843caedd4e065ae99fde90e697bc4933e4","unresolved":false,"context_lines":[{"line_number":8241,"context_line":"            else:"},{"line_number":8242,"context_line":"                self.fail(\"Didn\u0027t find content-length in %r\" % (headers,))"},{"line_number":8243,"context_line":""},{"line_number":8244,"context_line":"            gotten_obj \u003d readlength(fd, content_length)"},{"line_number":8245,"context_line":"            self.assertEqual(gotten_obj, obj)"},{"line_number":8246,"context_line":""},{"line_number":8247,"context_line":"            sleep(1.3)  # client_timeout should kick us off"}],"source_content_type":"text/x-python","patch_set":3,"id":"383fef2d_e0b72cc0","line":8244,"range":{"start_line":8244,"start_character":25,"end_line":8244,"end_character":35},"in_reply_to":"9c9eab9a_75a0db35","updated":"2023-05-07 04:13:37.000000000","message":"Done","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"64161a020360d1a0305eb9d8f20995396f9f3df2","unresolved":true,"context_lines":[{"line_number":8253,"context_line":"            fd.flush()"},{"line_number":8254,"context_line":"            # makefile is a little weird, but this is disconnected"},{"line_number":8255,"context_line":"            self.assertEqual(b\u0027\u0027, fd.read())"},{"line_number":8256,"context_line":"            # I expected this to raise a socket error"},{"line_number":8257,"context_line":"            self.assertEqual(b\u0027\u0027, sock.recv(1024))"},{"line_number":8258,"context_line":"            # ... but we ARE disconnected"},{"line_number":8259,"context_line":"            if PY2:"}],"source_content_type":"text/x-python","patch_set":3,"id":"4ae079ea_a3ecbe5a","line":8256,"updated":"2023-05-05 23:05:42.000000000","message":":-/ Me, too... possibly even on *any* of the various `fd` operations after the sleep. I know I\u0027ve bumped into odd troubles like that writing tests for eventlet: https://github.com/eventlet/eventlet/commit/60a99c86e089731ab8431013fe8d57fdbad52c9a","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"525504843caedd4e065ae99fde90e697bc4933e4","unresolved":false,"context_lines":[{"line_number":8253,"context_line":"            fd.flush()"},{"line_number":8254,"context_line":"            # makefile is a little weird, but this is disconnected"},{"line_number":8255,"context_line":"            self.assertEqual(b\u0027\u0027, fd.read())"},{"line_number":8256,"context_line":"            # I expected this to raise a socket error"},{"line_number":8257,"context_line":"            self.assertEqual(b\u0027\u0027, sock.recv(1024))"},{"line_number":8258,"context_line":"            # ... but we ARE disconnected"},{"line_number":8259,"context_line":"            if PY2:"}],"source_content_type":"text/x-python","patch_set":3,"id":"45215967_c7a1aae6","line":8256,"in_reply_to":"4ae079ea_a3ecbe5a","updated":"2023-05-07 04:13:37.000000000","message":"Ack","commit_id":"ba90ed5eb1ccf2b3e94cb484db493dc5a8cc9ee1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"64161a020360d1a0305eb9d8f20995396f9f3df2","unresolved":true,"context_lines":[{"line_number":8256,"context_line":"            self.assertEqual(b\u0027\u0027, sock.recv(1024))"},{"line_number":8257,"context_line":"            # ... but we ARE disconnected"},{"line_number":8258,"context_line":"            expected_error \u003d socket.error if PY2 else BrokenPipeError"},{"line_number":8259,"context_line":"            self.assertRaises(expected_error, sock.send, b\u0027test\u0027)"},{"line_number":8260,"context_line":"            # and logging confirms we\u0027ve timed out"},{"line_number":8261,"context_line":"            last_debug_msg \u003d prosrv.logger.get_lines_for_level(\u0027debug\u0027)[-1]"},{"line_number":8262,"context_line":"            self.assertIn(\u0027timed out\u0027, last_debug_msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"d84dedc2_b484fcc9","line":8259,"updated":"2023-05-05 23:05:42.000000000","message":"Should we make any assertions about the `errno` being `EPIPE`?\n\nFWIW, on py3 `socket.error` **is** `OSError`, and `BrokenPipeError` is a subclass, so I think something like\n```\nwith self.assertRaises(OSError) as caught:\n    sock.send(b\u0027test\u0027)\nself.assertEqual(caught.exception.errno, errno.EPIPE)\n```\nshould work for both.","commit_id":"ebf0f4ca424252ac5d036d7d76f1275b818a1c78"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0aae22e9b4696abcda37dd6c72f6a675d6500aba","unresolved":false,"context_lines":[{"line_number":8256,"context_line":"            self.assertEqual(b\u0027\u0027, sock.recv(1024))"},{"line_number":8257,"context_line":"            # ... but we ARE disconnected"},{"line_number":8258,"context_line":"            expected_error \u003d socket.error if PY2 else BrokenPipeError"},{"line_number":8259,"context_line":"            self.assertRaises(expected_error, sock.send, b\u0027test\u0027)"},{"line_number":8260,"context_line":"            # and logging confirms we\u0027ve timed out"},{"line_number":8261,"context_line":"            last_debug_msg \u003d prosrv.logger.get_lines_for_level(\u0027debug\u0027)[-1]"},{"line_number":8262,"context_line":"            self.assertIn(\u0027timed out\u0027, last_debug_msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da859648_76c95349","line":8259,"in_reply_to":"23be4058_69f1bb5c","updated":"2023-05-08 18:58:08.000000000","message":"Sorry, I gave you bad advice -- we want\n```\nwith self.assertRaises(socket.error) as caught:\n```","commit_id":"ebf0f4ca424252ac5d036d7d76f1275b818a1c78"},{"author":{"_account_id":35790,"name":"Shreeya Deshpande","email":"shreeyad@nvidia.com","username":"shreeyad"},"change_message_id":"525504843caedd4e065ae99fde90e697bc4933e4","unresolved":false,"context_lines":[{"line_number":8256,"context_line":"            self.assertEqual(b\u0027\u0027, sock.recv(1024))"},{"line_number":8257,"context_line":"            # ... but we ARE disconnected"},{"line_number":8258,"context_line":"            expected_error \u003d socket.error if PY2 else BrokenPipeError"},{"line_number":8259,"context_line":"            self.assertRaises(expected_error, sock.send, b\u0027test\u0027)"},{"line_number":8260,"context_line":"            # and logging confirms we\u0027ve timed out"},{"line_number":8261,"context_line":"            last_debug_msg \u003d prosrv.logger.get_lines_for_level(\u0027debug\u0027)[-1]"},{"line_number":8262,"context_line":"            self.assertIn(\u0027timed out\u0027, last_debug_msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"23be4058_69f1bb5c","line":8259,"in_reply_to":"d84dedc2_b484fcc9","updated":"2023-05-07 04:13:37.000000000","message":"Done","commit_id":"ebf0f4ca424252ac5d036d7d76f1275b818a1c78"}]}
