goroutine profile: total 10 1 @ 0x40ee69 0x46d4c9 0xb41fd3 0x470d61 # 0x46d4c8 os/signal.signal_recv+0x28 runtime/sigqueue.go:152 # 0xb41fd2 os/signal.loop+0x12 os/signal/signal_unix.go:23 1 @ 0x432ff1 0x46b25d 0x75d9d1 0x75d805 0x75a2a6 0x76b888 0x76c385 0x6f80a9 0x6f99c2 0xb12cc5 0xb1b13b 0x6f80a9 0xb1ae8a 0x6f80a9 0x6fad8e 0x6f6c74 0x470d61 # 0x46b25c runtime/pprof.runtime_goroutineProfileWithLabels+0x1c runtime/mprof.go:844 # 0x75d9d0 runtime/pprof.writeRuntimeProfile+0xb0 runtime/pprof/pprof.go:734 # 0x75d804 runtime/pprof.writeGoroutine+0x44 runtime/pprof/pprof.go:694 # 0x75a2a5 runtime/pprof.(*Profile).WriteTo+0x145 runtime/pprof/pprof.go:329 # 0x76b887 net/http/pprof.handler.ServeHTTP+0x4a7 net/http/pprof/pprof.go:267 # 0x76c384 net/http/pprof.Index+0xe4 net/http/pprof/pprof.go:384 # 0x6f80a8 net/http.HandlerFunc.ServeHTTP+0x28 net/http/server.go:2136 # 0x6f99c1 net/http.(*ServeMux).ServeHTTP+0x141 net/http/server.go:2514 # 0xb12cc4 github.com/saucelabs/forwarder.(*APIHandler).ServeHTTP+0x24 github.com/saucelabs/forwarder/api.go:129 # 0xb1b13a github.com/saucelabs/forwarder.withMiddleware.Logger.Wrap.func2+0xba github.com/saucelabs/forwarder/middleware/logger.go:33 # 0x6f80a8 net/http.HandlerFunc.ServeHTTP+0x28 net/http/server.go:2136 # 0xb1ae89 github.com/saucelabs/forwarder.withMiddleware.(*Prometheus).Wrap.func3+0xc9 github.com/saucelabs/forwarder/middleware/prometheus.go:89 # 0x6f80a8 net/http.HandlerFunc.ServeHTTP+0x28 net/http/server.go:2136 # 0x6fad8d net/http.serverHandler.ServeHTTP+0x8d net/http/server.go:2938 # 0x6f6c73 net/http.(*conn).serve+0x5f3 net/http/server.go:2009 1 @ 0x43df4e 0x4099ad 0x4095b2 0xb1934f 0x470d61 # 0xb1934e github.com/saucelabs/forwarder.(*HTTPProxy).Run.func1+0x6e github.com/saucelabs/forwarder/http_proxy.go:570 1 @ 0x43df4e 0x4099ad 0x4095b2 0xb1bba6 0x470d61 # 0xb1bba5 github.com/saucelabs/forwarder.(*HTTPServer).Run.func1+0x65 github.com/saucelabs/forwarder/http_server.go:205 1 @ 0x43df4e 0x4099ad 0x4095b2 0xb42ccf 0xb42856 0x470d61 # 0xb42cce github.com/saucelabs/forwarder/runctx.(*Group).RunContext.func1+0x2e github.com/saucelabs/forwarder/runctx/runctx.go:60 # 0xb42855 golang.org/x/sync/errgroup.(*Group).Go.func1+0x55 golang.org/x/sync@v0.5.0/errgroup/errgroup.go:75 1 @ 0x43df4e 0x4369b7 0x46b685 0x4dad27 0x4e020c 0x4e01fa 0x53cce9 0x554bbe 0x553d70 0x6fb1e4 0xb1b9d4 0xb42c85 0xb42856 0x470d61 # 0x46b684 internal/poll.runtime_pollWait+0x84 runtime/netpoll.go:343 # 0x4dad26 internal/poll.(*pollDesc).wait+0x26 internal/poll/fd_poll_runtime.go:84 # 0x4e020b internal/poll.(*pollDesc).waitRead+0x2ab internal/poll/fd_poll_runtime.go:89 # 0x4e01f9 internal/poll.(*FD).Accept+0x299 internal/poll/fd_unix.go:611 # 0x53cce8 net.(*netFD).accept+0x28 net/fd_unix.go:172 # 0x554bbd net.(*TCPListener).accept+0x1d net/tcpsock_posix.go:152 # 0x553d6f net.(*TCPListener).Accept+0x2f net/tcpsock.go:315 # 0x6fb1e3 net/http.(*Server).Serve+0x363 net/http/server.go:3056 # 0xb1b9d3 github.com/saucelabs/forwarder.(*HTTPServer).Run+0x113 github.com/saucelabs/forwarder/http_server.go:214 # 0xb42c84 github.com/saucelabs/forwarder/runctx.(*Group).RunContext.func2+0x24 github.com/saucelabs/forwarder/runctx/runctx.go:70 # 0xb42855 golang.org/x/sync/errgroup.(*Group).Go.func1+0x55 golang.org/x/sync@v0.5.0/errgroup/errgroup.go:75 1 @ 0x43df4e 0x4369b7 0x46b685 0x4dad27 0x4e020c 0x4e01fa 0x53cce9 0x554bbe 0x553d70 0x8b037b 0xb19248 0xb42c85 0xb42856 0x470d61 # 0x46b684 internal/poll.runtime_pollWait+0x84 runtime/netpoll.go:343 # 0x4dad26 internal/poll.(*pollDesc).wait+0x26 internal/poll/fd_poll_runtime.go:84 # 0x4e020b internal/poll.(*pollDesc).waitRead+0x2ab internal/poll/fd_poll_runtime.go:89 # 0x4e01f9 internal/poll.(*FD).Accept+0x299 internal/poll/fd_unix.go:611 # 0x53cce8 net.(*netFD).accept+0x28 net/fd_unix.go:172 # 0x554bbd net.(*TCPListener).accept+0x1d net/tcpsock_posix.go:152 # 0x553d6f net.(*TCPListener).Accept+0x2f net/tcpsock.go:315 # 0x8b037a github.com/saucelabs/forwarder/internal/martian.(*Proxy).Serve+0xda github.com/saucelabs/forwarder/internal/martian/proxy.go:299 # 0xb19247 github.com/saucelabs/forwarder.(*HTTPProxy).Run+0x1e7 github.com/saucelabs/forwarder/http_proxy.go:591 # 0xb42c84 github.com/saucelabs/forwarder/runctx.(*Group).RunContext.func2+0x24 github.com/saucelabs/forwarder/runctx/runctx.go:70 # 0xb42855 golang.org/x/sync/errgroup.(*Group).Go.func1+0x55 golang.org/x/sync@v0.5.0/errgroup/errgroup.go:75 1 @ 0x43df4e 0x44e3c5 0xb41bc6 0x470d61 # 0xb41bc5 os/signal.NotifyContext.func1+0x65 os/signal/signal.go:288 1 @ 0x43df4e 0x44f3f8 0x44f3cf 0x46cd65 0x48f0a8 0xb426e5 0xb42bea 0xbeccff 0xbecd00 0xb284fc 0xb28dbf 0xb28913 0xbf216f 0x43dadb 0x470d61 # 0x46cd64 sync.runtime_Semacquire+0x24 runtime/sema.go:62 # 0x48f0a7 sync.(*WaitGroup).Wait+0x47 sync/waitgroup.go:116 # 0xb426e4 golang.org/x/sync/errgroup.(*Group).Wait+0x24 golang.org/x/sync@v0.5.0/errgroup/errgroup.go:53 # 0xb42be9 github.com/saucelabs/forwarder/runctx.(*Group).RunContext+0x249 github.com/saucelabs/forwarder/runctx/runctx.go:73 # 0xbeccfe github.com/saucelabs/forwarder/runctx.(*Group).Run+0x217e github.com/saucelabs/forwarder/runctx/runctx.go:47 # 0xbeccff github.com/saucelabs/forwarder/command/run.(*command).runE+0x217f github.com/saucelabs/forwarder/command/run/run.go:263 # 0xb284fb github.com/spf13/cobra.(*Command).execute+0xabb github.com/spf13/cobra@v1.8.0/command.go:983 # 0xb28dbe github.com/spf13/cobra.(*Command).ExecuteC+0x3fe github.com/spf13/cobra@v1.8.0/command.go:1115 # 0xb28912 github.com/spf13/cobra.(*Command).Execute+0x12 github.com/spf13/cobra@v1.8.0/command.go:1039 # 0xbf216e main.main+0xae github.com/saucelabs/forwarder/cmd/forwarder/main.go:22 # 0x43dada runtime.main+0x2ba runtime/proc.go:267 1 @ 0x470d61