)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ac01875d15832335d1d6d2bbedaa6e2cb6ce286b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix FD leak in storlet_gateway"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"storlet_gateway leaks the FD of \"input_data_read_fd\" in PUT request of storlet python."},{"line_number":10,"context_line":"This patch prevent to leak the FD of \"input_data_read_fd\"."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ic61049e18f450ec3b0b0e7bae9d55b889f80baf3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa6399be_1f02c409","line":9,"range":{"start_line":9,"start_character":79,"end_line":9,"end_character":85},"updated":"2016-10-19 03:03:31.000000000","message":"Is this really happen only for python storlet?","commit_id":"f45b7986b417cd1935f926ff2cf351c7131995f9"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ac01875d15832335d1d6d2bbedaa6e2cb6ce286b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix FD leak in storlet_gateway"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"storlet_gateway leaks the FD of \"input_data_read_fd\" in PUT request of storlet python."},{"line_number":10,"context_line":"This patch prevent to leak the FD of \"input_data_read_fd\"."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ic61049e18f450ec3b0b0e7bae9d55b889f80baf3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa6399be_ec2acc8f","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":86},"updated":"2016-10-19 03:03:31.000000000","message":"This line seems too long to me.\n\nBased on the guidline in community [1], \"Subsequent lines should be wrapped at 72 characters.\"\n\n[1] https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"f45b7986b417cd1935f926ff2cf351c7131995f9"}],"Engine/swift/storlet_gateway/gateways/docker/runtime.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"3f82f96fa6aef819ac66c4cf31526d9d64151f11","unresolved":false,"context_lines":[{"line_number":663,"context_line":"        fds \u003d [self.data_write_fd, self.metadata_write_fd,"},{"line_number":664,"context_line":"               self.execution_str_write_fd]"},{"line_number":665,"context_line":"        if not self.srequest.has_fd:"},{"line_number":666,"context_line":"            fds.insert(0, self.input_data_read_fd)"},{"line_number":667,"context_line":"        fds.extend([source[\u0027read_fd\u0027] for source in self.extra_data_sources])"},{"line_number":668,"context_line":"        self._safe_close(fds)"},{"line_number":669,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_0c88e021","line":666,"updated":"2016-10-19 02:32:52.000000000","message":"I\u0027m curious why we need the read fd should be at the first item in the fds list. Should we keep the order? AFAIK, the answer is no. just fds.append(self.input_data_read_fd) seems ok.","commit_id":"aaecf035fd78f4ca9dcb402aaf536e77e5a7f0d5"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ac01875d15832335d1d6d2bbedaa6e2cb6ce286b","unresolved":false,"context_lines":[{"line_number":662,"context_line":"        \"\"\""},{"line_number":663,"context_line":"        fds \u003d [self.data_write_fd, self.metadata_write_fd,"},{"line_number":664,"context_line":"               self.execution_str_write_fd]"},{"line_number":665,"context_line":"        if not self.srequest.has_fd:"},{"line_number":666,"context_line":"            fds.append(self.input_data_read_fd)"},{"line_number":667,"context_line":"        fds.extend([source[\u0027read_fd\u0027] for source in self.extra_data_sources])"},{"line_number":668,"context_line":"        self._safe_close(fds)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_3f578803","line":665,"range":{"start_line":665,"start_character":15,"end_line":665,"end_character":35},"updated":"2016-10-19 03:03:31.000000000","message":"IMO it is better to have an attribute for this in gateway class, because this is a flag to affect behavior in gateway class.\n\nI\u0027ll think this as follow-up.","commit_id":"f45b7986b417cd1935f926ff2cf351c7131995f9"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ac01875d15832335d1d6d2bbedaa6e2cb6ce286b","unresolved":false,"context_lines":[{"line_number":663,"context_line":"        fds \u003d [self.data_write_fd, self.metadata_write_fd,"},{"line_number":664,"context_line":"               self.execution_str_write_fd]"},{"line_number":665,"context_line":"        if not self.srequest.has_fd:"},{"line_number":666,"context_line":"            fds.append(self.input_data_read_fd)"},{"line_number":667,"context_line":"        fds.extend([source[\u0027read_fd\u0027] for source in self.extra_data_sources])"},{"line_number":668,"context_line":"        self._safe_close(fds)"},{"line_number":669,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_9f35f4dc","line":666,"range":{"start_line":666,"start_character":12,"end_line":666,"end_character":47},"updated":"2016-10-19 03:03:31.000000000","message":"Can you write a note why we don\u0027t need to close fd in zero-copy case?","commit_id":"f45b7986b417cd1935f926ff2cf351c7131995f9"}],"tests/unit/swift/storlet_gateway/gateways/docker/test_runtime.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c4cd8586d3fc3f22436c0e0563967e77a2863a08","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            pipes \u003d iter(pipes)"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"            # data write is not directly closed"},{"line_number":403,"context_line":"            # data read is closed by remote"},{"line_number":404,"context_line":"            input_data_read_fd, input_data_write_fd \u003d next(pipes)"},{"line_number":405,"context_line":"            self.assertTrue(input_data_read_fd.closed)"},{"line_number":406,"context_line":"            self.assertFalse(input_data_write_fd.closed)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_a7951b41","line":403,"range":{"start_line":403,"start_character":12,"end_line":403,"end_character":43},"updated":"2016-10-20 01:41:12.000000000","message":"This comment should be updated","commit_id":"b5d56c3313f7fab1f5401cacca71234ee4fb939e"}]}
