{"action":"created","issue":{"url":"https://api.github.com/repos/golang/go/issues/12051","labels_url":"https://api.github.com/repos/golang/go/issues/12051/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/12051/comments","events_url":"https://api.github.com/repos/golang/go/issues/12051/events","html_url":"https://github.com/golang/go/issues/12051","id":99433309,"number":12051,"title":"net: 1.5rc1 testing: stuck for long time if there are many TCP connections","user":{"login":"yangzhe1991","id":860739,"avatar_url":"https://avatars.githubusercontent.com/u/860739?v=3","gravatar_id":"","url":"https://api.github.com/users/yangzhe1991","html_url":"https://github.com/yangzhe1991","followers_url":"https://api.github.com/users/yangzhe1991/followers","following_url":"https://api.github.com/users/yangzhe1991/following{/other_user}","gists_url":"https://api.github.com/users/yangzhe1991/gists{/gist_id}","starred_url":"https://api.github.com/users/yangzhe1991/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yangzhe1991/subscriptions","organizations_url":"https://api.github.com/users/yangzhe1991/orgs","repos_url":"https://api.github.com/users/yangzhe1991/repos","events_url":"https://api.github.com/users/yangzhe1991/events{/privacy}","received_events_url":"https://api.github.com/users/yangzhe1991/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/golang/go/milestones/2","html_url":"https://github.com/golang/go/milestones/Go1.5Maybe","labels_url":"https://api.github.com/repos/golang/go/milestones/2/labels","id":905114,"number":2,"title":"Go1.5Maybe","description":"Things that might make Go 1.5, but aren't critical.\r\n","creator":{"login":"bradfitz","id":2621,"avatar_url":"https://avatars.githubusercontent.com/u/2621?v=3","gravatar_id":"","url":"https://api.github.com/users/bradfitz","html_url":"https://github.com/bradfitz","followers_url":"https://api.github.com/users/bradfitz/followers","following_url":"https://api.github.com/users/bradfitz/following{/other_user}","gists_url":"https://api.github.com/users/bradfitz/gists{/gist_id}","starred_url":"https://api.github.com/users/bradfitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bradfitz/subscriptions","organizations_url":"https://api.github.com/users/bradfitz/orgs","repos_url":"https://api.github.com/users/bradfitz/repos","events_url":"https://api.github.com/users/bradfitz/events{/privacy}","received_events_url":"https://api.github.com/users/bradfitz/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":41,"state":"open","created_at":"2014-12-16T02:39:13Z","updated_at":"2015-08-06T18:49:14Z","due_on":"2015-07-31T04:00:00Z","closed_at":null},"comments":6,"created_at":"2015-08-06T13:25:35Z","updated_at":"2015-08-06T19:44:25Z","closed_at":null,"body":"Hi,\r\nI use 1.5rc to test my program, which will hold millions of tcp connections and push messages to client.\r\n\r\nI test the program by make a fake client(also in go) and build 1 million tcp to the server. Server bind 100 ports and client connect 10000 tcp per port so totally 1,000,000. Server and fake client are on same server and both have `runtime.GOMAXPROCS(runtime.NumCPU())`.\r\n\r\nIf I build them on go 1.4.2(cross-platform compile from my MacBook to linux/amd64 server), when I push message to all tcp connections almost concurrently, the CPU is high but it works as expected that all client tcp can receive messages within less than 20 seconds. \r\n\r\nHowever if I build them with same code on go 1.5rc1(also cross-platform compile), when I push message, both server and client are stuck and system load is high for several minutes. Two process' status will sometimes change to 'D' which means  \"uninterruptible sleep\" although CPU may be 0.0% at all.  If I kill client, the server will become normal.\r\n\r\nWhy 1.4.2 works well but 1.5rc1 not? Does 1.5 has TCP performance issue or goroutine scheduling issue?\r\n\r\nThanks\r\n"},"comment":{"url":"https://api.github.com/repos/golang/go/issues/comments/128483928","html_url":"https://github.com/golang/go/issues/12051#issuecomment-128483928","issue_url":"https://api.github.com/repos/golang/go/issues/12051","id":128483928,"user":{"login":"rsc","id":104030,"avatar_url":"https://avatars.githubusercontent.com/u/104030?v=3","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false},"created_at":"2015-08-06T19:44:25Z","updated_at":"2015-08-06T19:44:25Z","body":"Also, did you remove all your own goroutines from the stack trace? I see nothing but system goroutines. Maybe the problem is that your program is deadlocked. Even if you can't show us the stack traces, please look at what your goroutines are doing and make sure they're not just staring at each other. Thanks.\r\n"}}