{"action":"opened","issue":{"url":"https://api.github.com/repos/coreos/etcd/issues/3653","labels_url":"https://api.github.com/repos/coreos/etcd/issues/3653/labels{/name}","comments_url":"https://api.github.com/repos/coreos/etcd/issues/3653/comments","events_url":"https://api.github.com/repos/coreos/etcd/issues/3653/events","html_url":"https://github.com/coreos/etcd/issues/3653","id":110393086,"number":3653,"title":"etcd client paralel usage socket error","user":{"login":"martende","id":1508729,"avatar_url":"https://avatars.githubusercontent.com/u/1508729?v=3","gravatar_id":"","url":"https://api.github.com/users/martende","html_url":"https://github.com/martende","followers_url":"https://api.github.com/users/martende/followers","following_url":"https://api.github.com/users/martende/following{/other_user}","gists_url":"https://api.github.com/users/martende/gists{/gist_id}","starred_url":"https://api.github.com/users/martende/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martende/subscriptions","organizations_url":"https://api.github.com/users/martende/orgs","repos_url":"https://api.github.com/users/martende/repos","events_url":"https://api.github.com/users/martende/events{/privacy}","received_events_url":"https://api.github.com/users/martende/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-08T08:01:24Z","updated_at":"2015-10-08T08:01:24Z","closed_at":null,"body":"Hello , I am using single etcd client paralel in goroutines for Get requests code looks like\r\n\r\n```go\r\nimport \tetcd \"github.com/coreos/etcd/client\"\r\nimport\t\"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context\"\r\n\r\n\r\nconfig := etcd.Config{\r\n\t\tEndpoints:servers,\r\n\t\tTransport:etcd.DefaultTransport,\r\n\t\tHeaderTimeoutPerRequest:time.Second,\r\n}\r\nclient,_ = etcd.New(config)\r\nkapi = etcd.NewKeysAPI(client)\r\n...\r\nfunc ParalelUsedGet(key) {\r\nv,err := kapi.Get(context.Background(),key)\r\n...\r\nif ( err != nil ) {\r\n\t\tthis.log.Printf(\"Key '%s' not found. Error: %s\", value,err)\r\n\t\terr2 := err.(*etcd.ClusterError)\r\n\t\tif (err2 != nil ) {\r\n\t\t\tthis.log.Printf(\"Details %s\",err2.Detail())\r\n\t\t}\r\n}\r\n\r\n}\r\nfor i:=0; i < N ; i++ {\r\ngo ParalelUsedGet(someVal)\r\n}\r\n```\r\n\r\nand somtimes i am receiving err from kapi.Get with details:\r\n\r\nEtcdBackend 2015/10/08 09:45:26 Details error #0: dial tcp 127.0.0.1:2379: conne\r\nctex: Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Ans\r\nchluss) nur jeweils einmal verwendet werden.\r\n\r\nit looks like socket connect error on already connected socket. \r\nseems that I should organize connection pool to etcd myself but as I look to the context code looks like it also makes this work for me. \r\n\r\nI don't know is it actually a bug or i am making something wrong in configuration or I should build connection pool myself. \r\n\r\n\r\n"}}