)]}'
{"src/c/sbus/sbus.c":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"3ed7736238d82e802d0dd441f3e36bd8f55bdab7","unresolved":true,"context_lines":[{"line_number":179,"context_line":"                           \u0026fdset,"},{"line_number":180,"context_line":"                           (fd_set *)0,"},{"line_number":181,"context_line":"                           (fd_set *)0,"},{"line_number":182,"context_line":"                           (struct timeval*) tvp);"},{"line_number":183,"context_line":"    if ( n_status \u003d\u003d 0 )"},{"line_number":184,"context_line":"    {"},{"line_number":185,"context_line":"        syslog( LOG_DEBUG, \"sbus_listen: Timed out\" );"}],"source_content_type":"text/x-csrc","patch_set":30,"id":"daff6f06_37ceba7d","line":182,"updated":"2021-08-20 05:11:28.000000000","message":"https://man7.org/linux/man-pages/man2/select.2.html\n\nOK. Now the select will give up with the specific tvp timeout value.","commit_id":"b5678a47a9d7ae28b88154700a1996db9d858594"}],"src/c/sbus/sbus.h":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"eee8297cb765cd63ee3e5cc13d14e14045ed2791","unresolved":false,"context_lines":[{"line_number":35,"context_line":"/*----------------------------------------------------------------------------"},{"line_number":36,"context_line":" * sbus_listen"},{"line_number":37,"context_line":" * Suspend the"},{"line_number":38,"context_line":" * returns -1 on error, 0 on timeout, 1 on success"},{"line_number":39,"context_line":" */"},{"line_number":40,"context_line":"extern int sbus_listen( int n_sbus_handle , float f_timeout);"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":20,"id":"3fa7e38b_7d3e308c","line":38,"updated":"2019-11-12 20:52:24.000000000","message":"This feels like a breaking API change... I was expecting something more like -1 on error, 1 on timeout, 0 on success (which preserves the current notion of \"success\").","commit_id":"61136f3496f23ca4e2a7063914e7297fe830937d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"37299c1a2c71ed6b8f8d8eeec7eb981395721a69","unresolved":false,"context_lines":[{"line_number":35,"context_line":"/*----------------------------------------------------------------------------"},{"line_number":36,"context_line":" * sbus_listen"},{"line_number":37,"context_line":" * Suspend the"},{"line_number":38,"context_line":" * returns -1 on error, 0 on timeout, 1 on success"},{"line_number":39,"context_line":" */"},{"line_number":40,"context_line":"extern int sbus_listen( int n_sbus_handle , float f_timeout);"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":20,"id":"3fa7e38b_de9f1b4f","line":38,"in_reply_to":"3fa7e38b_7d3e308c","updated":"2019-11-13 00:27:38.000000000","message":"The pros of this change is that we can align this return code with the ones of select function we call inside sbus_listen.\n\nIn addition, we generally have \u0027if rc \u003c 0\u0027 instead of \u0027if not rc\u0027 to check error, which follows the way in kernel, I don\u0027t think it is not so breaking to replace success return code by 1.","commit_id":"61136f3496f23ca4e2a7063914e7297fe830937d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"3ed7736238d82e802d0dd441f3e36bd8f55bdab7","unresolved":true,"context_lines":[{"line_number":35,"context_line":"/*----------------------------------------------------------------------------"},{"line_number":36,"context_line":" * sbus_listen"},{"line_number":37,"context_line":" * Suspend the"},{"line_number":38,"context_line":" * returns -1 on error, 0 on timeout, 1 on success"},{"line_number":39,"context_line":" */"},{"line_number":40,"context_line":"extern int sbus_listen( int n_sbus_handle , float f_timeout);"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":30,"id":"645bd009_6cf37f1a","line":38,"updated":"2021-08-20 05:11:28.000000000","message":"hmm... in linux world, IIRC, 0 is usually used as success code so the change would not be intuitive.","commit_id":"b5678a47a9d7ae28b88154700a1996db9d858594"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"94bb04af06bad516dac3e312ecc54c8e7aa749ec","unresolved":true,"context_lines":[{"line_number":35,"context_line":"/*----------------------------------------------------------------------------"},{"line_number":36,"context_line":" * sbus_listen"},{"line_number":37,"context_line":" * Suspend the"},{"line_number":38,"context_line":" * returns -1 on error, 0 on timeout, 1 on success"},{"line_number":39,"context_line":" */"},{"line_number":40,"context_line":"extern int sbus_listen( int n_sbus_handle , float f_timeout);"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":30,"id":"805136f1_abf46b7d","line":38,"in_reply_to":"645bd009_6cf37f1a","updated":"2021-08-20 12:56:06.000000000","message":"This follows the return code of select. Another option is to use -2 for timeout and 0 for success but I hesitate adding something we define by ourselves.","commit_id":"b5678a47a9d7ae28b88154700a1996db9d858594"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"388dd472ded57f70685ef7e4780c4ba49b4385a3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"/*----------------------------------------------------------------------------"},{"line_number":36,"context_line":" * sbus_listen"},{"line_number":37,"context_line":" * Suspend the"},{"line_number":38,"context_line":" * returns -1 on error, 0 on timeout, 1 on success"},{"line_number":39,"context_line":" */"},{"line_number":40,"context_line":"extern int sbus_listen( int n_sbus_handle , float f_timeout);"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":30,"id":"6042a291_4cc29a0f","line":38,"in_reply_to":"805136f1_abf46b7d","updated":"2021-08-30 05:56:09.000000000","message":"I see. The return code may be 0 when the timeout expired.\n\nhttps://man7.org/linux/man-pages/man2/select.2.html#RETURN_VALUE\n\nI\u0027m not sure the \"may be\" can be assumed we hav 0 always tho.","commit_id":"b5678a47a9d7ae28b88154700a1996db9d858594"}],"storlets/agent/common/server.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"eee8297cb765cd63ee3e5cc13d14e14045ed2791","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                loop_cnt +\u003d 1"},{"line_number":188,"context_line":"                if loop_cnt * self.loop_timeout \u003e\u003d self.listen_timeout:"},{"line_number":189,"context_line":"                    self.logger.debug(\"Timed out while listening. exiting.\")"},{"line_number":190,"context_line":"                    break"},{"line_number":191,"context_line":"                continue"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"            loop_cnt \u003d 0"}],"source_content_type":"text/x-python","patch_set":20,"id":"3fa7e38b_bd5d88ed","line":190,"updated":"2019-11-12 20:52:24.000000000","message":"No\n\n status \u003d EXIT_TIMEOUT\n\n? I think this will look like success, then, yeah?","commit_id":"61136f3496f23ca4e2a7063914e7297fe830937d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"37299c1a2c71ed6b8f8d8eeec7eb981395721a69","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                loop_cnt +\u003d 1"},{"line_number":188,"context_line":"                if loop_cnt * self.loop_timeout \u003e\u003d self.listen_timeout:"},{"line_number":189,"context_line":"                    self.logger.debug(\"Timed out while listening. exiting.\")"},{"line_number":190,"context_line":"                    break"},{"line_number":191,"context_line":"                continue"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"            loop_cnt \u003d 0"}],"source_content_type":"text/x-python","patch_set":20,"id":"3fa7e38b_1eaff37d","line":190,"in_reply_to":"3fa7e38b_bd5d88ed","updated":"2019-11-13 00:27:38.000000000","message":"I think that timeout is still another expected case, we don\u0027t need to return an error code here.","commit_id":"61136f3496f23ca4e2a7063914e7297fe830937d"}],"storlets/gateway/gateways/docker/runtime.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"3ed7736238d82e802d0dd441f3e36bd8f55bdab7","unresolved":true,"context_lines":[{"line_number":323,"context_line":"            client.containers.run("},{"line_number":324,"context_line":"                docker_image_name, detach\u003dTrue, name\u003ddocker_container_name,"},{"line_number":325,"context_line":"                network_disabled\u003dTrue, mounts\u003dmounts, user\u003d\u0027swift\u0027,"},{"line_number":326,"context_line":"                auto_remove\u003dTrue)"},{"line_number":327,"context_line":"        except docker.errors.ImageNotFound:"},{"line_number":328,"context_line":"            msg \u003d \"Image %s is not found\" % docker_image_name"},{"line_number":329,"context_line":"            raise StorletRuntimeException(msg)"}],"source_content_type":"text/x-python","patch_set":30,"id":"ab48f1b1_42073021","line":326,"updated":"2021-08-20 05:11:28.000000000","message":"auto_remove seems good idea. However, it might have side-effect that we cannot make a hot-node (i.e. re-use running images) anymore, right?","commit_id":"b5678a47a9d7ae28b88154700a1996db9d858594"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"388dd472ded57f70685ef7e4780c4ba49b4385a3","unresolved":true,"context_lines":[{"line_number":323,"context_line":"            client.containers.run("},{"line_number":324,"context_line":"                docker_image_name, detach\u003dTrue, name\u003ddocker_container_name,"},{"line_number":325,"context_line":"                network_disabled\u003dTrue, mounts\u003dmounts, user\u003d\u0027swift\u0027,"},{"line_number":326,"context_line":"                auto_remove\u003dTrue)"},{"line_number":327,"context_line":"        except docker.errors.ImageNotFound:"},{"line_number":328,"context_line":"            msg \u003d \"Image %s is not found\" % docker_image_name"},{"line_number":329,"context_line":"            raise StorletRuntimeException(msg)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1fe2dda8_28bbf34d","line":326,"in_reply_to":"000cebea_9b1010b1","updated":"2021-08-30 05:56:09.000000000","message":"OK. Let\u0027s use it.","commit_id":"b5678a47a9d7ae28b88154700a1996db9d858594"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"93cb6ac04cf73af14aec18a437c9266dbd079d49","unresolved":true,"context_lines":[{"line_number":323,"context_line":"            client.containers.run("},{"line_number":324,"context_line":"                docker_image_name, detach\u003dTrue, name\u003ddocker_container_name,"},{"line_number":325,"context_line":"                network_disabled\u003dTrue, mounts\u003dmounts, user\u003d\u0027swift\u0027,"},{"line_number":326,"context_line":"                auto_remove\u003dTrue)"},{"line_number":327,"context_line":"        except docker.errors.ImageNotFound:"},{"line_number":328,"context_line":"            msg \u003d \"Image %s is not found\" % docker_image_name"},{"line_number":329,"context_line":"            raise StorletRuntimeException(msg)"}],"source_content_type":"text/x-python","patch_set":30,"id":"000cebea_9b1010b1","line":326,"in_reply_to":"ab48f1b1_42073021","updated":"2021-08-20 13:00:00.000000000","message":"You are correct. When auto_remove is enabled then a container is deleted when it terminates(likely because of timeout). So when a next request comes then we need to spawn a new container here.\nHowever in general spawning a new container is a light-waight operation because a container images are already in this node.","commit_id":"b5678a47a9d7ae28b88154700a1996db9d858594"}],"tests/unit/agent/common/test_server.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"3ed7736238d82e802d0dd441f3e36bd8f55bdab7","unresolved":true,"context_lines":[{"line_number":180,"context_line":"        self.assertEqual([], self.logger.get_log_lines(\u0027error\u0027))"},{"line_number":181,"context_line":"        self.assertEqual([], self.logger.get_log_lines(\u0027warn\u0027))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def _test_main_loop_timeout(self):"},{"line_number":184,"context_line":"        scenario \u003d ["},{"line_number":185,"context_line":"            (\u0027create\u0027, 1),"},{"line_number":186,"context_line":"            (\u0027listen\u0027, 0),"}],"source_content_type":"text/x-python","patch_set":30,"id":"7c8abc59_deab8f77","line":183,"updated":"2021-08-20 05:11:28.000000000","message":"Is this actually something like `set timeout but success in the meaning time`?\n\nBecause any timeout exception occurred in the test.","commit_id":"b5678a47a9d7ae28b88154700a1996db9d858594"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"94bb04af06bad516dac3e312ecc54c8e7aa749ec","unresolved":true,"context_lines":[{"line_number":180,"context_line":"        self.assertEqual([], self.logger.get_log_lines(\u0027error\u0027))"},{"line_number":181,"context_line":"        self.assertEqual([], self.logger.get_log_lines(\u0027warn\u0027))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def _test_main_loop_timeout(self):"},{"line_number":184,"context_line":"        scenario \u003d ["},{"line_number":185,"context_line":"            (\u0027create\u0027, 1),"},{"line_number":186,"context_line":"            (\u0027listen\u0027, 0),"}],"source_content_type":"text/x-python","patch_set":30,"id":"d845c750_913cab4c","line":183,"in_reply_to":"7c8abc59_deab8f77","updated":"2021-08-20 12:56:06.000000000","message":"This tests the scenario that the server doesn\u0027t receive any message within timeout and shutdown automatically. The timeout is set to 4 * loop and the listen method times out 4 times.","commit_id":"b5678a47a9d7ae28b88154700a1996db9d858594"}]}
