{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/comments/29606451","id":29606451,"diff_hunk":"@@ -120,13 +120,21 @@ func newEtcdClient() (client *etcd.Client) {\n \t\t\tbreak\n \t\t}\n \t}\n-\tclient = etcd.NewClient([]string{*etcd_server})\n-\tif client == nil {\n-\t\treturn nil\n+\ttimeout := 10 * time.Second\n+\t// loop until we have > 0 machines && machines[0] != \"\"\n+\tfor start := time.Now(); time.Now().Sub(start) < timeout; time.Sleep(time.Second) {","path":"cluster/addons/dns/kube2sky/kube2sky.go","position":null,"original_position":18,"commit_id":"a3ccc87d861dbfa1e500e0d4cff45c29236258eb","original_commit_id":"8f43ac0cf1ec82ce00ffd9e982ef85378523d156","user":{"login":"cjcullen","id":7154008,"avatar_url":"https://avatars.githubusercontent.com/u/7154008?v=3","gravatar_id":"","url":"https://api.github.com/users/cjcullen","html_url":"https://github.com/cjcullen","followers_url":"https://api.github.com/users/cjcullen/followers","following_url":"https://api.github.com/users/cjcullen/following{/other_user}","gists_url":"https://api.github.com/users/cjcullen/gists{/gist_id}","starred_url":"https://api.github.com/users/cjcullen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjcullen/subscriptions","organizations_url":"https://api.github.com/users/cjcullen/orgs","repos_url":"https://api.github.com/users/cjcullen/repos","events_url":"https://api.github.com/users/cjcullen/events{/privacy}","received_events_url":"https://api.github.com/users/cjcullen/received_events","type":"User","site_admin":false},"body":"I do like @brendandburns's 1st loop better than mine. Fewer wasted syscalls. Fixed.","created_at":"2015-05-04T17:56:01Z","updated_at":"2015-05-04T17:56:01Z","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/7675#discussion_r29606451","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/7675","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/comments/29606451"},"html":{"href":"https://github.com/GoogleCloudPlatform/kubernetes/pull/7675#discussion_r29606451"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/7675"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/7675","id":34582376,"html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/7675","diff_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/7675.diff","patch_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/7675.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/7675","number":7675,"state":"open","locked":false,"title":"Fix kube2sky flakes. Fix tools.GetEtcdVersion to work with etcd > 2.0.7","user":{"login":"cjcullen","id":7154008,"avatar_url":"https://avatars.githubusercontent.com/u/7154008?v=3","gravatar_id":"","url":"https://api.github.com/users/cjcullen","html_url":"https://github.com/cjcullen","followers_url":"https://api.github.com/users/cjcullen/followers","following_url":"https://api.github.com/users/cjcullen/following{/other_user}","gists_url":"https://api.github.com/users/cjcullen/gists{/gist_id}","starred_url":"https://api.github.com/users/cjcullen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjcullen/subscriptions","organizations_url":"https://api.github.com/users/cjcullen/orgs","repos_url":"https://api.github.com/users/cjcullen/repos","events_url":"https://api.github.com/users/cjcullen/events{/privacy}","received_events_url":"https://api.github.com/users/cjcullen/received_events","type":"User","site_admin":false},"body":"Etcd has a race where \\<url\\>/v2/members returns an empty list of client IDs, and the go-etcd client library interprets this as a single machine with url \"\". This causes requests to fail, and retry forever (https://github.com/coreos/go-etcd/issues/210).\r\n\r\nThis updates kube2sky to initialize the client until it has an actual url for a machine.\r\n\r\nIn the process of debugging this, I also upgraded the etcd in the kube-dns pod to 2.0.9. This failed (https://github.com/GoogleCloudPlatform/kubernetes/issues/6852) until I updated the GetEtcdVersion() function to handle etcd > 2.0.7 (string version instead of JSON).\r\n\r\nOnce this gets an LGTM, I'll push a 1.3 of kube2sky to google_containers and change the skydns rc spec to point at it.","created_at":"2015-05-02T07:21:13Z","updated_at":"2015-05-04T17:56:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"19dc1f3b3ae30baebc34e0463eb50ac4e9d39566","assignee":{"login":"quinton-hoole","id":10390785,"avatar_url":"https://avatars.githubusercontent.com/u/10390785?v=3","gravatar_id":"","url":"https://api.github.com/users/quinton-hoole","html_url":"https://github.com/quinton-hoole","followers_url":"https://api.github.com/users/quinton-hoole/followers","following_url":"https://api.github.com/users/quinton-hoole/following{/other_user}","gists_url":"https://api.github.com/users/quinton-hoole/gists{/gist_id}","starred_url":"https://api.github.com/users/quinton-hoole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quinton-hoole/subscriptions","organizations_url":"https://api.github.com/users/quinton-hoole/orgs","repos_url":"https://api.github.com/users/quinton-hoole/repos","events_url":"https://api.github.com/users/quinton-hoole/events{/privacy}","received_events_url":"https://api.github.com/users/quinton-hoole/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/7675/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/7675/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/7675/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/statuses/a3ccc87d861dbfa1e500e0d4cff45c29236258eb","head":{"label":"cjcullen:cbr0","ref":"cbr0","sha":"a3ccc87d861dbfa1e500e0d4cff45c29236258eb","user":{"login":"cjcullen","id":7154008,"avatar_url":"https://avatars.githubusercontent.com/u/7154008?v=3","gravatar_id":"","url":"https://api.github.com/users/cjcullen","html_url":"https://github.com/cjcullen","followers_url":"https://api.github.com/users/cjcullen/followers","following_url":"https://api.github.com/users/cjcullen/following{/other_user}","gists_url":"https://api.github.com/users/cjcullen/gists{/gist_id}","starred_url":"https://api.github.com/users/cjcullen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjcullen/subscriptions","organizations_url":"https://api.github.com/users/cjcullen/orgs","repos_url":"https://api.github.com/users/cjcullen/repos","events_url":"https://api.github.com/users/cjcullen/events{/privacy}","received_events_url":"https://api.github.com/users/cjcullen/received_events","type":"User","site_admin":false},"repo":{"id":22969428,"name":"kubernetes","full_name":"cjcullen/kubernetes","owner":{"login":"cjcullen","id":7154008,"avatar_url":"https://avatars.githubusercontent.com/u/7154008?v=3","gravatar_id":"","url":"https://api.github.com/users/cjcullen","html_url":"https://github.com/cjcullen","followers_url":"https://api.github.com/users/cjcullen/followers","following_url":"https://api.github.com/users/cjcullen/following{/other_user}","gists_url":"https://api.github.com/users/cjcullen/gists{/gist_id}","starred_url":"https://api.github.com/users/cjcullen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjcullen/subscriptions","organizations_url":"https://api.github.com/users/cjcullen/orgs","repos_url":"https://api.github.com/users/cjcullen/repos","events_url":"https://api.github.com/users/cjcullen/events{/privacy}","received_events_url":"https://api.github.com/users/cjcullen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/cjcullen/kubernetes","description":"Container Cluster Manager","fork":true,"url":"https://api.github.com/repos/cjcullen/kubernetes","forks_url":"https://api.github.com/repos/cjcullen/kubernetes/forks","keys_url":"https://api.github.com/repos/cjcullen/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cjcullen/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cjcullen/kubernetes/teams","hooks_url":"https://api.github.com/repos/cjcullen/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/cjcullen/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/cjcullen/kubernetes/events","assignees_url":"https://api.github.com/repos/cjcullen/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/cjcullen/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/cjcullen/kubernetes/tags","blobs_url":"https://api.github.com/repos/cjcullen/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cjcullen/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cjcullen/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/cjcullen/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cjcullen/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/cjcullen/kubernetes/languages","stargazers_url":"https://api.github.com/repos/cjcullen/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/cjcullen/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/cjcullen/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/cjcullen/kubernetes/subscription","commits_url":"https://api.github.com/repos/cjcullen/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/cjcullen/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/cjcullen/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/cjcullen/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/cjcullen/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/cjcullen/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cjcullen/kubernetes/merges","archive_url":"https://api.github.com/repos/cjcullen/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cjcullen/kubernetes/downloads","issues_url":"https://api.github.com/repos/cjcullen/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/cjcullen/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/cjcullen/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/cjcullen/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cjcullen/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/cjcullen/kubernetes/releases{/id}","created_at":"2014-08-14T21:36:31Z","updated_at":"2015-02-23T06:10:33Z","pushed_at":"2015-05-04T17:55:51Z","git_url":"git://github.com/cjcullen/kubernetes.git","ssh_url":"git@github.com:cjcullen/kubernetes.git","clone_url":"https://github.com/cjcullen/kubernetes.git","svn_url":"https://github.com/cjcullen/kubernetes","homepage":null,"size":50627,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"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":"GoogleCloudPlatform:master","ref":"master","sha":"9927a85cdcb5d5cd5225d3d9415c444cc9db97f0","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":20580498,"name":"kubernetes","full_name":"GoogleCloudPlatform/kubernetes","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/kubernetes","description":"Container Cluster Manager from Google","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/releases{/id}","created_at":"2014-06-06T22:56:04Z","updated_at":"2015-05-04T17:53:46Z","pushed_at":"2015-05-04T17:55:53Z","git_url":"git://github.com/GoogleCloudPlatform/kubernetes.git","ssh_url":"git@github.com:GoogleCloudPlatform/kubernetes.git","clone_url":"https://github.com/GoogleCloudPlatform/kubernetes.git","svn_url":"https://github.com/GoogleCloudPlatform/kubernetes","homepage":"http://kubernetes.io","size":217613,"stargazers_count":7462,"watchers_count":7462,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1504,"mirror_url":null,"open_issues_count":1002,"forks":1504,"open_issues":1002,"watchers":7462,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/7675"},"html":{"href":"https://github.com/GoogleCloudPlatform/kubernetes/pull/7675"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/7675"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/7675/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/7675/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/7675/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/statuses/a3ccc87d861dbfa1e500e0d4cff45c29236258eb"}}}}