{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/5385","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/5385/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/5385/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/5385/events","html_url":"https://github.com/grpc/grpc/pull/5385","id":135979961,"number":5385,"title":"Resolve races on initial metadata","user":{"login":"vjpai","id":8864912,"avatar_url":"https://avatars.githubusercontent.com/u/8864912?v=3","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":[{"url":"https://api.github.com/repos/grpc/grpc/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/grpc/grpc/labels/c++","name":"c++","color":"eb6420"},{"url":"https://api.github.com/repos/grpc/grpc/labels/cla:%20yes","name":"cla: yes","color":"009800"},{"url":"https://api.github.com/repos/grpc/grpc/labels/concurrency","name":"concurrency","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"ctiller","id":10120821,"avatar_url":"https://avatars.githubusercontent.com/u/10120821?v=3","gravatar_id":"","url":"https://api.github.com/users/ctiller","html_url":"https://github.com/ctiller","followers_url":"https://api.github.com/users/ctiller/followers","following_url":"https://api.github.com/users/ctiller/following{/other_user}","gists_url":"https://api.github.com/users/ctiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ctiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctiller/subscriptions","organizations_url":"https://api.github.com/users/ctiller/orgs","repos_url":"https://api.github.com/users/ctiller/repos","events_url":"https://api.github.com/users/ctiller/events{/privacy}","received_events_url":"https://api.github.com/users/ctiller/received_events","type":"User","site_admin":false},"milestone":null,"comments":8,"created_at":"2016-02-24T07:19:28Z","updated_at":"2016-02-25T20:03:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/grpc/grpc/pulls/5385","html_url":"https://github.com/grpc/grpc/pull/5385","diff_url":"https://github.com/grpc/grpc/pull/5385.diff","patch_url":"https://github.com/grpc/grpc/pull/5385.patch"},"body":"This function introduces locked and checked versions of RecvInitialMetadata to resolve races that are reported by tsan running at desktop. FWIW, I do not believe that I have seen these errors at Jenkins.\r\n\r\nThese locked versions must be applied any time that there is a possibility that there may be operations that affect initial metadata (e.g., Read, RecvInitialMetadata, Finish) on different threads. This is essentially any case except for synchronous unary calls. That said, I have never seen these races trigger except for synchronous streams. That said, that could just be because our testing for async is not as good as our testing for sync. \r\n\r\nNote that this does not resolve ASAN flakes. The goal of this is just to resolve TSAN flakes."},"comment":{"url":"https://api.github.com/repos/grpc/grpc/issues/comments/188955955","html_url":"https://github.com/grpc/grpc/pull/5385#issuecomment-188955955","issue_url":"https://api.github.com/repos/grpc/grpc/issues/5385","id":188955955,"user":{"login":"vjpai","id":8864912,"avatar_url":"https://avatars.githubusercontent.com/u/8864912?v=3","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},"created_at":"2016-02-25T20:03:54Z","updated_at":"2016-02-25T20:03:54Z","body":"I think that this PR is completely unneeded. The test that was triggering this particular race was actually poorly-written. The test fix is in PR #5421."}}