{"action":"created","comment":{"url":"https://api.github.com/repos/markdroth/grpc/pulls/comments/83761302","pull_request_review_id":4583207,"id":83761302,"diff_hunk":"@@ -477,22 +477,27 @@ function statusCodeAndMessage($stub)\n     list($result, $status) = $call->wait();\n \n     hardAssert($status->code === 2,\n-               'Received unexpected status code');\n+               'Received unexpected UnaryCall status code: ' .\n+               $status->code);\n     hardAssert($status->details === 'test status message',\n-               'Received unexpected status details');\n+               'Received unexpected UnaryCall status details: ' .\n+               $status->details);\n \n     $streaming_call = $stub->FullDuplexCall();\n \n     $streaming_request = new grpc\\testing\\StreamingOutputCallRequest();\n     $streaming_request->setResponseStatus($echo_status);\n     $streaming_call->write($streaming_request);\n     $streaming_call->writesDone();\n+    $result = $streaming_call->read();","path":"src/php/tests/interop/interop_client.php","position":18,"original_position":18,"commit_id":"1065452f3264c2133af20cf23fcaa9e90586b6c5","original_commit_id":"1065452f3264c2133af20cf23fcaa9e90586b6c5","user":{"login":"murgatroid99","id":961599,"avatar_url":"https://avatars.githubusercontent.com/u/961599?v=3","gravatar_id":"","url":"https://api.github.com/users/murgatroid99","html_url":"https://github.com/murgatroid99","followers_url":"https://api.github.com/users/murgatroid99/followers","following_url":"https://api.github.com/users/murgatroid99/following{/other_user}","gists_url":"https://api.github.com/users/murgatroid99/gists{/gist_id}","starred_url":"https://api.github.com/users/murgatroid99/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/murgatroid99/subscriptions","organizations_url":"https://api.github.com/users/murgatroid99/orgs","repos_url":"https://api.github.com/users/murgatroid99/repos","events_url":"https://api.github.com/users/murgatroid99/events{/privacy}","received_events_url":"https://api.github.com/users/murgatroid99/received_events","type":"User","site_admin":false},"body":"That is correct. The way I see it, any bidirectional streaming method has at least the possibility of the server returning at least one message, so the client should always do a read to check if there are any incoming messages.","created_at":"2016-10-18T00:16:52Z","updated_at":"2016-10-18T00:16:52Z","html_url":"https://github.com/markdroth/grpc/pull/3#discussion_r83761302","pull_request_url":"https://api.github.com/repos/markdroth/grpc/pulls/3","_links":{"self":{"href":"https://api.github.com/repos/markdroth/grpc/pulls/comments/83761302"},"html":{"href":"https://github.com/markdroth/grpc/pull/3#discussion_r83761302"},"pull_request":{"href":"https://api.github.com/repos/markdroth/grpc/pulls/3"}}},"pull_request":{"url":"https://api.github.com/repos/markdroth/grpc/pulls/3","id":89683333,"html_url":"https://github.com/markdroth/grpc/pull/3","diff_url":"https://github.com/markdroth/grpc/pull/3.diff","patch_url":"https://github.com/markdroth/grpc/pull/3.patch","issue_url":"https://api.github.com/repos/markdroth/grpc/issues/3","number":3,"state":"open","locked":false,"title":"Fix php interop client for status_code_and_message test","user":{"login":"stanley-cheung","id":11674202,"avatar_url":"https://avatars.githubusercontent.com/u/11674202?v=3","gravatar_id":"","url":"https://api.github.com/users/stanley-cheung","html_url":"https://github.com/stanley-cheung","followers_url":"https://api.github.com/users/stanley-cheung/followers","following_url":"https://api.github.com/users/stanley-cheung/following{/other_user}","gists_url":"https://api.github.com/users/stanley-cheung/gists{/gist_id}","starred_url":"https://api.github.com/users/stanley-cheung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stanley-cheung/subscriptions","organizations_url":"https://api.github.com/users/stanley-cheung/orgs","repos_url":"https://api.github.com/users/stanley-cheung/repos","events_url":"https://api.github.com/users/stanley-cheung/events{/privacy}","received_events_url":"https://api.github.com/users/stanley-cheung/received_events","type":"User","site_admin":false},"body":"Fix PHP interop test client for the status_code_and_message test. The `streaming_call->read()` line is required for bidi-streaming in PHP and it was missed. That will send the `OP_RECV_INITIAL_METADATA` op which is required.","created_at":"2016-10-17T19:08:19Z","updated_at":"2016-10-18T00:16:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b238dc9f6324de20a05e538206bebfe339fe065d","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/markdroth/grpc/pulls/3/commits","review_comments_url":"https://api.github.com/repos/markdroth/grpc/pulls/3/comments","review_comment_url":"https://api.github.com/repos/markdroth/grpc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/markdroth/grpc/issues/3/comments","statuses_url":"https://api.github.com/repos/markdroth/grpc/statuses/1065452f3264c2133af20cf23fcaa9e90586b6c5","head":{"label":"stanley-cheung:run_interop_tests_go","ref":"run_interop_tests_go","sha":"1065452f3264c2133af20cf23fcaa9e90586b6c5","user":{"login":"stanley-cheung","id":11674202,"avatar_url":"https://avatars.githubusercontent.com/u/11674202?v=3","gravatar_id":"","url":"https://api.github.com/users/stanley-cheung","html_url":"https://github.com/stanley-cheung","followers_url":"https://api.github.com/users/stanley-cheung/followers","following_url":"https://api.github.com/users/stanley-cheung/following{/other_user}","gists_url":"https://api.github.com/users/stanley-cheung/gists{/gist_id}","starred_url":"https://api.github.com/users/stanley-cheung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stanley-cheung/subscriptions","organizations_url":"https://api.github.com/users/stanley-cheung/orgs","repos_url":"https://api.github.com/users/stanley-cheung/repos","events_url":"https://api.github.com/users/stanley-cheung/events{/privacy}","received_events_url":"https://api.github.com/users/stanley-cheung/received_events","type":"User","site_admin":false},"repo":{"id":33006732,"name":"grpc","full_name":"stanley-cheung/grpc","owner":{"login":"stanley-cheung","id":11674202,"avatar_url":"https://avatars.githubusercontent.com/u/11674202?v=3","gravatar_id":"","url":"https://api.github.com/users/stanley-cheung","html_url":"https://github.com/stanley-cheung","followers_url":"https://api.github.com/users/stanley-cheung/followers","following_url":"https://api.github.com/users/stanley-cheung/following{/other_user}","gists_url":"https://api.github.com/users/stanley-cheung/gists{/gist_id}","starred_url":"https://api.github.com/users/stanley-cheung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stanley-cheung/subscriptions","organizations_url":"https://api.github.com/users/stanley-cheung/orgs","repos_url":"https://api.github.com/users/stanley-cheung/repos","events_url":"https://api.github.com/users/stanley-cheung/events{/privacy}","received_events_url":"https://api.github.com/users/stanley-cheung/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/stanley-cheung/grpc","description":"The C based gRPC (C++, Node.js, Python, Ruby, Objective-C, PHP, C#)","fork":true,"url":"https://api.github.com/repos/stanley-cheung/grpc","forks_url":"https://api.github.com/repos/stanley-cheung/grpc/forks","keys_url":"https://api.github.com/repos/stanley-cheung/grpc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stanley-cheung/grpc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stanley-cheung/grpc/teams","hooks_url":"https://api.github.com/repos/stanley-cheung/grpc/hooks","issue_events_url":"https://api.github.com/repos/stanley-cheung/grpc/issues/events{/number}","events_url":"https://api.github.com/repos/stanley-cheung/grpc/events","assignees_url":"https://api.github.com/repos/stanley-cheung/grpc/assignees{/user}","branches_url":"https://api.github.com/repos/stanley-cheung/grpc/branches{/branch}","tags_url":"https://api.github.com/repos/stanley-cheung/grpc/tags","blobs_url":"https://api.github.com/repos/stanley-cheung/grpc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stanley-cheung/grpc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stanley-cheung/grpc/git/refs{/sha}","trees_url":"https://api.github.com/repos/stanley-cheung/grpc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stanley-cheung/grpc/statuses/{sha}","languages_url":"https://api.github.com/repos/stanley-cheung/grpc/languages","stargazers_url":"https://api.github.com/repos/stanley-cheung/grpc/stargazers","contributors_url":"https://api.github.com/repos/stanley-cheung/grpc/contributors","subscribers_url":"https://api.github.com/repos/stanley-cheung/grpc/subscribers","subscription_url":"https://api.github.com/repos/stanley-cheung/grpc/subscription","commits_url":"https://api.github.com/repos/stanley-cheung/grpc/commits{/sha}","git_commits_url":"https://api.github.com/repos/stanley-cheung/grpc/git/commits{/sha}","comments_url":"https://api.github.com/repos/stanley-cheung/grpc/comments{/number}","issue_comment_url":"https://api.github.com/repos/stanley-cheung/grpc/issues/comments{/number}","contents_url":"https://api.github.com/repos/stanley-cheung/grpc/contents/{+path}","compare_url":"https://api.github.com/repos/stanley-cheung/grpc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stanley-cheung/grpc/merges","archive_url":"https://api.github.com/repos/stanley-cheung/grpc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stanley-cheung/grpc/downloads","issues_url":"https://api.github.com/repos/stanley-cheung/grpc/issues{/number}","pulls_url":"https://api.github.com/repos/stanley-cheung/grpc/pulls{/number}","milestones_url":"https://api.github.com/repos/stanley-cheung/grpc/milestones{/number}","notifications_url":"https://api.github.com/repos/stanley-cheung/grpc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stanley-cheung/grpc/labels{/name}","releases_url":"https://api.github.com/repos/stanley-cheung/grpc/releases{/id}","deployments_url":"https://api.github.com/repos/stanley-cheung/grpc/deployments","created_at":"2015-03-27T20:03:59Z","updated_at":"2016-01-12T00:09:20Z","pushed_at":"2016-10-17T19:06:16Z","git_url":"git://github.com/stanley-cheung/grpc.git","ssh_url":"git@github.com:stanley-cheung/grpc.git","clone_url":"https://github.com/stanley-cheung/grpc.git","svn_url":"https://github.com/stanley-cheung/grpc","homepage":"","size":78260,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"markdroth:run_interop_tests_go","ref":"run_interop_tests_go","sha":"90576b1b67f48a1581f6cf36626118e5035d16d1","user":{"login":"markdroth","id":18664614,"avatar_url":"https://avatars.githubusercontent.com/u/18664614?v=3","gravatar_id":"","url":"https://api.github.com/users/markdroth","html_url":"https://github.com/markdroth","followers_url":"https://api.github.com/users/markdroth/followers","following_url":"https://api.github.com/users/markdroth/following{/other_user}","gists_url":"https://api.github.com/users/markdroth/gists{/gist_id}","starred_url":"https://api.github.com/users/markdroth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markdroth/subscriptions","organizations_url":"https://api.github.com/users/markdroth/orgs","repos_url":"https://api.github.com/users/markdroth/repos","events_url":"https://api.github.com/users/markdroth/events{/privacy}","received_events_url":"https://api.github.com/users/markdroth/received_events","type":"User","site_admin":false},"repo":{"id":57141284,"name":"grpc","full_name":"markdroth/grpc","owner":{"login":"markdroth","id":18664614,"avatar_url":"https://avatars.githubusercontent.com/u/18664614?v=3","gravatar_id":"","url":"https://api.github.com/users/markdroth","html_url":"https://github.com/markdroth","followers_url":"https://api.github.com/users/markdroth/followers","following_url":"https://api.github.com/users/markdroth/following{/other_user}","gists_url":"https://api.github.com/users/markdroth/gists{/gist_id}","starred_url":"https://api.github.com/users/markdroth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markdroth/subscriptions","organizations_url":"https://api.github.com/users/markdroth/orgs","repos_url":"https://api.github.com/users/markdroth/repos","events_url":"https://api.github.com/users/markdroth/events{/privacy}","received_events_url":"https://api.github.com/users/markdroth/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/markdroth/grpc","description":"The C based gRPC (C++, Node.js, Python, Ruby, Objective-C, PHP, C#)","fork":true,"url":"https://api.github.com/repos/markdroth/grpc","forks_url":"https://api.github.com/repos/markdroth/grpc/forks","keys_url":"https://api.github.com/repos/markdroth/grpc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/markdroth/grpc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/markdroth/grpc/teams","hooks_url":"https://api.github.com/repos/markdroth/grpc/hooks","issue_events_url":"https://api.github.com/repos/markdroth/grpc/issues/events{/number}","events_url":"https://api.github.com/repos/markdroth/grpc/events","assignees_url":"https://api.github.com/repos/markdroth/grpc/assignees{/user}","branches_url":"https://api.github.com/repos/markdroth/grpc/branches{/branch}","tags_url":"https://api.github.com/repos/markdroth/grpc/tags","blobs_url":"https://api.github.com/repos/markdroth/grpc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/markdroth/grpc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/markdroth/grpc/git/refs{/sha}","trees_url":"https://api.github.com/repos/markdroth/grpc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/markdroth/grpc/statuses/{sha}","languages_url":"https://api.github.com/repos/markdroth/grpc/languages","stargazers_url":"https://api.github.com/repos/markdroth/grpc/stargazers","contributors_url":"https://api.github.com/repos/markdroth/grpc/contributors","subscribers_url":"https://api.github.com/repos/markdroth/grpc/subscribers","subscription_url":"https://api.github.com/repos/markdroth/grpc/subscription","commits_url":"https://api.github.com/repos/markdroth/grpc/commits{/sha}","git_commits_url":"https://api.github.com/repos/markdroth/grpc/git/commits{/sha}","comments_url":"https://api.github.com/repos/markdroth/grpc/comments{/number}","issue_comment_url":"https://api.github.com/repos/markdroth/grpc/issues/comments{/number}","contents_url":"https://api.github.com/repos/markdroth/grpc/contents/{+path}","compare_url":"https://api.github.com/repos/markdroth/grpc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/markdroth/grpc/merges","archive_url":"https://api.github.com/repos/markdroth/grpc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/markdroth/grpc/downloads","issues_url":"https://api.github.com/repos/markdroth/grpc/issues{/number}","pulls_url":"https://api.github.com/repos/markdroth/grpc/pulls{/number}","milestones_url":"https://api.github.com/repos/markdroth/grpc/milestones{/number}","notifications_url":"https://api.github.com/repos/markdroth/grpc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/markdroth/grpc/labels{/name}","releases_url":"https://api.github.com/repos/markdroth/grpc/releases{/id}","deployments_url":"https://api.github.com/repos/markdroth/grpc/deployments","created_at":"2016-04-26T15:47:18Z","updated_at":"2016-04-26T15:47:26Z","pushed_at":"2016-10-17T19:08:19Z","git_url":"git://github.com/markdroth/grpc.git","ssh_url":"git@github.com:markdroth/grpc.git","clone_url":"https://github.com/markdroth/grpc.git","svn_url":"https://github.com/markdroth/grpc","homepage":"","size":84681,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/markdroth/grpc/pulls/3"},"html":{"href":"https://github.com/markdroth/grpc/pull/3"},"issue":{"href":"https://api.github.com/repos/markdroth/grpc/issues/3"},"comments":{"href":"https://api.github.com/repos/markdroth/grpc/issues/3/comments"},"review_comments":{"href":"https://api.github.com/repos/markdroth/grpc/pulls/3/comments"},"review_comment":{"href":"https://api.github.com/repos/markdroth/grpc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/markdroth/grpc/pulls/3/commits"},"statuses":{"href":"https://api.github.com/repos/markdroth/grpc/statuses/1065452f3264c2133af20cf23fcaa9e90586b6c5"}}}}
{"actor":{"display_login":"murgatroid99"}}