{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/13022","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/13022/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/13022/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/13022/events","html_url":"https://github.com/grpc/grpc/pull/13022","id":265854936,"number":13022,"title":"Modify TSI test library to correctly handle the case of TSI_INCOMPLETE_DATA","user":{"login":"yihuazhang","id":26934891,"avatar_url":"https://avatars2.githubusercontent.com/u/26934891?v=4","gravatar_id":"","url":"https://api.github.com/users/yihuazhang","html_url":"https://github.com/yihuazhang","followers_url":"https://api.github.com/users/yihuazhang/followers","following_url":"https://api.github.com/users/yihuazhang/following{/other_user}","gists_url":"https://api.github.com/users/yihuazhang/gists{/gist_id}","starred_url":"https://api.github.com/users/yihuazhang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yihuazhang/subscriptions","organizations_url":"https://api.github.com/users/yihuazhang/orgs","repos_url":"https://api.github.com/users/yihuazhang/repos","events_url":"https://api.github.com/users/yihuazhang/events{/privacy}","received_events_url":"https://api.github.com/users/yihuazhang/received_events","type":"User","site_admin":false},"labels":[{"id":170781264,"url":"https://api.github.com/repos/grpc/grpc/labels/cla:%20yes","name":"cla: yes","color":"009800","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2017-10-16T17:43:52Z","updated_at":"2017-10-30T16:14:04Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/grpc/grpc/pulls/13022","html_url":"https://github.com/grpc/grpc/pull/13022","diff_url":"https://github.com/grpc/grpc/pull/13022.diff","patch_url":"https://github.com/grpc/grpc/pull/13022.patch"},"body":"In TSI handshakes, tsi_handshaker_next() (or callback function in async implementation) will return TSI_INCOMPLETE_DATA when the data provided to handshaker service is not enough (i.e., incomplete) to start being processed. It is used as a notification mechanism to remind a TSI caller to read more bytes from endpoint and invoke tsi_handshaker_next() again. The process should be repeated until either all data has been read  (return TSI_OK) or an error occurs. This behavior is also consistent in the way how security_handshaker handles the similar problem. That is, when the data received from the network is split into multiple messages, a  grpc caller will repeatedly invoke grpc_endpoint_read() and do_handshaker_next_locked() in a chained manner until all messages are read and passed to the handshaker service.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/grpc/grpc/issues/comments/340496583","html_url":"https://github.com/grpc/grpc/pull/13022#issuecomment-340496583","issue_url":"https://api.github.com/repos/grpc/grpc/issues/13022","id":340496583,"user":{"login":"yihuazhang","id":26934891,"avatar_url":"https://avatars2.githubusercontent.com/u/26934891?v=4","gravatar_id":"","url":"https://api.github.com/users/yihuazhang","html_url":"https://github.com/yihuazhang","followers_url":"https://api.github.com/users/yihuazhang/followers","following_url":"https://api.github.com/users/yihuazhang/following{/other_user}","gists_url":"https://api.github.com/users/yihuazhang/gists{/gist_id}","starred_url":"https://api.github.com/users/yihuazhang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yihuazhang/subscriptions","organizations_url":"https://api.github.com/users/yihuazhang/orgs","repos_url":"https://api.github.com/users/yihuazhang/repos","events_url":"https://api.github.com/users/yihuazhang/events{/privacy}","received_events_url":"https://api.github.com/users/yihuazhang/received_events","type":"User","site_admin":false},"created_at":"2017-10-30T16:14:04Z","updated_at":"2017-10-30T16:14:04Z","author_association":"CONTRIBUTOR","body":"Hi Mark, \r\n\r\nIs it possible to re-trigger the Jenkins test? as I did not see any relation between the broken tests and my PR. \r\n\r\nBest, \r\nYihua"}}
{"actor":{"display_login":"yihuazhang"}}