Giter Club home page Giter Club logo

toxiproxy's Issues

better CLI error handling

#112 updates our CLI library to a newer version with better error handling. We should figure out how this error handling works and change toxiAction to support the new error handling if it's a cleaner solution.

toxiAction should be updated to look something like this.

type toxiAction func(*cli.Context, *toxiproxy.Client) error

return func(c *cli.Context) error {
    return f(c, t)
}

And then all the action error handling should be ported to the new API.

404s for toxics and reset

I set up Toxiproxy(1.2.1 from the .deb) with 3 servers. When i go to http://localhost:8474/proxies or do Toxiproxy.all I get results back, but when I try to examine the toxics for any of the servers, it 404s. Same with Toxiproxy.reset. Surely there's something simple I'm missing.

Individual proxies work as well. Toxiproxy[:my_service] works fine. It's Toxiproxy[:my_service].toxics that 404s

docker image no longer updating?

Hello,
toxiproxy looks like a neat project. looking forward to play with it.
on https://hub.docker.com/r/shopify/toxiproxy/tags/ i see that the last image push was 6 months ago, whereas https://github.com/Shopify/toxiproxy/blob/master/Dockerfile was updated less than 2 months ago
also the current latest image has nothing in /go/bin, and no toxiproxy-cli binary anywhere:

root@toxiproxy:/go# find / -name toxiproxy-cli
root@toxiproxy:/go# ls -alh bin/
total 8.0K
drwxrwxrwx 2 root root 4.0K Oct 24  2015 .
drwxrwxrwx 4 root root 4.0K Oct 24  2015 ..
root@toxiproxy:/go# 

looking forward to have new images that have the toxiproxy-cli binary included. thanks

Batch API / support HTTP pipelines

@BlakeMesdag mentioned that creating proxies at boot of our application actually takes a while, up to 2 seconds. We can make this better. Toxiproxy should not take more than 100ms at boot, and preferably less.

The simplest thing would probably be to support HTTP pipelines / persistent connections, so we can just send a bunch of data. We may also just be doing something stupid in the Rails gem. I'd prefer that to a new API. Another possibility is that the #populate call becomes a native thing in Toxiproxy that just sends it a JSON dictionary of all the proxies it expects (and resets all of them).

@xthexder @jpittis

Hang when calling reset

SIGQUIT: quit
PC=0x44a891

goroutine 0 [idle]:
runtime.futex(0x8b7c78, 0x0, 0x0, 0x0, 0x0, 0x8b73c0, 0x1, 0x41944f, 0x41966e, 0x8b7c78, ...)
    /usr/local/Cellar/go/1.4/libexec/src/runtime/sys_linux_amd64.s:277 +0x21
runtime.futexsleep(0x8b7c78, 0x200000000, 0xffffffffffffffff)
    /usr/local/Cellar/go/1.4/libexec/src/runtime/os_linux.c:49 +0x47
runtime.notesleep(0x8b7c78)
    /usr/local/Cellar/go/1.4/libexec/src/runtime/lock_futex.go:145 +0xae
stopm()
    /usr/local/Cellar/go/1.4/libexec/src/runtime/proc.c:1178 +0x119
exitsyscall0(0xc2080a77a0)
    /usr/local/Cellar/go/1.4/libexec/src/runtime/proc.c:2020 +0xd8
runtime.mcall(0x43dec4)
    /usr/local/Cellar/go/1.4/libexec/src/runtime/asm_amd64.s:186 +0x5a

