diff --git a/cli/agent.go b/cli/agent.go index 2f0362a083..bf32a10c85 100644 --- a/cli/agent.go +++ b/cli/agent.go @@ -125,18 +125,20 @@ func (r *RootCmd) workspaceAgent() *clibase.Cmd { _ = pprof.Handler pprofSrvClose := ServeHandler(ctx, logger, nil, pprofAddress, "pprof") defer pprofSrvClose() - // Do a best effort here. If this fails, it's not a big deal. - if port, err := urlPort(pprofAddress); err == nil { + if port, err := extractPort(pprofAddress); err == nil { ignorePorts[port] = "pprof" } prometheusSrvClose := ServeHandler(ctx, logger, prometheusMetricsHandler(), prometheusAddress, "prometheus") defer prometheusSrvClose() - // Do a best effort here. If this fails, it's not a big deal. - if port, err := urlPort(prometheusAddress); err == nil { + if port, err := extractPort(prometheusAddress); err == nil { ignorePorts[port] = "prometheus" } + if port, err := extractPort(debugAddress); err == nil { + ignorePorts[port] = "debug" + } + // exchangeToken returns a session token. // This is abstracted to allow for the same looping condition // regardless of instance identity auth type. @@ -225,10 +227,6 @@ func (r *RootCmd) workspaceAgent() *clibase.Cmd { debugSrvClose := ServeHandler(ctx, logger, agnt.HTTPDebug(), debugAddress, "debug") defer debugSrvClose() - // Do a best effort here. If this fails, it's not a big deal. - if port, err := urlPort(debugAddress); err == nil { - ignorePorts[port] = "debug" - } <-ctx.Done() return agnt.Close() diff --git a/cli/agent_internal_test.go b/cli/agent_internal_test.go index 363736e4ee..910effb419 100644 --- a/cli/agent_internal_test.go +++ b/cli/agent_internal_test.go @@ -46,6 +46,12 @@ func Test_extractPort(t *testing.T) { urlString: "6060", wantErr: true, }, + { + name: "127.0.0.1", + urlString: "127.0.0.1:2113", + want: 2113, + wantErr: false, + }, } for _, tt := range tests { tt := tt