{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/17096","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/17096/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/17096/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/17096/events","html_url":"https://github.com/grpc/grpc/pull/17096","id":377309044,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI4MjgzNzA4","number":17096,"title":"Make inproc transport properly obey status ordering rules","user":{"login":"vjpai","id":8864912,"node_id":"MDQ6VXNlcjg4NjQ5MTI=","avatar_url":"https://avatars0.githubusercontent.com/u/8864912?v=4","gravatar_id":"","url":"https://api.github.com/users/vjpai","html_url":"https://github.com/vjpai","followers_url":"https://api.github.com/users/vjpai/followers","following_url":"https://api.github.com/users/vjpai/following{/other_user}","gists_url":"https://api.github.com/users/vjpai/gists{/gist_id}","starred_url":"https://api.github.com/users/vjpai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vjpai/subscriptions","organizations_url":"https://api.github.com/users/vjpai/orgs","repos_url":"https://api.github.com/users/vjpai/repos","events_url":"https://api.github.com/users/vjpai/events{/privacy}","received_events_url":"https://api.github.com/users/vjpai/received_events","type":"User","site_admin":false},"labels":[{"id":961832073,"node_id":"MDU6TGFiZWw5NjE4MzIwNzM=","url":"https://api.github.com/repos/grpc/grpc/labels/release%20notes:%20no","name":"release notes: no","color":"0f5f75","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":18,"created_at":"2018-11-05T09:13:05Z","updated_at":"2018-11-05T18:54:21Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/grpc/grpc/pulls/17096","html_url":"https://github.com/grpc/grpc/pull/17096","diff_url":"https://github.com/grpc/grpc/pull/17096.diff","patch_url":"https://github.com/grpc/grpc/pull/17096.patch"},"body":"The inproc transport was subtly violating the [status ordering rules](https://github.com/grpc/grpc/blob/master/doc/status_ordering.md) . This was not visible since only the C++ API was exposing the inproc transport, and the C++ API doesn't request status early (until the callback streaming client API came along). Technically, this was preventing the use of the inproc transport with, for example, Python that does request status early.\r\n"},"comment":{"url":"https://api.github.com/repos/grpc/grpc/issues/comments/435991345","html_url":"https://github.com/grpc/grpc/pull/17096#issuecomment-435991345","issue_url":"https://api.github.com/repos/grpc/grpc/issues/17096","id":435991345,"node_id":"MDEyOklzc3VlQ29tbWVudDQzNTk5MTM0NQ==","user":{"login":"grpc-testing","id":28024233,"node_id":"MDQ6VXNlcjI4MDI0MjMz","avatar_url":"https://avatars1.githubusercontent.com/u/28024233?v=4","gravatar_id":"","url":"https://api.github.com/users/grpc-testing","html_url":"https://github.com/grpc-testing","followers_url":"https://api.github.com/users/grpc-testing/followers","following_url":"https://api.github.com/users/grpc-testing/following{/other_user}","gists_url":"https://api.github.com/users/grpc-testing/gists{/gist_id}","starred_url":"https://api.github.com/users/grpc-testing/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grpc-testing/subscriptions","organizations_url":"https://api.github.com/users/grpc-testing/orgs","repos_url":"https://api.github.com/users/grpc-testing/repos","events_url":"https://api.github.com/users/grpc-testing/events{/privacy}","received_events_url":"https://api.github.com/users/grpc-testing/received_events","type":"User","site_admin":false},"created_at":"2018-11-05T18:54:21Z","updated_at":"2018-11-05T18:54:21Z","author_association":"NONE","body":"```\nCorrupt JSON data (indicates timeout or crash): \n    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.new: 10\n    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.old: 10\n\n\n[microbenchmarks] Performance differences noted:\nBenchmark                                                                 locks_per_iteration\n------------------------------------------------------------------------  ---------------------\nBM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/0           -7%\nBM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/1           -7%\nBM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/2097152     -6%\nBM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/262144      -7%\nBM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/32768       -7%\nBM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/4096        -7%\nBM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/512         -7%\nBM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/64          -7%\nBM_StreamingPingPongMsgs<InProcess, NoOpMutator, NoOpMutator>/8           -7%\nBM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/0        -7%\nBM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/1        -7%\nBM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/2097152  -7%\nBM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/262144   -7%\nBM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/32768    -7%\nBM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/4096     -7%\nBM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/512      -7%\nBM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/64       -7%\nBM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/8        -7%\n```"}}
{"actor":{"display_login":"grpc-testing"}}