goroutine 1 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc2080847d0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080847d0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc208084770, 0x0, 0x7f0070851b70, 0xc208373760)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc2080420d8, 0x4cc1fe, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net/http.tcpKeepAliveListener.Accept(0xc2080420d8, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/http/server.go:1976 +0x4c
net/http.(*Server).Serve(0xc20800ca80, 0x7f00708531c0, 0xc2080420d8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/http/server.go:1728 +0x92
net/http.(*Server).ListenAndServe(0xc20800ca80, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/http/server.go:1718 +0x154
net/http.ListenAndServe(0xc2080886b0, 0xc, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/http/server.go:1808 +0xba
main.(*server).Listen(0xc208042020, 0x7fff489ebf4e, 0x7, 0x7fff489ebf43, 0x4)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/api.go:46 +0xfc0
main.main()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxiproxy.go:25 +0x10a

goroutine 692 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208089c80, 0xc208364e00)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 967 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699a60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 966 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699a40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 942 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208698ce0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 943 [chan receive]:
main.(*ChanReader).Read(0xc208698d00, 0xc2084c6000, 0x8000, 0x8000, 0xa, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20846a410, 0x7f00708539a0, 0xc208698d00, 0x325, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042a70, 0x7f00708539a0, 0xc208698d00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042a70, 0x7f00708539a0, 0xc208698d00, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042a70, 0x7f00708539a0, 0xc208698d00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 806 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d0e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 805 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d0c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 16 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc208010e60, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208010e60, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc208010e00, 0x0, 0x7f0070851b70, 0xc2085e0160)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc208042220, 0x7f00708538f8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc208042220, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:244 +0x4c
main.(*Proxy).server(0xc20805a7e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:137 +0x630
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 17 [chan receive, 7 minutes]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 935 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208698ba0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 934 [IO wait]:
net.(*pollDesc).Wait(0xc2080845a0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080845a0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084540, 0xc2084ae000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2083737e8)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042a70, 0xc2084ae000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042a80, 0x7f0070853280, 0xc208042a70, 0x26e6, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 22 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc208011330, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208011330, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc2080112d0, 0x0, 0x7f0070851b70, 0xc2081331e8)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc2080422c0, 0x7f00708538f8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc2080422c0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:244 +0x4c
main.(*Proxy).server(0xc20805ab40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:137 +0x630
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 23 [chan receive, 7 minutes]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 25 [IO wait]:
net.(*pollDesc).Wait(0xc208011560, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208011560, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc208011500, 0x0, 0x7f0070851b70, 0xc2082379d0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc208042310, 0x7f00708538f8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc208042310, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:244 +0x4c
main.(*Proxy).server(0xc20805acf0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:137 +0x630
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 26 [chan receive, 7 minutes]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 28 [IO wait]:
net.(*pollDesc).Wait(0xc208011870, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208011870, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc208011810, 0x0, 0x7f0070851b70, 0xc208237ce8)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc208042360, 0x7f00708538f8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc208042360, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:244 +0x4c
main.(*Proxy).server(0xc20805aea0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:137 +0x630
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 29 [chan receive, 7 minutes]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 31 [IO wait]:
net.(*pollDesc).Wait(0xc208011aa0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208011aa0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc208011a40, 0x0, 0x7f0070851b70, 0xc208372850)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc2080423b0, 0x7f00708538f8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc2080423b0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:244 +0x4c
main.(*Proxy).server(0xc20805b050)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:137 +0x630
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 32 [chan receive, 7 minutes]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 34 [IO wait]:
net.(*pollDesc).Wait(0xc208011cd0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208011cd0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc208011c70, 0x0, 0x7f0070851b70, 0xc208372c98)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc208042400, 0x7f00708538f8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc208042400, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:244 +0x4c
main.(*Proxy).server(0xc20805b200)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:137 +0x630
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 35 [chan receive, 7 minutes]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 672 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc20801e760, 0xc2083b2da0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 666 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208032910, 0xc2086983a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 658 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac100, 0xc208698380)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 461 [chan send, 1 minutes]:
main.(*ChanWriter).Write(0xc208042908, 0xc2086f8000, 0x12, 0x8000, 0x12, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:17 +0x11c
io.Copy(0x7f0070853928, 0xc208042908, 0x7f0070853280, 0xc2080428f0, 0x51c4, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:364 +0x278
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 460 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2086989c0, 0xc2086f0000, 0x8000, 0x8000, 0x9d, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208657da0, 0x7f00708539a0, 0xc2086989c0, 0x693c, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080428f0, 0x7f00708539a0, 0xc2086989c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080428f0, 0x7f00708539a0, 0xc2086989c0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080428f0, 0x7f00708539a0, 0xc2086989c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 652 [chan send, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208032900, 0xc208698a60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:40 +0x26e
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 643 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080328f0, 0xc2084540e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1044 [IO wait]:
net.(*pollDesc).Wait(0xc208011db0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208011db0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208011d50, 0xc208882000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2086568c0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042c90, 0xc208882000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042ca0, 0x7f0070853280, 0xc208042c90, 0xa5f6, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 1080 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836f500)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 713 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033160, 0xc208365080)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 925 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2086982e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 325 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208364e20, 0xc208508000, 0x8000, 0x8000, 0xa, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2083b5ff0, 0x7f00708539a0, 0xc208364e20, 0xe6, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042648, 0x7f00708539a0, 0xc208364e20, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042648, 0x7f00708539a0, 0xc208364e20, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042648, 0x7f00708539a0, 0xc208364e20, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1121 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d5e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1108 [chan receive]:
main.(*ChanReader).Read(0xc20848cf80, 0xc208990000, 0x8000, 0x8000, 0x172, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208372550, 0x7f00708539a0, 0xc20848cf80, 0xacab, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042db8, 0x7f00708539a0, 0xc20848cf80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042db8, 0x7f00708539a0, 0xc20848cf80, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042db8, 0x7f00708539a0, 0xc20848cf80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 737 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080331c0, 0xc208365180)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 331 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc208085c60, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085c60, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208085c00, 0xc208528000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656c90)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042680, 0xc208528000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042698, 0x7f0070853280, 0xc208042680, 0x761, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 330 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2083650a0, 0xc208520000, 0x8000, 0x8000, 0xfb, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c83c0, 0x7f00708539a0, 0xc2083650a0, 0x5226, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042680, 0x7f00708539a0, 0xc2083650a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042680, 0x7f00708539a0, 0xc2083650a0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042680, 0x7f00708539a0, 0xc2083650a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 729 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac3c0, 0xc20801f0c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 721 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208033190, 0xc208365140)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 965 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699a20)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 961 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699720)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 335 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2083651a0, 0xc208530000, 0x8000, 0x8000, 0xa, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c8400, 0x7f00708539a0, 0xc2083651a0, 0x761, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042678, 0x7f00708539a0, 0xc2083651a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042678, 0x7f00708539a0, 0xc2083651a0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042678, 0x7f00708539a0, 0xc2083651a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 744 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208234d60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 739 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080331c0, 0xc20801f1c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 521 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080c8120, 0xc208365500)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 341 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc208085e20, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085e20, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208085dc0, 0xc208548000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656c40)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080426b0, 0xc208548000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080426c8, 0x7f0070853280, 0xc2080426b0, 0x70e, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 340 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208365420, 0xc208540000, 0x8000, 0x8000, 0xfb, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c88e0, 0x7f00708539a0, 0xc208365420, 0x5108, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080426b0, 0x7f00708539a0, 0xc208365420, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080426b0, 0x7f00708539a0, 0xc208365420, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080426b0, 0x7f00708539a0, 0xc208365420, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 513 [select, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac940, 0xc2083654e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:40 +0x2e3
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 499 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080c8100, 0xc2080ad4c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 937 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208698be0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 360 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208365b60, 0xc208580000, 0x8000, 0x8000, 0xc, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c9bc0, 0x7f00708539a0, 0xc208365b60, 0x478, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042710, 0x7f00708539a0, 0xc208365b60, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042710, 0x7f00708539a0, 0xc208365b60, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042710, 0x7f00708539a0, 0xc208365b60, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 345 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208365520, 0xc208550000, 0x8000, 0x8000, 0xa, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c8900, 0x7f00708539a0, 0xc208365520, 0x70e, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080426a8, 0x7f00708539a0, 0xc208365520, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080426a8, 0x7f00708539a0, 0xc208365520, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080426a8, 0x7f00708539a0, 0xc208365520, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 933 [chan receive]:
main.(*ChanReader).Read(0xc208698540, 0xc2082b4000, 0x8000, 0x8000, 0x14, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20845bfb0, 0x7f00708539a0, 0xc208698540, 0x1cc1, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042a40, 0x7f00708539a0, 0xc208698540, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042a40, 0x7f00708539a0, 0xc208698540, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042a40, 0x7f00708539a0, 0xc208698540, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 931 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2086984c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 612 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc20801fb60, 0xc208364860)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 365 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208365c60, 0xc208590000, 0x8000, 0x8000, 0x14, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c9be0, 0x7f00708539a0, 0xc208365c60, 0x6ff, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042708, 0x7f00708539a0, 0xc208365c60, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042708, 0x7f00708539a0, 0xc208365c60, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042708, 0x7f00708539a0, 0xc208365c60, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1002 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b2ae0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 602 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080893f0, 0xc208365b40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 938 [chan receive]:
main.(*ChanReader).Read(0xc208698c00, 0xc2084b6000, 0x8000, 0x8000, 0x6ba, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20846a3f0, 0x7f00708539a0, 0xc208698c00, 0x26e6, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042a78, 0x7f00708539a0, 0xc208698c00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042a78, 0x7f00708539a0, 0xc208698c00, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042a78, 0x7f00708539a0, 0xc208698c00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 998 [chan receive]:
main.(*ChanReader).Read(0xc2083b2a00, 0xc2087ae000, 0x8000, 0x8000, 0x6ba, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208656d50, 0x7f00708539a0, 0xc2083b2a00, 0x161b, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042b98, 0x7f00708539a0, 0xc2083b2a00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042b98, 0x7f00708539a0, 0xc2083b2a00, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042b98, 0x7f00708539a0, 0xc2083b2a00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 674 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208088340, 0xc2083b2dc0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1100 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848ca80)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 678 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc20801e780, 0xc2083b30a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 270 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2083b2de0, 0xc20843c000, 0x8000, 0x8000, 0xc, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20845b490, 0x7f00708539a0, 0xc2083b2de0, 0x568c, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042560, 0x7f00708539a0, 0xc2083b2de0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042560, 0x7f00708539a0, 0xc2083b2de0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042560, 0x7f00708539a0, 0xc2083b2de0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1102 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848cac0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 680 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208088370, 0xc2083b30c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 954 [IO wait]:
net.(*pollDesc).Wait(0xc208084bc0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208084bc0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084b60, 0xc208578000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2086567a0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042ad0, 0xc208578000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042ae0, 0x7f0070853280, 0xc208042ad0, 0x1abf, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 956 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699620)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 275 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2083b30e0, 0xc20844c000, 0x8000, 0x8000, 0x14, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20845b4b0, 0x7f00708539a0, 0xc2083b30e0, 0xa69e, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042558, 0x7f00708539a0, 0xc2083b30e0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042558, 0x7f00708539a0, 0xc2083b30e0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042558, 0x7f00708539a0, 0xc2083b30e0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 958 [chan receive]:
main.(*ChanReader).Read(0xc208699660, 0xc2083ec000, 0x8000, 0x8000, 0xc, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20846b4c0, 0x7f00708539a0, 0xc208699660, 0x1abf, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042ad8, 0x7f00708539a0, 0xc208699660, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042ad8, 0x7f00708539a0, 0xc208699660, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042ad8, 0x7f00708539a0, 0xc208699660, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 596 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208088bb0, 0xc2080ada80)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1097 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848c9c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 600 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc20801f8a0, 0xc208365b20)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 395 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080adaa0, 0xc2085fc000, 0x8000, 0x8000, 0x14, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080898f0, 0x7f00708539a0, 0xc2080adaa0, 0x6ff, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042798, 0x7f00708539a0, 0xc2080adaa0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042798, 0x7f00708539a0, 0xc2080adaa0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042798, 0x7f00708539a0, 0xc2080adaa0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1098 [chan receive]:
main.(*ChanReader).Read(0xc20848c9e0, 0xc20896e000, 0x8000, 0x8000, 0x1a8, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208372220, 0x7f00708539a0, 0xc20848c9e0, 0xc34e, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042d88, 0x7f00708539a0, 0xc20848c9e0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042d88, 0x7f00708539a0, 0xc20848c9e0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042d88, 0x7f00708539a0, 0xc20848c9e0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 590 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208088b90, 0xc2080ad980)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 957 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699640)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 594 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc20801f320, 0xc2080ada60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 390 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080ad9a0, 0xc2085ec000, 0x8000, 0x8000, 0xc, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080898d0, 0x7f00708539a0, 0xc2080ad9a0, 0x478, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080427a0, 0x7f00708539a0, 0xc2080ad9a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080427a0, 0x7f00708539a0, 0xc2080ad9a0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080427a0, 0x7f00708539a0, 0xc2080ad9a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 939 [IO wait]:
net.(*pollDesc).Wait(0xc208084760, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208084760, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084700, 0xc2084be000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2083737f8)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042a78, 0xc2084be000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042a90, 0x7f0070853280, 0xc208042a78, 0x325, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 608 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208089410, 0xc208365c40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 996 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b29c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 465 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208698ac0, 0xc2080ce000, 0x8000, 0x8000, 0x7a, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208656010, 0x7f00708539a0, 0xc208698ac0, 0x5136, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080428e8, 0x7f00708539a0, 0xc208698ac0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080428e8, 0x7f00708539a0, 0xc208698ac0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080428e8, 0x7f00708539a0, 0xc208698ac0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 321 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc208085aa0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085aa0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208085a40, 0xc2084fe000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656bd0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042650, 0xc2084fe000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042668, 0x7f0070853280, 0xc208042650, 0xe6, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 320 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208364d20, 0xc2084f6000, 0x8000, 0x8000, 0xfb, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2083b5fd0, 0x7f00708539a0, 0xc208364d20, 0x3c31, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042650, 0x7f00708539a0, 0xc208364d20, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042650, 0x7f00708539a0, 0xc208364d20, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042650, 0x7f00708539a0, 0xc208364d20, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 690 [select, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc20801fe40, 0xc208364de0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:40 +0x2e3
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 688 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208089c70, 0xc208364dc0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 686 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208089c60, 0xc208364d00)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 962 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699740)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 995 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b29a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 536 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208088fe0, 0xc2083b3e60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1115 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d4c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1095 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848c980)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 295 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2083b3e80, 0xc2084a6000, 0x8000, 0x8000, 0x14, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2083b4bd0, 0x7f00708539a0, 0xc2083b3e80, 0x108b, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080425b8, 0x7f00708539a0, 0xc2083b3e80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080425b8, 0x7f00708539a0, 0xc2083b3e80, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080425b8, 0x7f00708539a0, 0xc2083b3e80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 804 [IO wait]:
net.(*pollDesc).Wait(0xc2080101b0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080101b0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208010150, 0xc208170000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656990)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042460, 0xc208170000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042470, 0x7f0070853280, 0xc208042460, 0xa846, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 530 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208088fc0, 0xc2083b3d60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 999 [IO wait]:
net.(*pollDesc).Wait(0xc208085f00, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085f00, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208085ea0, 0xc2087b6000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2083b45d8)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042b98, 0xc2087b6000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042bb0, 0x7f0070853280, 0xc208042b98, 0x261, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 1001 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b2ac0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 290 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2083b3d80, 0xc208496000, 0x8000, 0x8000, 0xc, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2083b4bb0, 0x7f00708539a0, 0xc2083b3d80, 0x1628, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080425c0, 0x7f00708539a0, 0xc2083b3d80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080425c0, 0x7f00708539a0, 0xc2083b3d80, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080425c0, 0x7f00708539a0, 0xc2083b3d80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 375 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080acd40, 0xc2085b0000, 0x8000, 0x8000, 0xa, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208088c90, 0x7f00708539a0, 0xc2080acd40, 0x579, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042738, 0x7f00708539a0, 0xc2080acd40, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042738, 0x7f00708539a0, 0xc2080acd40, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042738, 0x7f00708539a0, 0xc2080acd40, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1083 [chan receive]:
main.(*ChanReader).Read(0xc20836f560, 0xc20890a000, 0x8000, 0x8000, 0xb0, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208237a30, 0x7f00708539a0, 0xc20836f560, 0x10b22, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042d20, 0x7f00708539a0, 0xc20836f560, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042d20, 0x7f00708539a0, 0xc20836f560, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042d20, 0x7f00708539a0, 0xc20836f560, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 955 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699600)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 581 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033af0, 0xc2080acd20)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 371 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc2080116b0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080116b0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208011650, 0xc2085a8000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656cc0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042740, 0xc2085a8000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042758, 0x7f0070853280, 0xc208042740, 0x579, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 370 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080ac4c0, 0xc2085a0000, 0x8000, 0x8000, 0xfb, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208088c70, 0x7f00708539a0, 0xc2080ac4c0, 0x393d, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042740, 0x7f00708539a0, 0xc2080ac4c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042740, 0x7f00708539a0, 0xc2080ac4c0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042740, 0x7f00708539a0, 0xc2080ac4c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 568 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208033ae0, 0xc208455ea0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 565 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208033ae0, 0xc2080acb40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 557 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033ad0, 0xc208455dc0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 929 [IO wait]:
net.(*pollDesc).Wait(0xc2080844c0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080844c0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084460, 0xc2082ac000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656970)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042a48, 0xc2082ac000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042a60, 0x7f0070853280, 0xc208042a48, 0x1cc1, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 425 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208455ac0, 0xc208670000, 0x8000, 0x8000, 0xa2, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2086560f0, 0x7f00708539a0, 0xc208455ac0, 0x6c68, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042828, 0x7f00708539a0, 0xc208455ac0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042828, 0x7f00708539a0, 0xc208455ac0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042828, 0x7f00708539a0, 0xc208455ac0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1099 [IO wait]:
net.(*pollDesc).Wait(0xc208880c30, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208880c30, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208880bd0, 0xc208976000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2086568f0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042d88, 0xc208976000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042da0, 0x7f0070853280, 0xc208042d88, 0x17499, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 583 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033af0, 0xc208455aa0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 575 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac680, 0xc208455a80)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 421 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc2085e2bc0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e2bc0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2085e2b60, 0xc208668000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2082370d0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042830, 0xc208668000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042848, 0x7f0070853280, 0xc208042830, 0x6d30, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 420 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2084559c0, 0xc208660000, 0x8000, 0x8000, 0xc3, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2086560d0, 0x7f00708539a0, 0xc2084559c0, 0x8361, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042830, 0x7f00708539a0, 0xc2084559c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042830, 0x7f00708539a0, 0xc2084559c0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042830, 0x7f00708539a0, 0xc2084559c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 566 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208033ae0, 0xc2084556e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 559 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033ad0, 0xc208455620)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1114 [IO wait]:
net.(*pollDesc).Wait(0xc208880e60, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208880e60, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208880e00, 0xc2089b8000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2086568e0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042de0, 0xc2089b8000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042df0, 0x7f0070853280, 0xc208042de0, 0xbe6b, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 1116 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d4e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1120 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d5c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 716 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033160, 0xc2080adde0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 724 [chan send, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208033190, 0xc2080adea0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:40 +0x26e
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 140 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080acb00, 0xc20825c000, 0x8000, 0x8000, 0xc2, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208089b70, 0x7f00708539a0, 0xc2080acb00, 0x24a2a, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042298, 0x7f00708539a0, 0xc2080acb00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042298, 0x7f00708539a0, 0xc2080acb00, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042298, 0x7f00708539a0, 0xc2080acb00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 141 [chan send, 1 minutes]:
main.(*ChanWriter).Write(0xc2080422b0, 0xc208264000, 0x12, 0x8000, 0x12, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:17 +0x11c
io.Copy(0x7f0070853928, 0xc2080422b0, 0x7f0070853280, 0xc208042298, 0x1e86d, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:364 +0x278
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 732 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac3c0, 0xc2080acc40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 738 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080331c0, 0xc2080acc80)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 743 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208234d40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 145 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080accc0, 0xc2081ce000, 0x8000, 0x8000, 0x12, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208088020, 0x7f00708539a0, 0xc2080accc0, 0x1e84d, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042290, 0x7f00708539a0, 0xc2080accc0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042290, 0x7f00708539a0, 0xc2080accc0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042290, 0x7f00708539a0, 0xc2080accc0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1107 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848cf60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1109 [IO wait]:
net.(*pollDesc).Wait(0xc208880df0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208880df0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208880d90, 0xc208998000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656930)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042db8, 0xc208998000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042dd0, 0x7f0070853280, 0xc208042db8, 0x1a52f, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 715 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033160, 0xc20801ec80)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 723 [chan send, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208033190, 0xc20801f0a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:40 +0x26e
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 150 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc20801eca0, 0xc20827c000, 0x8000, 0x8000, 0xd2, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080887e0, 0x7f00708539a0, 0xc20801eca0, 0x2740a, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080422d8, 0x7f00708539a0, 0xc20801eca0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080422d8, 0x7f00708539a0, 0xc20801eca0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080422d8, 0x7f00708539a0, 0xc20801eca0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 151 [chan send, 1 minutes]:
main.(*ChanWriter).Write(0xc2080422f0, 0xc208284000, 0x12, 0x8000, 0x12, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:17 +0x11c
io.Copy(0x7f0070853928, 0xc2080422f0, 0x7f0070853280, 0xc2080422d8, 0x2181e, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:364 +0x278
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 731 [select, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac3c0, 0xc208365160)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:40 +0x2e3
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 745 [chan receive]:
main.(*ChanReader).Read(0xc208234d80, 0xc208240000, 0x8000, 0x8000, 0x44, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208236240, 0x7f00708539a0, 0xc208234d80, 0x562, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080420b0, 0x7f00708539a0, 0xc208234d80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080420b0, 0x7f00708539a0, 0xc208234d80, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080420b0, 0x7f00708539a0, 0xc208234d80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 742 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208234d20)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 155 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc20801f5a0, 0xc20828c000, 0x8000, 0x8000, 0xb3, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208088800, 0x7f00708539a0, 0xc20801f5a0, 0x21757, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042160, 0x7f00708539a0, 0xc20801f5a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042160, 0x7f00708539a0, 0xc20801f5a0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042160, 0x7f00708539a0, 0xc20801f5a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 435 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208455f00, 0xc208690000, 0x8000, 0x8000, 0x8c, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208656580, 0x7f00708539a0, 0xc208455f00, 0x5db6, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042858, 0x7f00708539a0, 0xc208455f00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042858, 0x7f00708539a0, 0xc208455f00, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042858, 0x7f00708539a0, 0xc208455f00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 588 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc20801f300, 0xc2080ad960)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 582 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033af0, 0xc208455720)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 574 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac680, 0xc208455700)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 431 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc2085e2d80, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e2d80, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2085e2d20, 0xc208688000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2082371d0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042860, 0xc208688000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042878, 0x7f0070853280, 0xc208042860, 0x5e42, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 430 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208455de0, 0xc208680000, 0x8000, 0x8000, 0xad, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208656560, 0x7f00708539a0, 0xc208455de0, 0x7499, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042860, 0x7f00708539a0, 0xc208455de0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042860, 0x7f00708539a0, 0xc208455de0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042860, 0x7f00708539a0, 0xc208455de0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 573 [select, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac680, 0xc2080acd00)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:40 +0x2e3
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 558 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033ad0, 0xc2080ac4a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1094 [IO wait]:
net.(*pollDesc).Wait(0xc208880ae0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208880ae0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208880a80, 0xc208966000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656900)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042d80, 0xc208966000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042d90, 0x7f0070853280, 0xc208042d80, 0xc34e, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 1106 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848cf40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 960 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699700)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 620 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208089840, 0xc208364980)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1045 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836e460)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1082 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836f540)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 315 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2083649a0, 0xc2084e6000, 0x8000, 0x8000, 0x14, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2083b5530, 0x7f00708539a0, 0xc2083649a0, 0xf2b, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042618, 0x7f00708539a0, 0xc2083649a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042618, 0x7f00708539a0, 0xc2083649a0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042618, 0x7f00708539a0, 0xc2083649a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1003 [chan receive]:
main.(*ChanReader).Read(0xc2083b2b00, 0xc2087be000, 0x8000, 0x8000, 0xa, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208656d70, 0x7f00708539a0, 0xc2083b2b00, 0x261, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042b90, 0x7f00708539a0, 0xc2083b2b00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042b90, 0x7f00708539a0, 0xc2083b2b00, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042b90, 0x7f00708539a0, 0xc2083b2b00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 614 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208089820, 0xc208364880)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 932 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2086984e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 924 [IO wait]:
net.(*pollDesc).Wait(0xc208084370, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208084370, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084310, 0xc20829c000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656960)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042a40, 0xc20829c000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042a50, 0x7f0070853280, 0xc208042a40, 0x222a, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 310 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2083648a0, 0xc2084d6000, 0x8000, 0x8000, 0xc, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2083b5510, 0x7f00708539a0, 0xc2083648a0, 0x139d, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042620, 0x7f00708539a0, 0xc2083648a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042620, 0x7f00708539a0, 0xc2083648a0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042620, 0x7f00708539a0, 0xc2083648a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1075 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836f400)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 498 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080c8100, 0xc2080ad140)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 508 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc2080c8110, 0xc2083645a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 180 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080ad160, 0xc2082fa000, 0x8000, 0x8000, 0xad, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080895e0, 0x7f00708539a0, 0xc2080ad160, 0x205df, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042388, 0x7f00708539a0, 0xc2080ad160, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042388, 0x7f00708539a0, 0xc2080ad160, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042388, 0x7f00708539a0, 0xc2080ad160, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 181 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc208011720, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208011720, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2080116c0, 0xc208302000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208236a30)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042388, 0xc208302000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080423a0, 0x7f0070853280, 0xc208042388, 0x1a3f2, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 516 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac940, 0xc2083645c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 524 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080c8120, 0xc2083645e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1105 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848cf20)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 185 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080ad260, 0xc20830a000, 0x8000, 0x8000, 0x8c, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208089600, 0x7f00708539a0, 0xc2080ad260, 0x1a340, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042380, 0x7f00708539a0, 0xc2080ad260, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042380, 0x7f00708539a0, 0xc2080ad260, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042380, 0x7f00708539a0, 0xc2080ad260, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1047 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836e4a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 497 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080c8100, 0xc208365400)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 505 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc2080c8110, 0xc2083654c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 507 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc2080c8110, 0xc2080ad580)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 190 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080ad4e0, 0xc208324000, 0x8000, 0x8000, 0x9d, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080899e0, 0x7f00708539a0, 0xc2080ad4e0, 0x1d6d2, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080423c8, 0x7f00708539a0, 0xc2080ad4e0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080423c8, 0x7f00708539a0, 0xc2080ad4e0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080423c8, 0x7f00708539a0, 0xc2080ad4e0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 191 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc2080119c0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080119c0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208011960, 0xc20832c000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2082370c0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080423c8, 0xc20832c000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080423e0, 0x7f0070853280, 0xc2080423c8, 0x16f14, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 515 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac940, 0xc2080ad5a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 523 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080c8120, 0xc2080ad5c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 997 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b29e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 195 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080ad5e0, 0xc208334000, 0x8000, 0x8000, 0x7a, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208089a00, 0x7f00708539a0, 0xc2080ad5e0, 0x16e9a, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080423c0, 0x7f00708539a0, 0xc2080ad5e0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080423c0, 0x7f00708539a0, 0xc2080ad5e0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080423c0, 0x7f00708539a0, 0xc2080ad5e0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1122 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d600)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 714 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033160, 0xc2080acae0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 722 [chan send, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208033190, 0xc2080acbe0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:40 +0x26e
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 200 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080ade00, 0xc20834c000, 0x8000, 0x8000, 0x9d, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c8880, 0x7f00708539a0, 0xc2080ade00, 0x1d93b, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042408, 0x7f00708539a0, 0xc2080ade00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042408, 0x7f00708539a0, 0xc2080ade00, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042408, 0x7f00708539a0, 0xc2080ade00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 201 [chan send, 1 minutes]:
main.(*ChanWriter).Write(0xc208042420, 0xc208354000, 0x12, 0x8000, 0x12, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:17 +0x11c
io.Copy(0x7f0070853928, 0xc208042420, 0x7f0070853280, 0xc208042408, 0x17182, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:364 +0x278
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 730 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac3c0, 0xc2080adec0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 740 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080331c0, 0xc2080adee0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 741 [IO wait]:
net.(*pollDesc).Wait(0xc208084b50, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208084b50, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084af0, 0xc208238000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2080c9900)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080420a0, 0xc208238000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080420b8, 0x7f0070853280, 0xc2080420a0, 0x562, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 205 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2080adf00, 0xc20835c000, 0x8000, 0x8000, 0x7a, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c88a0, 0x7f00708539a0, 0xc2080adf00, 0x17162, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080423f0, 0x7f00708539a0, 0xc2080adf00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080423f0, 0x7f00708539a0, 0xc2080adf00, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080423f0, 0x7f00708539a0, 0xc2080adf00, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 415 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208455740, 0xc20864c000, 0x8000, 0x8000, 0xa2, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20846bd30, 0x7f00708539a0, 0xc208455740, 0x6c68, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080427f8, 0x7f00708539a0, 0xc208455740, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080427f8, 0x7f00708539a0, 0xc208455740, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080427f8, 0x7f00708539a0, 0xc208455740, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1079 [IO wait]:
net.(*pollDesc).Wait(0xc2088806f0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2088806f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208880690, 0xc208902000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656910)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042d28, 0xc208902000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042d40, 0x7f0070853280, 0xc208042d28, 0x10b22, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 584 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033af0, 0xc208455ee0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 576 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac680, 0xc208455ec0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 411 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc2085e2a00, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e2a00, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2085e29a0, 0xc208644000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2082370f0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042800, 0xc208644000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042818, 0x7f0070853280, 0xc208042800, 0x6d30, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 410 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208455640, 0xc20863c000, 0x8000, 0x8000, 0xc3, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20846bd10, 0x7f00708539a0, 0xc208455640, 0x8361, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042800, 0x7f00708539a0, 0xc208455640, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042800, 0x7f00708539a0, 0xc208455640, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042800, 0x7f00708539a0, 0xc208455640, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 567 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208033ae0, 0xc208455a60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 560 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208033ad0, 0xc2084559a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1104 [IO wait]:
net.(*pollDesc).Wait(0xc208880ca0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208880ca0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208880c40, 0xc208988000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656940)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042db0, 0xc208988000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042dc0, 0x7f0070853280, 0xc208042db0, 0xacab, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 1096 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848c9a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1077 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836f440)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 500 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080c8100, 0xc2083644e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 506 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc2080c8110, 0xc2080ad200)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 220 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208364500, 0xc20839a000, 0x8000, 0x8000, 0x9d, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c8ff0, 0x7f00708539a0, 0xc208364500, 0x1daa9, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042498, 0x7f00708539a0, 0xc208364500, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042498, 0x7f00708539a0, 0xc208364500, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042498, 0x7f00708539a0, 0xc208364500, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 221 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc2080840d0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080840d0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084070, 0xc2083a2000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208236c58)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042498, 0xc2083a2000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080424b0, 0x7f0070853280, 0xc208042498, 0x172e8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 514 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac940, 0xc2080ad220)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 522 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080c8120, 0xc2080ad240)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 528 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc20801f5e0, 0xc2083b3d40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 225 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208364600, 0xc2083aa000, 0x8000, 0x8000, 0x7a, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2080c9020, 0x7f00708539a0, 0xc208364600, 0x17248, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042490, 0x7f00708539a0, 0xc208364600, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042490, 0x7f00708539a0, 0xc208364600, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042490, 0x7f00708539a0, 0xc208364600, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 405 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208454200, 0xc208620000, 0x8000, 0x8000, 0xa, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208033bd0, 0x7f00708539a0, 0xc208454200, 0x51a, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080427c8, 0x7f00708539a0, 0xc208454200, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080427c8, 0x7f00708539a0, 0xc208454200, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080427c8, 0x7f00708539a0, 0xc208454200, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 930 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2086984a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1101 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848caa0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 665 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208032910, 0xc2084541e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 401 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc2085e25a0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e25a0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2085e2540, 0xc208618000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656c60)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080427d0, 0xc208618000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080427e8, 0x7f0070853280, 0xc2080427d0, 0x51a, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 400 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208454100, 0xc208610000, 0x8000, 0x8000, 0xfb, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208033bb0, 0x7f00708539a0, 0xc208454100, 0x3116, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080427d0, 0x7f00708539a0, 0xc208454100, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080427d0, 0x7f00708539a0, 0xc208454100, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080427d0, 0x7f00708539a0, 0xc208454100, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 651 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208032900, 0xc2086986e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 642 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080328f0, 0xc2086989a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 641 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080328f0, 0xc208698620)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 964 [IO wait]:
net.(*pollDesc).Wait(0xc208084f40, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208084f40, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084ee0, 0xc208404000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2083734f0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042b00, 0xc208404000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042b10, 0x7f0070853280, 0xc208042b00, 0x1d1f, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 445 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2086983c0, 0xc2086b6000, 0x8000, 0x8000, 0xb3, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208657580, 0x7f00708539a0, 0xc2086983c0, 0x7711, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042888, 0x7f00708539a0, 0xc2086983c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042888, 0x7f00708539a0, 0xc2086983c0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042888, 0x7f00708539a0, 0xc2086983c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 668 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208032910, 0xc208698aa0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 660 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac100, 0xc208698a80)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 441 [chan send, 1 minutes]:
main.(*ChanWriter).Write(0xc2080428a8, 0xc2086ae000, 0x12, 0x8000, 0x12, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:17 +0x11c
io.Copy(0x7f0070853928, 0xc2080428a8, 0x7f0070853280, 0xc208042890, 0x7731, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:364 +0x278
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 440 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc2086982c0, 0xc2086a6000, 0x8000, 0x8000, 0xd2, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208657550, 0x7f00708539a0, 0xc2086982c0, 0x8ca4, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042890, 0x7f00708539a0, 0xc2086982c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042890, 0x7f00708539a0, 0xc2086982c0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042890, 0x7f00708539a0, 0xc2086982c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 650 [chan send, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208032900, 0xc208698360)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:40 +0x26e
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 649 [select, 1 minutes]:
main.(*SlowCloseToxic).Pipe(0xc208032900, 0xc2084541a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_slow_close.go:26 +0x28c
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 963 [chan receive]:
main.(*ChanReader).Read(0xc208699760, 0xc2083fc000, 0x8000, 0x8000, 0x14, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20846b4e0, 0x7f00708539a0, 0xc208699760, 0x1973, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042ad0, 0x7f00708539a0, 0xc208699760, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042ad0, 0x7f00708539a0, 0xc208699760, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042ad0, 0x7f00708539a0, 0xc208699760, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1081 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836f520)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 455 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208698740, 0xc2086d8000, 0x8000, 0x8000, 0xa1, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208657890, 0x7f00708539a0, 0xc208698740, 0x6b1d, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080428b8, 0x7f00708539a0, 0xc208698740, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080428b8, 0x7f00708539a0, 0xc208698740, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080428b8, 0x7f00708539a0, 0xc208698740, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1000 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b2aa0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 667 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc208032910, 0xc208698720)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 659 [chan send, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac100, 0xc208698700)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:51 +0x233
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 451 [IO wait, 1 minutes]:
net.(*pollDesc).Wait(0xc2085e3100, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e3100, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2085e30a0, 0xc2086d0000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208237150)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080428c0, 0xc2086d0000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080428d8, 0x7f0070853280, 0xc2080428c0, 0x6bbe, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 450 [chan receive, 1 minutes]:
main.(*ChanReader).Read(0xc208698640, 0xc2086c8000, 0x8000, 0x8000, 0xc2, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208657870, 0x7f00708539a0, 0xc208698640, 0x81f4, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080428c0, 0x7f00708539a0, 0xc208698640, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080428c0, 0x7f00708539a0, 0xc208698640, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080428c0, 0x7f00708539a0, 0xc208698640, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 657 [select, 1 minutes]:
main.(*LatencyToxic).Pipe(0xc2080ac100, 0xc2084541c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_latency.go:40 +0x2e3
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 644 [chan receive, 1 minutes]:
main.(*TimeoutToxic).Pipe(0xc2080328f0, 0xc2086982a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_timeout.go:36 +0x15a
created by main.(*ToxicLink).SetToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:81 +0xc6

goroutine 1078 [chan receive]:
main.(*ChanReader).Read(0xc20836f460, 0xc2088fa000, 0x8000, 0x8000, 0xcd, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208237a10, 0x7f00708539a0, 0xc20836f460, 0x6018, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042d28, 0x7f00708539a0, 0xc20836f460, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042d28, 0x7f00708539a0, 0xc20836f460, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042d28, 0x7f00708539a0, 0xc20836f460, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1046 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836e480)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 749 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208234e60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 748 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208234e40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 747 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208234e20)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 746 [IO wait]:
net.(*pollDesc).Wait(0xc208084d10, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208084d10, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084cb0, 0xc208248000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2080c9980)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080420b0, 0xc208248000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080420d0, 0x7f0070853280, 0xc2080420b0, 0xca27, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 1048 [chan receive]:
main.(*ChanReader).Read(0xc20836e4c0, 0xc20888a000, 0x8000, 0x8000, 0xcd, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208236bb0, 0x7f00708539a0, 0xc20836e4c0, 0xa6c3, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042c98, 0x7f00708539a0, 0xc20836e4c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042c98, 0x7f00708539a0, 0xc20836e4c0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042c98, 0x7f00708539a0, 0xc20836e4c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 476 [semacquire]:
sync.(*WaitGroup).Wait(0xc208455800)
    /usr/local/Cellar/go/1.4/libexec/src/sync/waitgroup.go:132 +0x169
main.(*ToxicCollection).setToxic(0xc20800a140, 0x7f0070853570, 0xc20801e760, 0x1)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_collection.go:106 +0x29b
main.(*ToxicCollection).ResetToxics(0xc20800a140)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_collection.go:46 +0x121
main.(*server).ResetState(0xc208042020, 0x7f00708533a0, 0xc20833fe00, 0xc208378750)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/api.go:107 +0x120
main.*server.ResetState·fm(0x7f00708533a0, 0xc20833fe00, 0xc208378750)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/api.go:26 +0x45
net/http.HandlerFunc.ServeHTTP(0xc208032820, 0x7f00708533a0, 0xc20833fe00, 0xc208378750)
    /usr/local/Cellar/go/1.4/libexec/src/net/http/server.go:1265 +0x41
github.com/gorilla/mux.(*Router).ServeHTTP(0xc20800a0f0, 0x7f00708533a0, 0xc20833fe00, 0xc208378750)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/Godeps/_workspace/src/github.com/gorilla/mux/mux.go:98 +0x297
net/http.(*ServeMux).ServeHTTP(0xc20803c780, 0x7f00708533a0, 0xc20833fe00, 0xc208378750)
    /usr/local/Cellar/go/1.4/libexec/src/net/http/server.go:1541 +0x17d
net/http.serverHandler.ServeHTTP(0xc20800ca80, 0x7f00708533a0, 0xc20833fe00, 0xc208378750)
    /usr/local/Cellar/go/1.4/libexec/src/net/http/server.go:1703 +0x19a
net/http.(*conn).serve(0xc2083752c0)
    /usr/local/Cellar/go/1.4/libexec/src/net/http/server.go:1204 +0xb57
created by net/http.(*Server).Serve
    /usr/local/Cellar/go/1.4/libexec/src/net/http/server.go:1751 +0x35e

goroutine 1049 [IO wait]:
net.(*pollDesc).Wait(0xc2088800d0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2088800d0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208880070, 0xc208892000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2086569b0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042c98, 0xc208892000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042cb0, 0x7f0070853280, 0xc208042c98, 0xda51, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 959 [IO wait]:
net.(*pollDesc).Wait(0xc208084ed0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208084ed0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084e70, 0xc2083f4000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2086567b0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042ad8, 0xc2083f4000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042af0, 0x7f0070853280, 0xc208042ad8, 0x1973, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 1076 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836f420)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 750 [chan receive]:
main.(*ChanReader).Read(0xc208234e80, 0xc208200000, 0x8000, 0x8000, 0x4e6, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208236260, 0x7f00708539a0, 0xc208234e80, 0xca27, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080420a0, 0x7f00708539a0, 0xc208234e80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080420a0, 0x7f00708539a0, 0xc208234e80, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080420a0, 0x7f00708539a0, 0xc208234e80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 751 [IO wait]:
net.(*pollDesc).Wait(0xc208084e60, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208084e60, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084e00, 0xc208210000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2080c9920)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042148, 0xc208210000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042168, 0x7f0070853280, 0xc208042148, 0x1332d, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 752 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2082353c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 753 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2082353e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 754 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235400)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 755 [chan receive]:
main.(*ChanReader).Read(0xc208235420, 0xc208218000, 0x8000, 0x8000, 0x5a, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2082366e0, 0x7f00708539a0, 0xc208235420, 0x1332d, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042158, 0x7f00708539a0, 0xc208235420, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042158, 0x7f00708539a0, 0xc208235420, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042158, 0x7f00708539a0, 0xc208235420, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 756 [IO wait]:
net.(*pollDesc).Wait(0xc208084fb0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208084fb0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084f50, 0xc2081d6000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2080c9950)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042158, 0xc2081d6000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042188, 0x7f0070853280, 0xc208042158, 0x196, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 757 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2082354c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 758 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2082354e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 759 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235500)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 760 [chan receive]:
main.(*ChanReader).Read(0xc208235520, 0xc2081de000, 0x8000, 0x8000, 0x2e, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208236700, 0x7f00708539a0, 0xc208235520, 0x196, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042148, 0x7f00708539a0, 0xc208235520, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042148, 0x7f00708539a0, 0xc208235520, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042148, 0x7f00708539a0, 0xc208235520, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 761 [IO wait]:
net.(*pollDesc).Wait(0xc208085020, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085020, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208084fc0, 0xc2081e6000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2085e0880)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042198, 0xc2081e6000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080421a8, 0x7f0070853280, 0xc208042198, 0xffaf, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 762 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235740)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 763 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235760)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 764 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235780)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 765 [chan receive]:
main.(*ChanReader).Read(0xc2082357a0, 0xc2081ee000, 0x8000, 0x8000, 0x44ad, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2082369f0, 0x7f00708539a0, 0xc2082357a0, 0xffaf, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080421a0, 0x7f00708539a0, 0xc2082357a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080421a0, 0x7f00708539a0, 0xc2082357a0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080421a0, 0x7f00708539a0, 0xc2082357a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 766 [IO wait]:
net.(*pollDesc).Wait(0xc208085170, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085170, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208085110, 0xc2081ae000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc20845a3a0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080421a0, 0xc2081ae000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080421b8, 0x7f0070853280, 0xc2080421a0, 0xb0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 767 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235840)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 768 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235860)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 769 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235880)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 770 [chan receive]:
main.(*ChanReader).Read(0xc2082358a0, 0xc2081b6000, 0x8000, 0x8000, 0x82, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208236a10, 0x7f00708539a0, 0xc2082358a0, 0xb0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042198, 0x7f00708539a0, 0xc2082358a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042198, 0x7f00708539a0, 0xc2082358a0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042198, 0x7f00708539a0, 0xc2082358a0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 772 [IO wait]:
net.(*pollDesc).Wait(0xc2080853a0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080853a0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208085340, 0xc20846c000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc20845a3c0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080421e8, 0xc20846c000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc2080421f8, 0x7f0070853280, 0xc2080421e8, 0x16efa, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 773 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235be0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 774 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235c00)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 775 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235c20)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 776 [chan receive]:
main.(*ChanReader).Read(0xc208235c40, 0xc208474000, 0x8000, 0x8000, 0x6db7, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208236f40, 0x7f00708539a0, 0xc208235c40, 0x16efa, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080421f0, 0x7f00708539a0, 0xc208235c40, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080421f0, 0x7f00708539a0, 0xc208235c40, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080421f0, 0x7f00708539a0, 0xc208235c40, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 777 [IO wait]:
net.(*pollDesc).Wait(0xc2080855d0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080855d0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208085570, 0xc20847c000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2083b41c0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080421f0, 0xc20847c000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042208, 0x7f0070853280, 0xc2080421f0, 0xfa, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 778 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235ce0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 779 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235d00)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 780 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235d20)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 781 [chan receive]:
main.(*ChanReader).Read(0xc208235d40, 0xc208484000, 0x8000, 0x8000, 0x4a, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208236f60, 0x7f00708539a0, 0xc208235d40, 0xfa, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080421e8, 0x7f00708539a0, 0xc208235d40, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080421e8, 0x7f00708539a0, 0xc208235d40, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080421e8, 0x7f00708539a0, 0xc208235d40, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 782 [IO wait]:
net.(*pollDesc).Wait(0xc2080851e0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080851e0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208085180, 0xc2082cc000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc20845a3f0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080421e0, 0xc2082cc000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042230, 0x7f0070853280, 0xc2080421e0, 0x1bd61, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 783 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235e80)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 784 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235ea0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 785 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235ec0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 786 [chan receive]:
main.(*ChanReader).Read(0xc208235ee0, 0xc2082d4000, 0x8000, 0x8000, 0x513, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208237030, 0x7f00708539a0, 0xc208235ee0, 0x1bd61, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042228, 0x7f00708539a0, 0xc208235ee0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042228, 0x7f00708539a0, 0xc208235ee0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042228, 0x7f00708539a0, 0xc208235ee0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 787 [IO wait]:
net.(*pollDesc).Wait(0xc208085330, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085330, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2080852d0, 0xc2082dc000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208373350)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042228, 0xc2082dc000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042240, 0x7f0070853280, 0xc208042228, 0x116, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 788 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235f80)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 789 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235fa0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 790 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208235fc0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 791 [chan receive]:
main.(*ChanReader).Read(0xc208235fe0, 0xc2085b8000, 0x8000, 0x8000, 0x66, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208237050, 0x7f00708539a0, 0xc208235fe0, 0x116, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc2080421e0, 0x7f00708539a0, 0xc208235fe0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc2080421e0, 0x7f00708539a0, 0xc208235fe0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc2080421e0, 0x7f00708539a0, 0xc208235fe0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 807 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d100)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 808 [chan receive]:
main.(*ChanReader).Read(0xc20848d120, 0xc208178000, 0x8000, 0x8000, 0xc, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2085e0190, 0x7f00708539a0, 0xc20848d120, 0xa846, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042468, 0x7f00708539a0, 0xc20848d120, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042468, 0x7f00708539a0, 0xc20848d120, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042468, 0x7f00708539a0, 0xc20848d120, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 809 [IO wait]:
net.(*pollDesc).Wait(0xc208010370, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208010370, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208010310, 0xc208180000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2086569a0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042468, 0xc208180000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042480, 0x7f0070853280, 0xc208042468, 0xeeba, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 810 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d1c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 811 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d1e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 812 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d200)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 813 [chan receive]:
main.(*ChanReader).Read(0xc20848d220, 0xc208188000, 0x8000, 0x8000, 0x14, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2085e01b0, 0x7f00708539a0, 0xc20848d220, 0xeeba, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042460, 0x7f00708539a0, 0xc20848d220, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042460, 0x7f00708539a0, 0xc20848d220, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042460, 0x7f00708539a0, 0xc20848d220, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 940 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208698ca0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 941 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208698cc0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 936 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208698bc0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 928 [chan receive]:
main.(*ChanReader).Read(0xc208698400, 0xc2082a4000, 0x8000, 0x8000, 0xc, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20845bf90, 0x7f00708539a0, 0xc208698400, 0x222a, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042a48, 0x7f00708539a0, 0xc208698400, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042a48, 0x7f00708539a0, 0xc208698400, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042a48, 0x7f00708539a0, 0xc208698400, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 913 [select]:
main.(*ToxicStub).Interrupt(0xc2083b2da0, 0xc2082c97a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic.go:49 +0xf1
main.(*ToxicLink).SetToxic(0xc208506b40, 0x7f0070853570, 0xc20801e760, 0x1)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:80 +0x61
main.func·004(0xc208506b40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_collection.go:103 +0x76
created by main.(*ToxicCollection).setToxic
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_collection.go:104 +0x26d

goroutine 911 [chan receive]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 910 [IO wait]:
net.(*pollDesc).Wait(0xc2085e3e20, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e3e20, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc2085e3dc0, 0x0, 0x7f0070851b70, 0xc20846b480)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc2080429d0, 0x7f00708538f8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc2080429d0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:244 +0x4c
main.(*Proxy).server(0xc20805a630)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:137 +0x630
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 909 [chan receive]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 908 [IO wait]:
net.(*pollDesc).Wait(0xc2085e3c60, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e3c60, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc2085e3c00, 0x0, 0x7f0070851b70, 0xc208656780)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc208042988, 0x7f00708538f8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc208042988, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:244 +0x4c
main.(*Proxy).server(0xc20805a990)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:137 +0x630
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 907 [chan receive]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 906 [semacquire]:
sync.(*Mutex).Lock(0xc20800a140)
    /usr/local/Cellar/go/1.4/libexec/src/sync/mutex.go:66 +0xd3
main.(*ToxicCollection).StartLink(0xc20800a140, 0xc2083b2e20, 0x15, 0x7f0070853280, 0xc208042bc0, 0x7f00708538f8, 0xc208042bc8)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_collection.go:110 +0x33
main.(*Proxy).server(0xc20805a240)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:180 +0x14d4
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 905 [chan receive]:
main.func·003()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:117 +0x7c
created by main.(*Proxy).server
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:134 +0x608

goroutine 904 [IO wait]:
net.(*pollDesc).Wait(0xc2085e38e0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e38e0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc2085e3880, 0x0, 0x7f0070851b70, 0xc20845bf60)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:419 +0x40b
net.(*TCPListener).AcceptTCP(0xc2080424d8, 0x7f00708538f8, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:234 +0x4e
net.(*TCPListener).Accept(0xc2080424d8, 0x0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:244 +0x4c
main.(*Proxy).server(0xc20805a480)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:137 +0x630
created by main.start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/proxy.go:198 +0x78

goroutine 874 [IO wait]:
net.(*pollDesc).Wait(0xc2085e2060, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e2060, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2085e2000, 0xc208720000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2083b4868)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042918, 0xc208720000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042928, 0x7f0070853280, 0xc208042918, 0x6cdc, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 875 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2081a13c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 876 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2081a13e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 877 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2081a1400)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 878 [chan receive]:
main.(*ChanReader).Read(0xc2081a1420, 0xc208728000, 0x8000, 0x8000, 0x6ba, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208132a10, 0x7f00708539a0, 0xc2081a1420, 0x6cdc, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042920, 0x7f00708539a0, 0xc2081a1420, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042920, 0x7f00708539a0, 0xc2081a1420, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042920, 0x7f00708539a0, 0xc2081a1420, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 879 [IO wait]:
net.(*pollDesc).Wait(0xc2085e2220, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2085e2220, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2085e21c0, 0xc208730000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2083b4a28)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042920, 0xc208730000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042938, 0x7f0070853280, 0xc208042920, 0xa19, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 880 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2081a14c0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 881 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2081a14e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 882 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2081a1500)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 883 [chan receive]:
main.(*ChanReader).Read(0xc2081a1520, 0xc208738000, 0x8000, 0x8000, 0xa, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208132a30, 0x7f00708539a0, 0xc2081a1520, 0xa19, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042918, 0x7f00708539a0, 0xc2081a1520, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042918, 0x7f00708539a0, 0xc2081a1520, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042918, 0x7f00708539a0, 0xc2081a1520, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 994 [IO wait]:
net.(*pollDesc).Wait(0xc208085b80, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085b80, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208085b20, 0xc2087a6000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2083b4458)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042b90, 0xc2087a6000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042ba0, 0x7f0070853280, 0xc208042b90, 0x161b, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 984 [IO wait]:
net.(*pollDesc).Wait(0xc208085800, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085800, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2080857a0, 0xc208784000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656890)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042b60, 0xc208784000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042b70, 0x7f0070853280, 0xc208042b60, 0x528, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 985 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b2420)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 986 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b2440)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 987 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b2460)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 988 [chan receive]:
main.(*ChanReader).Read(0xc2083b2480, 0xc20878c000, 0x8000, 0x8000, 0xc, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2086567c0, 0x7f00708539a0, 0xc2083b2480, 0x528, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042b68, 0x7f00708539a0, 0xc2083b2480, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042b68, 0x7f00708539a0, 0xc2083b2480, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042b68, 0x7f00708539a0, 0xc2083b2480, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 989 [IO wait]:
net.(*pollDesc).Wait(0xc208085a30, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085a30, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2080859d0, 0xc208794000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2086568a0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042b68, 0xc208794000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042b80, 0x7f0070853280, 0xc208042b68, 0x6c7, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 990 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b25a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 991 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b25e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 992 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2083b2620)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 993 [chan receive]:
main.(*ChanReader).Read(0xc2083b2660, 0xc20879c000, 0x8000, 0x8000, 0x14, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2086567e0, 0x7f00708539a0, 0xc2083b2660, 0x6c7, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042b60, 0x7f00708539a0, 0xc2083b2660, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042b60, 0x7f00708539a0, 0xc2083b2660, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042b60, 0x7f00708539a0, 0xc2083b2660, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 973 [chan receive]:
main.(*ChanReader).Read(0xc208699b80, 0xc20841c000, 0x8000, 0x8000, 0xa, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20846b980, 0x7f00708539a0, 0xc208699b80, 0x282, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042b00, 0x7f00708539a0, 0xc208699b80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042b00, 0x7f00708539a0, 0xc208699b80, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042b00, 0x7f00708539a0, 0xc208699b80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 972 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699b60)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 971 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699b40)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 970 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208699b20)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 969 [IO wait]:
net.(*pollDesc).Wait(0xc208085250, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208085250, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2080851f0, 0xc208414000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208373550)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042b08, 0xc208414000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042b20, 0x7f0070853280, 0xc208042b08, 0x282, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 968 [chan receive]:
main.(*ChanReader).Read(0xc208699a80, 0xc20840c000, 0x8000, 0x8000, 0x6ba, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc20846b960, 0x7f00708539a0, 0xc208699a80, 0x1d1f, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042b08, 0x7f00708539a0, 0xc208699a80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042b08, 0x7f00708539a0, 0xc208699a80, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042b08, 0x7f00708539a0, 0xc208699a80, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1103 [chan receive]:
main.(*ChanReader).Read(0xc20848cae0, 0xc20897e000, 0x8000, 0x8000, 0xed, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208372240, 0x7f00708539a0, 0xc20848cae0, 0x17499, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042d80, 0x7f00708539a0, 0xc20848cae0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042d80, 0x7f00708539a0, 0xc20848cae0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042d80, 0x7f00708539a0, 0xc20848cae0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 926 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc208698300)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 927 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc2086983e0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1050 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836e560)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1051 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836e580)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1052 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20836e5a0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1053 [chan receive]:
main.(*ChanReader).Read(0xc20836e5c0, 0xc20889a000, 0x8000, 0x8000, 0xb0, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208236bd0, 0x7f00708539a0, 0xc20836e5c0, 0xda51, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042c90, 0x7f00708539a0, 0xc20836e5c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042c90, 0x7f00708539a0, 0xc20836e5c0, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042c90, 0x7f00708539a0, 0xc20836e5c0, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1074 [IO wait]:
net.(*pollDesc).Wait(0xc2088805a0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2088805a0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208880540, 0xc2088f2000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc208656920)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042d20, 0xc2088f2000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042d30, 0x7f0070853280, 0xc208042d20, 0x6018, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 1119 [IO wait]:
net.(*pollDesc).Wait(0xc208880fb0, 0x72, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208880fb0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc208880f50, 0xc2089c8000, 0x8000, 0x8000, 0x0, 0x7f0070851b70, 0xc2086568d0)
    /usr/local/Cellar/go/1.4/libexec/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc208042de8, 0xc2089c8000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:121 +0xdc
io.Copy(0x7f0070853928, 0xc208042e00, 0x7f0070853280, 0xc208042de8, 0x198ce, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
main.func·001()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:48 +0x7e
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:58 +0x13e

goroutine 1118 [chan receive]:
main.(*ChanReader).Read(0xc20848d520, 0xc2089c0000, 0x8000, 0x8000, 0x198, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208372880, 0x7f00708539a0, 0xc20848d520, 0xbe6b, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042de8, 0x7f00708539a0, 0xc20848d520, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042de8, 0x7f00708539a0, 0xc20848d520, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042de8, 0x7f00708539a0, 0xc20848d520, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1117 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d500)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1113 [chan receive]:
main.(*ChanReader).Read(0xc20848d280, 0xc2089a0000, 0x8000, 0x8000, 0xb7, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc208372570, 0x7f00708539a0, 0xc20848d280, 0x1a52f, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042db0, 0x7f00708539a0, 0xc20848d280, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042db0, 0x7f00708539a0, 0xc20848d280, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042db0, 0x7f00708539a0, 0xc20848d280, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

goroutine 1112 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d260)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1111 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d240)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1110 [select]:
main.(*NoopToxic).Pipe(0x8bf8d0, 0xc20848d160)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/toxic_noop.go:18 +0x19b
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:60 +0x223

goroutine 1123 [chan receive]:
main.(*ChanReader).Read(0xc20848d620, 0xc2089d0000, 0x8000, 0x8000, 0xdb, 0x0, 0x0)
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/io_chan.go:58 +0x45f
io.Copy(0x7f0070853a18, 0xc2083728a0, 0x7f00708539a0, 0xc20848d620, 0x198ce, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:362 +0x1f6
net.genericReadFrom(0x7f0070853258, 0xc208042de0, 0x7f00708539a0, 0xc20848d620, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/net.go:404 +0xb5
net.(*TCPConn).ReadFrom(0xc208042de0, 0x7f00708539a0, 0xc20848d620, 0x7f00708539f0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/net/tcpsock_posix.go:72 +0xe0
io.Copy(0x7f0070853258, 0xc208042de0, 0x7f00708539a0, 0xc20848d620, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.4/libexec/src/io/io.go:358 +0x13d
main.func·002()
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:63 +0xb8
created by main.(*ToxicLink).Start
    /Users/sirup/src/go/src/github.com/Shopify/toxiproxy/link.go:75 +0x2e0

rax     0xca
rbx     0x8b7c78
rcx     0xffffffffffffffff
rdx     0x0
rdi     0x8b7c78
rsi     0x0
rbp     0x1
rsp     0x7fff489e9c78
r8      0x0
r9      0x0
r10     0x0
r11     0x286
r12     0x0
r13     0x0
r14     0x21
r15     0x10
rip     0x44a891
rflags  0x286
cs      0x33
fs      0x0
gs      0x0

Cant access toxiproxy server from outside host

I am not able to hit the toxiproxy server using the REST API for configuring proxies from outside of the host where it is running.

netstat -tulpn shows that it is listening to the loopback address 127.0.0.1:8474

For now as a workaround what I did was to create another proxy which listens on public ip and port 80 and forwards to localhost:8474

PUBLIC_IP:80 --> localhost:8474

Wondering if anyone else faced this issue?

macOS Sierra issue

After creating a new proxy and adding a latency toxic:

toxiproxy-cli create postgres --listen 127.0.0.1:5434 --upstream 127.0.0.1:5432
toxiproxy add postgres --type latency --toxicName latency --attributes latency=10 --downstream

Trying to establish a connection via PSQL never succeeds:

psql -d postgres://127.0.0.1:5434/postgres?sslmode=disable

However, connecting directly on port 5432 (not via toxiproxy) continues to work fine.

This is affecting a machine running macOS 10.12.1. The setup detailed above with toxiproxy works fine on OSX El Capitan 10.11.6.

Any help debugging this would be most appreciated!


Version information:

  • toxiproxy-cli version 2.0.0 (installed via Homebrew)
  • psql (PostgreSQL) 9.5.5

Support for cluster of toxiproxy nodes

It would be nice if we can setup a cluster of toxiproxy nodes so that can use a load balancer to balance loads between these nodes. This avoids a single point of failure.

If a toxic is configured in any of the nodes, it should propagate to all nodes in the cluster automatically.

Want to check if this feature looks interesting with everyone.

Simplify by always using ProxyWithToxics

Is there any reason why the Proxy type doesn't just have Toxics always? It's perfectly fine for them to be nil. I also think proxies should be returned with toxics in all cases in the API. This simplifies things a great deal.

@xthexder thoughts?

how to specify multiple attributes? incorrect handling of errors

problem 1) it's unclear how to specify multiple attributes when adding a toxic.
the example in the readme only uses one attribute
(https://github.com/Shopify/toxiproxy#cli-example)
and the cli help docs don't specify how to specify multiple attributes (see help msg below). as a user I'm guessing either specify -a key=val,key2=val2 or -a key=val -a key2=val2

cli toxic add                                                                                                                                                          
NAME:
   toxiproxy-cli toxic add - add a new toxic

USAGE:
   toxiproxy-cli toxic add [command options] <proxyName>

OPTIONS:
   --toxicName value, -n value    name of the toxic
   --type value, -t value         type of toxic
   --toxicity value, --tox value  toxicity of toxic
   --attribute value, -a value    toxic attribute in key=value format
   --upstream, -u                 add toxic to upstream
   --downstream, -d               add toxic to downstream

Proxy name is required as the first argument.

problem 2) either approach i guessed above seems to work sort of, but things aren't exactly working.

approach 1 - comma separated items - seems to be the right way, see this run in the latest docker container...

$ toxiproxy-cli create cassandra -l 0.0.0.0:9042 -u cassandra:9042
Created new proxy cassandra
$ toxiproxy-cli list
root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli list
Listen          Upstream        Name    Enabled Toxics
======================================================================
[::]:9042       cassandra:9042  cassandra       true    None

Hint: inspect toxics with `toxiproxy-cli inspect <proxyName>`
$ toxiproxy-cli toxic add -t latency -a latency=1000,jitter=500 cassandra                                                                 
Added downstream latency toxic 'latency_downstream' on proxy 'cassandra'
$ toxiproxy-cli list                                                     
Listen          Upstream        Name    Enabled Toxics
======================================================================
[::]:9042       cassandra:9042  cassandra       true    1

Hint: inspect toxics with `toxiproxy-cli inspect <proxyName>`
$ toxiproxy-cli inspect cassandra
Name: cassandra Listen: [::]:9042       Upstream: cassandra:9042
======================================================================
Upstream toxics:
Proxy has no Upstream toxics enabled.

Downstream toxics:
latency_downstream: type=latency stream=downstream toxicity=1.00 attributes=[ jitter=500 latency=1000 ]

Hint: add a toxic with `toxiproxy-cli toxic add`

... so the inspect output looks good. however, I'm having issues getting it to work. it seems to be deplaying requests some of the time but also long periods of undelayed, non-toxic proxying.

so I tried the other way but now latency is set to 0 for some reason, so maybe it's the comma separated approach after all?
edit: in testing the toxic does seem to work effectively

root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli list
Listen          Upstream        Name    Enabled Toxics
======================================================================
[::]:9042       cassandra:9042  cassandra       true    None

Hint: inspect toxics with `toxiproxy-cli inspect <proxyName>`
root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli toxic add -t latency -a latency=1000 -a jitter=500 cassandra                                                              
Added downstream latency toxic 'latency_downstream' on proxy 'cassandra'
root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli list                                                        
Listen          Upstream        Name    Enabled Toxics
======================================================================
[::]:9042       cassandra:9042  cassandra       true    1

Hint: inspect toxics with `toxiproxy-cli inspect <proxyName>`
root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli inspect cassandra
Name: cassandra Listen: [::]:9042       Upstream: cassandra:9042
======================================================================
Upstream toxics:
Proxy has no Upstream toxics enabled.

Downstream toxics:
latency_downstream: type=latency stream=downstream toxicity=1.00 attributes=[ jitter=500 latency=0 ]

Hint: add a toxic with `toxiproxy-cli toxic add`
root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# 

When I try this outside of the docker container, using the latest code in git, the comma separated approach doesn't work at all and I have to switch to multiple -a args

$ ./cli toxic add -t latency -a latency=1000,jitter=500 web
Failed to add toxic: AddToxic: HTTP 400: bad request body: json: cannot unmarshal string into Go value of type int64

$ ./cli toxic add -t latency -a latency=1000 -a jitter=500 web
Added downstream latency toxic 'latency_downstream' on proxy 'web'

the first one submits json like:

{"name":"","type":"latency","stream":"downstream","toxicity":1,"attributes":{"latency":"1000,jitter=500"}}

which looks invalid. the second approach submits:

{"attributes":{"latency":1000,"jitter":500},"name":"latency_downstream","type":"latency","stream":"downstream","toxicity":1}

making sure all connections are subject to a toxic / creating proxy-toxic atomically

Hello again Jacob & co,

I'm currently seeing something weird with a proxy that has a latency toxic applied to it with toxicity of 1.0,
for some reason some of the connections that go through it have no latency.

I've tried a few tactics:

  1. doing an update on the toxic. because the code looks like it may apply the latency toxic to all active connections going through a proxy, i need to study the code a bit more (pretty intense stuff btw!). this tactic doesn't seem to work: some connections are still undelayed.
  2. execute 3 commands (proxy delete, proxy add, and add toxic to proxy) in sequence from a script, trying to minimize the timeframe between them, "hopefully" faster than my application reconnecting. doesn't seem to work: some connections are still undelayed.

Is 1 supposed to work at all? 2 is obviously racey.
Note: I'm using the latest code in git master.
Is there a better way to solve or diagnose this problem? (idea: toxiproxy-cli inspect could do a dump of connections through a proxy and whether they are in noop or toxic mode)

would it make sense to add a mode to toxiproxy-cli to add a proxy and a toxic atomically? So that as soon as the proxy listens, the toxic is ready to be applied for any new incoming connections?
I maybe be able to contribute such a feature, I would just need some direction on how the code should fit together.
Or is there another/better way to enforce a toxic is applied to all connections through a proxy?

cli: Allow host to be specified

At Shopify we use a VM to run services that a project depends on, including toxiproxy. Unfortunately, toxiprox-cli is hard coded to use localhost. That means that toxiproxy-cli can't be used from outside of the VM

I think there should be a global option to specify the host. E.g. toxiproxy-cli --host=example.com list

the deb package does not install any init.d file

The README mentions

wget -O toxiproxy-1.2.1.deb https://github.com/Shopify/toxiproxy/releases/download/v1.2.1/toxiproxy_1.2.1_amd64.deb
$ sudo dpkg -i toxiproxy-1.2.1.deb
$ sudo service toxiproxy start

for ubuntu, however when installing it on a ubuntu 14.04 , I can't do the service start

Update Brew formula

bin.install "1.0.0-darwin-amd64" => "toxiproxy"
to
bin.install "toxiproxy-darwin-amd64" => "toxiproxy"

Otherwise you get an error:
Error: No such file or directory - 1.0.0-darwin-amd64

Simulate slow connection open

I'm trying to use Toxiproxy to test a connection that is slow to open (I am specifically trying to test our Elastic Search configuration which has both a request_timeout and a request open_timeout which is shorter https://github.com/Shopify/shopify-app-store/pull/1297).

My test fails after the full timeout, not the open timeout (4 vs 2 seconds). From a discussion with @sirupsen he pointed out that this is probably because when the Elastic Search client is routed through Toxiproxy the Toxiproxy server accepts the connection immediately and then applies the toxic. From the Elastic Search client's perspective, it passed the request open_timeout for this reason.

For discussion
@sirupsen @xthexder @jpittis

Populate doesn't compare hostnames properly

When a proxy is created with a hostname such as localhost, toxiproxy will resolve the address and store the ip address 127.0.0.1.
This means that host comparisons such as in /populate will fail unless a static ip is used originally.

The address should be resolved to an IP and then compared after so that comparisons are consistent.

No docker image?

It seems so that no docker image is available ❗ ❓

tuxinaut::sm191 { ~/workspace } -> $ sudo docker pull shopify/toxiproxy
Pulling repository shopify/toxiproxy
FATA[0002] Tag latest not found in repository shopify/toxiproxy 
tuxinaut::sm191 { ~/workspace } -> $

Issues with re-routing https traffic

Hi,

I'm trying to setup a proxy for the https port 443.
I've made the change such that the service in my VM runs on 488, and have used toxy-proxy cli to create a proxy which runs on 443, and forwards it to 488.

./toxiproxy-cli-linux-amd64 create Navaneethan --listen localhost:443 --upstream localhost:488

The problem however is, I see a bunch of "source Terminated" messages on the toxy-proxy-server.
Something like this.

My question is, does toxy proxy support https traffic routing ? What am I missing. Is there any specific configuration change on the apache webserver that lets me route the https traffic ?

Any help is appreciated.

INFO[0016] Started proxy name=Navaneethan proxy=16.125.74.114:443 upstream=ci-0050569a4a60.vse.rdlabs.hpecorp.net:488
INFO[0018] Accepted client client=16.78.175.17:39824 name=Navaneethan proxy=16.125.74.114:443 upstream=ci-0050569a4a60.vse.rdlabs.hpecorp.net:488
WARN[0018] Source terminated bytes=517 err=read tcp 16.125.74.114:443->16.78.175.17:39824: use of closed network connection name=Navaneethan
INFO[0018] Accepted client client=16.78.175.17:39825 name=Navaneethan proxy=16.125.74.114:443 upstream=ci-0050569a4a60.vse.rdlabs.hpecorp.net:488
WARN[0018] Source terminated bytes=178 err=read tcp 16.125.74.114:443->16.78.175.17:39825: use of closed network connection name=Navaneethan
INFO[0020] Accepted client client=16.78.175.17:39826 name=Navaneethan proxy=16.125.74.114:443 upstream=ci-0050569a4a60.vse.rdlabs.hpecorp.net:488
INFO[0020] Accepted client client=16.78.175.17:39827 name=Navaneethan proxy=16.125.74.114:443 upstream=ci-0050569a4a60.vse.rdlabs.hpecorp.net:488
INFO[0020] Accepted client client=16.78.175.17:39828 name=Navaneethan proxy=16.125.74.114:443 upstream=ci-0050569a4a60.vse.rdlabs.hpecorp.net:488
WARN[0020] Source terminated bytes=517 err=read tcp 16.125.74.114:443->16.78.175.17:39827: use of closed network connection name=Navaneethan
WARN[0020] Source terminated bytes=517 err=read tcp 16.125.74.114:443->16.78.175.17:39826: use of closed network connection name=Navaneethan
INFO[0020] Accepted client client=16.78.175.17:39829 name=Navaneethan proxy=16.125.74.114:443 upstream=ci-0050569a4a60.vse.rdlabs.hpecorp.net:488
INFO[0020] Accepted client client=16.78.175.17:39830 name=Navaneethan proxy=16.125.74.114:443 upstream=ci-0050569a4a60.vse.rdlabs.hpecorp.net:488
INFO[0020] Accepted client client=16.78.175.17:39831 name=Navaneethan proxy=16.125.74.114:443 upstream=ci-0050569a4a60.vse.rdlabs.hpecorp.net:488

Toxics are not set when creating a proxy for the first time.

When using the Go client as follows, toxics are not added to a proxy.
Given var p []toxiproxy.Proxy with toxics.

proxy := client.NewProxy(&p)
proxy.Create()

This does not properly add the configured toxics from p onto the proxy.

They must be added after the fact using Proxy.SetToxic.

Protocol aware toxics

We could build protocol aware toxics, e.g.

  • HTTP. Send extremely large headers, slow headers, slow body but fast headers, 5xx, infinite redirects..
  • Redis. Slow writes and fast reads, out of memory conditions (reads but no writes), ..

chat room?

Have you considered creating a chat room for this project or do you think it would be too low traffic to be worthwhile?
I certainly have a few questions that would get ironed out much quicker - and some ideas for the project - if there was a chat where developers and users could unite.

thanks,
Dieter

Deleting a timeout toxic can lockup proxy http requests

Ran into this issue in some of my tests. Here's the curl commands you can use to recreate this issue.

curl -i -d '{"name": "redis", "upstream": "localhost:6379", "listen": "localhost:26379"}' localhost:8474/proxies
curl -i -d '{"type":"timeout", "timeout":30000, "stream": "upstream"}' localhost:8474/proxies/redis/toxics
curl -m 1 -i 127.0.0.1:26379
curl -m 1 -i -X DELETE localhost:8474/proxies/redis/toxics/timeout

The final delete request seems to lock up (final command must be executed before the 30 second timeout on the toxic), and any future requests like the following no longer returns before timing out

curl -i localhost:8474/proxies

But the version request works fine still curl -i localhost:8474/version returns 2.0.0rc1

@sirupsen @xthexder

Data limit toxic suggestion

I need to simulate situation when client sends too much data and server close the connection. Would you accept PR with simple toxic which would do such thing? ... limit how much data can be transferred during single connection but let pass everything before threshold is reached.

DNS

A lot of software assumes fast DNS lookups. Let's challenge assumptions!

@xthexder

cli's help messages are too abstract, e.g. nothing toxic specific

out of #139 came an interesting point.
per @xthexder:

The cli is designed to be independant of what toxics are defined, so that if a new toxic is added, the cli and api will still work with older versions

interesting choice. this explains another gripe i had as a newcomer to this project: toxiproxy-cli only has help messages for highlevel operations (e.g. create and remove a toxic) but no help messages about which toxics you can add, what their attributes are, etc. It would be nice to be able to have toxiproxy-cli toxic help add list the available toxics and toxiproxy-cli toxic help add latency for example show details about how to add a latency toxic. With the current strategy of keeping the cli generic, this can't be done.
You could technically have the cli query the server for the available toxics, their attributes, which are required vs optional etc and then feed that back to the user, but I would argue that's getting a bit complicated and probably makes it quite hard to dynamically build optimized CLI experiences (see below)

If somebody upgrades their server to support new toxics or new toxic attributes, then it seems very reasonable that they also update the cli as well. given proper packaging / install script /.. this is no extra effort at all.

this way the cli can "truly" support the toxics. and not only could it display more useful help messages, it could also provide a CLI experience that's more optimized. e.g. instead of:
toxiproxy-cli toxic add [command options] <proxyName> with options like --type value, -t value and --attribute value, -a value

you could do:
toxiproxy-cli toxic add [command options] latency <proxyName> with options like --latency and --jitter

this CLI approach seems more user friendly IMHO, I would argue it's a good thing that the cli is optimized for the terminology of the toxics etc instead of trying to be more of a generic json encoder for toxic attributes. If people want that, they can use curl ;)

anyway, please consider this as the way i intend it: constructive feedback.
this project is pretty sweet and I hope to contribute as much as I can (first with some thoughts and ideas, and later hopefully with code as well)

Suggestion: Distribute as a Gem

Instead of relying on bootstrap code to update to the latest version, could we add the necessary files to make this a gem and version it using Github's releases?

toxiproxy-cli hangs in docker connecting to local toxproxy (related to internet?)

hello!
new toxiproxy user here, trying out my first toxic steps.
I run it in docker, using the latest image that was just pushed today.
just 1 proxy and 1 backend, very light load.

i noticed that toxiproxy-cli, which worked fine first to add a proxy and a toxic, on subsequest commands started hanging. i ctrl-c'd the commands after they hung for minutes (the last 3 commands).

interesting to mention: around the same time my internet connection also became slow and started timing out. while everything is local in a dockerstack entirely on my laptop, maybe my internet has something to do with it? has anyone experienced something like this before?

root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli inspect cassandra
Name: cassandra Listen: [::]:9042       Upstream: cassandra:9042
======================================================================
Upstream toxics:
Proxy has no Upstream toxics enabled.

Downstream toxics:
latency_downstream: type=latency stream=downstream toxicity=1.00 attributes=[ jitter=500 latency=1000 ]

Hint: add a toxic with `toxiproxy-cli toxic add`
root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli toxic delete cassandra -n latency_downstream:
Failed to remove toxic: RemoveToxic: HTTP 404: toxic not found
root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli toxic delete cassandra -n latency_downstream 
^C
root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli toxic delete cassandra -n latency_downstream
^C
root@toxiproxy:/app/src/github.com/Shopify/toxiproxy# toxiproxy-cli list                                         
^C

Change to IP proxy instead of TCP proxy

It'd make sense for the proxy to be at layer 3, instead of layer 4. Means we can re-order packets, etc., and rely on the TCP implementation to provide the stream. It'd also make us able to support UDP, SCTP, etc.

@xthexder

Dockerfile not port forwarding

Hello there! 👋

I'm currently running this within our CI system and noticed that accessing the HTTP API doesn't work unless I explicitly forward 8474 to 8474 inside the container (usually via -p 8474:8474).

I'm unsure if this is a bug or you handle this differently in your setup? My setup looks like this:

docker pull shopify/toxiproxy
docker run -it -d -p 8474:8474 shopify/toxiproxy

# create HTTP requests for proxies and toxics
# run rspec

Interested to hear your thoughts on this one but if it is a bug I'll gladly open a PR to get it fixed.

Go API

We should have a Go API for toxiproxy. It wouldn't be hard to test, as it's essentially what's already in api_test.go, it just needs to be in a sub package that can be imported independently of the Toxiproxy daeamon.

Expose via DNS

It'd be cool if Toxiproxy could expose its local running services via DNS. Especially because this would make the development environment more like production by using DNS as well.

Clarification of timeout toxic behavior

Hey, according to the description of timeout toxic it should stop all data after some specific timeout.

Let's say I have proxy myproxy created

./toxiproxy-cli create myproxy --listen localhost:42666 --upstream google.com:80

And I create new toxic of timeout type with 10s timeout

./toxiproxy-cli toxic add myproxy -n mytoxic --upstream --type timeout --attributes timeout=10000

Processing of simple http get request should take less then 10s so I assume toxiproxy shouldn't interfere in communication. But when I try it I get empty response after 10s. It works well without any toxic enabled.

date -R ; curl -vv localhost:42666 ; date -R        
Tue, 16 Aug 2016 15:58:32 +0200
* Rebuilt URL to: localhost:42666/
* Hostname was NOT found in DNS cache
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 42666 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:42666
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server
Tue, 16 Aug 2016 15:58:42 +0200

Am I doing something wrong or just don't understand well how it's supposed to work?

do flakey latency tests point to a larger problem?

#112 changes the maximum latency allowed in a test from n + 10ms to n + 20ms. Have these tests always been flakey? (I doubt it.)

If not, does this increase in latency affect all toxics or just the latency one. Why? (If it's just the latency toxic, then I think this issue can be closed.)

Provide -master docker images

Currently :latest docker image is a build of 2.0.0 without /populate endpoint. It will be handy to have image of current -master.

Slow TCP Accept and Read cannot be simulated

Currently a proxy will always accept new connections right away, so there is no way to test client connection timeouts (only connection refused when the proxy is disabled).

It is also not possible to test Write failures/timeouts since #67. All incoming data will be read in and buffered by toxiproxy right away, so TCP Writes can't fail on either the server or client.

Open Source Steps

  • Test current master with Shopify
  • Create a new Rails app on Ubuntu, go through all the steps, make sure it works
  • Use #populate in Shopify from toxiproxy-ruby
  • Use new enabled API in toxiproxy-ruby
  • Upgrade toxiproxy-ruby in Shopify
  • Create a new Rails app on OS X with the current tap, go through all the steps, make sure it works
  • When all of the above is done, tag 1.0.0
  • Prepare binaries for Linux and Darwin, build .deb package, add all to Github release
  • Update Homebrew tap Shopify/homebrew-shopify to point to new binary
  • Review README
  • Click the Open Source buttons!

@xthexder @camilo , haven't included all the stuff I've already done (readme, how to build packages, etc)

Toxiproxy 2.0 RFC

Proposed API Changes

  • Remove enabled field from all toxics
  • POST /proxies/{proxy}/{up|down}stream/toxics - Create (enable) a new toxic
  • POST /proxies/{proxy}/{up|down}stream/toxics/{toxic} - Update an existing toxic
  • DELETE /proxies/{proxy}/{up|down}stream/toxics/{toxic} - Destroy (disable) a toxic

This API matches the current proxy creation/deletion api.

Internal Structure Changes

Current 1.x architecture: https://docs.google.com/drawings/d/1pwuRINbpwyaQeYSgGt8VTEKWEUQAwYpNJIMH1owW3Sc/view

Instead of a static number of ToxicStubs (and a static mapping for each toxic), ToxicStubs will be dynamically added / removed as toxics are created/destroyed. A minimum of 1 ToxicStub will always be present, and the first toxic will always be a NoopToxic so that it can be interrupted for inserting / removing toxics.

Steps for adding a new toxic:

  1. Interrupt the last toxic in the chain
  2. Reconnect the output channels so that the new toxic is between the last toxic and the end ChanReader
  3. Resume both ToxicStubs with their toxics

Steps for removing a toxic:

  1. Interrupt the toxic before the target in order to ensure the target's input channel is empty
  2. Interrupt the target toxic
  3. Connect the previous toxic's output to the target toxic's output
  4. Resume the previous toxic / ToxicStub pair

This ends up being very similar to a doubly-linked list, except that we need to ensure no data is in-flight between the links (channels) when they're removed.

Toxic Registration

The main() function and server creation will be simplified so that it can be used as a library.
Instead of having all the toxics hard-coded inside toxiproxy, they will be registered in an init() function: toxiproxy.Register(SomeToxic) (this will have to be done with reflection or something...)

This will allow user-created toxics without having to create a full fork of toxiproxy.

Better Go api

The current Go API is pretty low-level, something with closures or a context object would be great.

Separate development from master branch

Recently it seems there's been some issues and confusion over what versions are released and what documentation matches what.

Currently the master README.md is a bit of a mix between 2.0.0 documentation and upcoming 2.1.0 changes.
I think it may be beneficial to move 2.1.0 development to a dev branch, so that master is always the most recent release, and has the corresponding documentation.
This also makes staging README changes much easier for future releases.

Thoughts?
@sirupsen

simulate cable unplug

Is it possible to simulate a cable being unplugged? It seems timeout stops the data immediately.

I would prefer something like, stop all data (and hang for ever) after x time so I can use it with the toxicity option and have random hangs in the middle of some connections.

Wrong response when creating a toxic

Hi,

I'm having a problem when creating a toxic.
If I send ah HTTP POST request to the following URL:

http://localhost:8474/proxies/testingProxy/toxics

where testingProxy is an existing proxy, using the following body:

{
"Name" : "BandwidthToxicTest",
"Stream" : "upstream",
"Enabled" : true,
"Type": "bandwidth",
"Rate" : 100
}

I get the following response:
{
"attributes": {
"rate": 0
},
"name": "BandwidthToxicTest",
"type": "bandwidth",
"stream": "upstream",
"toxicity": 1
}

Why attributes.rate is zero in the response? It should be 100, isn't it?
Thank you.
Regards,
Federico

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.