{"action":"closed","number":31,"pull_request":{"url":"https://api.github.com/repos/snikch/goodman/pulls/31","id":126788493,"html_url":"https://github.com/snikch/goodman/pull/31","diff_url":"https://github.com/snikch/goodman/pull/31.diff","patch_url":"https://github.com/snikch/goodman/pull/31.patch","issue_url":"https://api.github.com/repos/snikch/goodman/issues/31","number":31,"state":"closed","locked":false,"title":"Fix a data race between Cmd.Run and Process.Kill","user":{"login":"IngmarStein","id":490610,"avatar_url":"https://avatars2.githubusercontent.com/u/490610?v=3","gravatar_id":"","url":"https://api.github.com/users/IngmarStein","html_url":"https://github.com/IngmarStein","followers_url":"https://api.github.com/users/IngmarStein/followers","following_url":"https://api.github.com/users/IngmarStein/following{/other_user}","gists_url":"https://api.github.com/users/IngmarStein/gists{/gist_id}","starred_url":"https://api.github.com/users/IngmarStein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IngmarStein/subscriptions","organizations_url":"https://api.github.com/users/IngmarStein/orgs","repos_url":"https://api.github.com/users/IngmarStein/repos","events_url":"https://api.github.com/users/IngmarStein/events{/privacy}","received_events_url":"https://api.github.com/users/IngmarStein/received_events","type":"User","site_admin":false},"body":"Replacing Cmd.Run with Cmd.Start + Cmd.Wait fixes the following data race:\r\n```\r\n==================\r\nWARNING: DATA RACE\r\nRead at 0x00c420062e60 by main goroutine:\r\n  main.closeHooksServers()\r\n      github.com/snikch/goodman/cmd/goodman/main.go:89 +0xd9\r\n  main.main()\r\n      github.com/snikch/goodman/cmd/goodman/main.go:82 +0xb56\r\n\r\nPrevious write at 0x00c420062e60 by goroutine 10:\r\n  os/exec.(*Cmd).Start()\r\n      /usr/local/go/src/os/exec/exec.go:354 +0x78c\r\n  os/exec.(*Cmd).Run()\r\n      /usr/local/go/src/os/exec/exec.go:277 +0x3c\r\n  main.main.func2()\r\n      github.com/snikch/goodman/cmd/goodman/main.go:50 +0x70\r\n\r\nGoroutine 10 (running) created at:\r\n  main.main()\r\n      github.com/snikch/goodman/cmd/goodman/main.go:54 +0x6cc\r\n==================\r\n```","created_at":"2017-06-21T15:09:00Z","updated_at":"2017-06-22T09:31:32Z","closed_at":"2017-06-22T09:31:32Z","merged_at":"2017-06-22T09:31:32Z","merge_commit_sha":"3b65f3e04f92d05e0bdf805fbf137f82f01a1730","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/snikch/goodman/pulls/31/commits","review_comments_url":"https://api.github.com/repos/snikch/goodman/pulls/31/comments","review_comment_url":"https://api.github.com/repos/snikch/goodman/pulls/comments{/number}","comments_url":"https://api.github.com/repos/snikch/goodman/issues/31/comments","statuses_url":"https://api.github.com/repos/snikch/goodman/statuses/41f21d779394811216214fc0bbbf7a8299090d0f","head":{"label":"IngmarStein:master","ref":"master","sha":"41f21d779394811216214fc0bbbf7a8299090d0f","user":{"login":"IngmarStein","id":490610,"avatar_url":"https://avatars2.githubusercontent.com/u/490610?v=3","gravatar_id":"","url":"https://api.github.com/users/IngmarStein","html_url":"https://github.com/IngmarStein","followers_url":"https://api.github.com/users/IngmarStein/followers","following_url":"https://api.github.com/users/IngmarStein/following{/other_user}","gists_url":"https://api.github.com/users/IngmarStein/gists{/gist_id}","starred_url":"https://api.github.com/users/IngmarStein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IngmarStein/subscriptions","organizations_url":"https://api.github.com/users/IngmarStein/orgs","repos_url":"https://api.github.com/users/IngmarStein/repos","events_url":"https://api.github.com/users/IngmarStein/events{/privacy}","received_events_url":"https://api.github.com/users/IngmarStein/received_events","type":"User","site_admin":false},"repo":{"id":87557943,"name":"goodman","full_name":"IngmarStein/goodman","owner":{"login":"IngmarStein","id":490610,"avatar_url":"https://avatars2.githubusercontent.com/u/490610?v=3","gravatar_id":"","url":"https://api.github.com/users/IngmarStein","html_url":"https://github.com/IngmarStein","followers_url":"https://api.github.com/users/IngmarStein/followers","following_url":"https://api.github.com/users/IngmarStein/following{/other_user}","gists_url":"https://api.github.com/users/IngmarStein/gists{/gist_id}","starred_url":"https://api.github.com/users/IngmarStein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IngmarStein/subscriptions","organizations_url":"https://api.github.com/users/IngmarStein/orgs","repos_url":"https://api.github.com/users/IngmarStein/repos","events_url":"https://api.github.com/users/IngmarStein/events{/privacy}","received_events_url":"https://api.github.com/users/IngmarStein/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/IngmarStein/goodman","description":"Go Hook Handler for Dredd","fork":true,"url":"https://api.github.com/repos/IngmarStein/goodman","forks_url":"https://api.github.com/repos/IngmarStein/goodman/forks","keys_url":"https://api.github.com/repos/IngmarStein/goodman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/IngmarStein/goodman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/IngmarStein/goodman/teams","hooks_url":"https://api.github.com/repos/IngmarStein/goodman/hooks","issue_events_url":"https://api.github.com/repos/IngmarStein/goodman/issues/events{/number}","events_url":"https://api.github.com/repos/IngmarStein/goodman/events","assignees_url":"https://api.github.com/repos/IngmarStein/goodman/assignees{/user}","branches_url":"https://api.github.com/repos/IngmarStein/goodman/branches{/branch}","tags_url":"https://api.github.com/repos/IngmarStein/goodman/tags","blobs_url":"https://api.github.com/repos/IngmarStein/goodman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/IngmarStein/goodman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/IngmarStein/goodman/git/refs{/sha}","trees_url":"https://api.github.com/repos/IngmarStein/goodman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/IngmarStein/goodman/statuses/{sha}","languages_url":"https://api.github.com/repos/IngmarStein/goodman/languages","stargazers_url":"https://api.github.com/repos/IngmarStein/goodman/stargazers","contributors_url":"https://api.github.com/repos/IngmarStein/goodman/contributors","subscribers_url":"https://api.github.com/repos/IngmarStein/goodman/subscribers","subscription_url":"https://api.github.com/repos/IngmarStein/goodman/subscription","commits_url":"https://api.github.com/repos/IngmarStein/goodman/commits{/sha}","git_commits_url":"https://api.github.com/repos/IngmarStein/goodman/git/commits{/sha}","comments_url":"https://api.github.com/repos/IngmarStein/goodman/comments{/number}","issue_comment_url":"https://api.github.com/repos/IngmarStein/goodman/issues/comments{/number}","contents_url":"https://api.github.com/repos/IngmarStein/goodman/contents/{+path}","compare_url":"https://api.github.com/repos/IngmarStein/goodman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/IngmarStein/goodman/merges","archive_url":"https://api.github.com/repos/IngmarStein/goodman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/IngmarStein/goodman/downloads","issues_url":"https://api.github.com/repos/IngmarStein/goodman/issues{/number}","pulls_url":"https://api.github.com/repos/IngmarStein/goodman/pulls{/number}","milestones_url":"https://api.github.com/repos/IngmarStein/goodman/milestones{/number}","notifications_url":"https://api.github.com/repos/IngmarStein/goodman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/IngmarStein/goodman/labels{/name}","releases_url":"https://api.github.com/repos/IngmarStein/goodman/releases{/id}","deployments_url":"https://api.github.com/repos/IngmarStein/goodman/deployments","created_at":"2017-04-07T15:00:08Z","updated_at":"2017-04-07T15:00:10Z","pushed_at":"2017-06-21T15:21:06Z","git_url":"git://github.com/IngmarStein/goodman.git","ssh_url":"git@github.com:IngmarStein/goodman.git","clone_url":"https://github.com/IngmarStein/goodman.git","svn_url":"https://github.com/IngmarStein/goodman","homepage":null,"size":9300,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"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":"snikch:master","ref":"master","sha":"f0b023e9cd21f1fb9a220e990a8a288324d8ec31","user":{"login":"snikch","id":115958,"avatar_url":"https://avatars0.githubusercontent.com/u/115958?v=3","gravatar_id":"","url":"https://api.github.com/users/snikch","html_url":"https://github.com/snikch","followers_url":"https://api.github.com/users/snikch/followers","following_url":"https://api.github.com/users/snikch/following{/other_user}","gists_url":"https://api.github.com/users/snikch/gists{/gist_id}","starred_url":"https://api.github.com/users/snikch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snikch/subscriptions","organizations_url":"https://api.github.com/users/snikch/orgs","repos_url":"https://api.github.com/users/snikch/repos","events_url":"https://api.github.com/users/snikch/events{/privacy}","received_events_url":"https://api.github.com/users/snikch/received_events","type":"User","site_admin":false},"repo":{"id":41761060,"name":"goodman","full_name":"snikch/goodman","owner":{"login":"snikch","id":115958,"avatar_url":"https://avatars0.githubusercontent.com/u/115958?v=3","gravatar_id":"","url":"https://api.github.com/users/snikch","html_url":"https://github.com/snikch","followers_url":"https://api.github.com/users/snikch/followers","following_url":"https://api.github.com/users/snikch/following{/other_user}","gists_url":"https://api.github.com/users/snikch/gists{/gist_id}","starred_url":"https://api.github.com/users/snikch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snikch/subscriptions","organizations_url":"https://api.github.com/users/snikch/orgs","repos_url":"https://api.github.com/users/snikch/repos","events_url":"https://api.github.com/users/snikch/events{/privacy}","received_events_url":"https://api.github.com/users/snikch/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/snikch/goodman","description":"Go Hook Handler for Dredd","fork":false,"url":"https://api.github.com/repos/snikch/goodman","forks_url":"https://api.github.com/repos/snikch/goodman/forks","keys_url":"https://api.github.com/repos/snikch/goodman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/snikch/goodman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/snikch/goodman/teams","hooks_url":"https://api.github.com/repos/snikch/goodman/hooks","issue_events_url":"https://api.github.com/repos/snikch/goodman/issues/events{/number}","events_url":"https://api.github.com/repos/snikch/goodman/events","assignees_url":"https://api.github.com/repos/snikch/goodman/assignees{/user}","branches_url":"https://api.github.com/repos/snikch/goodman/branches{/branch}","tags_url":"https://api.github.com/repos/snikch/goodman/tags","blobs_url":"https://api.github.com/repos/snikch/goodman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/snikch/goodman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/snikch/goodman/git/refs{/sha}","trees_url":"https://api.github.com/repos/snikch/goodman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/snikch/goodman/statuses/{sha}","languages_url":"https://api.github.com/repos/snikch/goodman/languages","stargazers_url":"https://api.github.com/repos/snikch/goodman/stargazers","contributors_url":"https://api.github.com/repos/snikch/goodman/contributors","subscribers_url":"https://api.github.com/repos/snikch/goodman/subscribers","subscription_url":"https://api.github.com/repos/snikch/goodman/subscription","commits_url":"https://api.github.com/repos/snikch/goodman/commits{/sha}","git_commits_url":"https://api.github.com/repos/snikch/goodman/git/commits{/sha}","comments_url":"https://api.github.com/repos/snikch/goodman/comments{/number}","issue_comment_url":"https://api.github.com/repos/snikch/goodman/issues/comments{/number}","contents_url":"https://api.github.com/repos/snikch/goodman/contents/{+path}","compare_url":"https://api.github.com/repos/snikch/goodman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/snikch/goodman/merges","archive_url":"https://api.github.com/repos/snikch/goodman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/snikch/goodman/downloads","issues_url":"https://api.github.com/repos/snikch/goodman/issues{/number}","pulls_url":"https://api.github.com/repos/snikch/goodman/pulls{/number}","milestones_url":"https://api.github.com/repos/snikch/goodman/milestones{/number}","notifications_url":"https://api.github.com/repos/snikch/goodman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/snikch/goodman/labels{/name}","releases_url":"https://api.github.com/repos/snikch/goodman/releases{/id}","deployments_url":"https://api.github.com/repos/snikch/goodman/deployments","created_at":"2015-09-01T20:14:56Z","updated_at":"2017-06-21T19:55:21Z","pushed_at":"2017-06-22T09:31:32Z","git_url":"git://github.com/snikch/goodman.git","ssh_url":"git@github.com:snikch/goodman.git","clone_url":"https://github.com/snikch/goodman.git","svn_url":"https://github.com/snikch/goodman","homepage":null,"size":9308,"stargazers_count":15,"watchers_count":15,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":10,"mirror_url":null,"open_issues_count":4,"forks":10,"open_issues":4,"watchers":15,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/snikch/goodman/pulls/31"},"html":{"href":"https://github.com/snikch/goodman/pull/31"},"issue":{"href":"https://api.github.com/repos/snikch/goodman/issues/31"},"comments":{"href":"https://api.github.com/repos/snikch/goodman/issues/31/comments"},"review_comments":{"href":"https://api.github.com/repos/snikch/goodman/pulls/31/comments"},"review_comment":{"href":"https://api.github.com/repos/snikch/goodman/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/snikch/goodman/pulls/31/commits"},"statuses":{"href":"https://api.github.com/repos/snikch/goodman/statuses/41f21d779394811216214fc0bbbf7a8299090d0f"}},"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"ddelnano","id":5855593,"avatar_url":"https://avatars2.githubusercontent.com/u/5855593?v=3","gravatar_id":"","url":"https://api.github.com/users/ddelnano","html_url":"https://github.com/ddelnano","followers_url":"https://api.github.com/users/ddelnano/followers","following_url":"https://api.github.com/users/ddelnano/following{/other_user}","gists_url":"https://api.github.com/users/ddelnano/gists{/gist_id}","starred_url":"https://api.github.com/users/ddelnano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddelnano/subscriptions","organizations_url":"https://api.github.com/users/ddelnano/orgs","repos_url":"https://api.github.com/users/ddelnano/repos","events_url":"https://api.github.com/users/ddelnano/events{/privacy}","received_events_url":"https://api.github.com/users/ddelnano/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"maintainer_can_modify":false,"commits":2,"additions":8,"deletions":6,"changed_files":2}}
{"actor":{"display_login":"ddelnano"}}