{"action":"opened","issue":{"url":"https://api.github.com/repos/docker/for-mac/issues/815","repository_url":"https://api.github.com/repos/docker/for-mac","labels_url":"https://api.github.com/repos/docker/for-mac/issues/815/labels{/name}","comments_url":"https://api.github.com/repos/docker/for-mac/issues/815/comments","events_url":"https://api.github.com/repos/docker/for-mac/issues/815/events","html_url":"https://github.com/docker/for-mac/issues/815","id":183546515,"number":815,"title":"TCP errors and flakiness when using many simultaneous connections","user":{"login":"avaskys","id":879410,"avatar_url":"https://avatars.githubusercontent.com/u/879410?v=3","gravatar_id":"","url":"https://api.github.com/users/avaskys","html_url":"https://github.com/avaskys","followers_url":"https://api.github.com/users/avaskys/followers","following_url":"https://api.github.com/users/avaskys/following{/other_user}","gists_url":"https://api.github.com/users/avaskys/gists{/gist_id}","starred_url":"https://api.github.com/users/avaskys/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avaskys/subscriptions","organizations_url":"https://api.github.com/users/avaskys/orgs","repos_url":"https://api.github.com/users/avaskys/repos","events_url":"https://api.github.com/users/avaskys/events{/privacy}","received_events_url":"https://api.github.com/users/avaskys/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-10-17T22:36:38Z","updated_at":"2016-10-17T22:36:38Z","closed_at":null,"body":"When connecting to a service in a docker-for-mac container using many parallel TCP connections, I've been experiencing lots of unexpected TCP connection issues. The issue is quite easy to reproduce (see steps below).\r\n\r\n### Information\r\n\r\nDiagnostic ID: 7277E55A-2918-4FD1-B691-EEB0D44E3E2F\r\n\r\n```\r\nDocker for Mac: version: 1.12.2-beta28 (71c4a00)\r\nOS X: version 10.11.6 (build: 15G1004)\r\nlogs: /tmp/7277E55A-2918-4FD1-B691-EEB0D44E3E2F/20161017-153142.tar.gz\r\n[OK]     docker-cli\r\n[OK]     virtualization kern.hv_support\r\n[OK]     menubar\r\n[OK]     moby-syslog\r\n[OK]     dns\r\n[OK]     disk\r\n[OK]     system\r\n[OK]     app\r\n[OK]     osxfs\r\n[OK]     virtualization VT-X\r\n[OK]     db\r\n[OK]     slirp\r\n[OK]     logs\r\n[OK]     env\r\n[OK]     vmnetd\r\n[OK]     moby-console\r\n[OK]     moby\r\n[OK]     driver.amd64-linux\r\n```\r\n\r\n### Steps to reproduce the behavior\r\n\r\nSummary: start an apache container serving up a file. Run multiple curl instances in parallel. Note all of the networking errors.\r\n\r\n1. `dd if=/dev/zero of=zero.txt bs=1000 count=1`\r\n2. `docker run -dit -p 8888:80 --name apache -v \"$PWD\":/usr/local/apache2/htdocs/ httpd:2.4`\r\n3. `for i in {1..100}; do curl -s -S -0 --no-keepalive \"http://127.0.0.1:8888/zero.txt?[1-100]\" > /dev/null & done; wait`\r\n4. Note all of the (possibly-interleaved) errors printed out by curl. \r\n\r\n### Expected behavior\r\n\r\nNo TCP errors. This is what happens when using docker-machine or Docker on Linux.\r\n\r\n### Actual behavior\r\n\r\ncurl prints out lots of errors:\r\n\r\n```\r\ncurl: (55) Send failure: Broken pipe\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Ccounrnle:c t(i5o6n)  rReescevt  fbayi lpuereer:\r\n Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\ncurl: (56) Recv failure: Connection reset by peer\r\n```"}}
{"actor":{"display_login":"avaskys"}}