From 6e4f70f1550cb074ec7beab53eb30ed59bc9f33b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Fri, 17 Apr 2026 16:26:51 +0800 Subject: [PATCH] Defer implicit default HTTP client fallback to first use --- common/httpclient/manager.go | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/common/httpclient/manager.go b/common/httpclient/manager.go index 2b4f9d5be..614e4f83b 100644 --- a/common/httpclient/manager.go +++ b/common/httpclient/manager.go @@ -69,21 +69,25 @@ func (m *Manager) Start(stage adapter.StartStage) error { return E.Cause(err, "resolve default http client") } m.defaultTransport = sharedTransport - } else if m.defaultTransportFallback != nil { - transport, err := m.defaultTransportFallback() - if err != nil { - return E.Cause(err, "create default http client") - } - m.trackTransport(transport) - m.defaultTransport = &sharedManagedTransport{ - managed: transport, - shared: &sharedState{}, - } } return nil } func (m *Manager) DefaultTransport() adapter.HTTPTransport { + m.access.Lock() + defer m.access.Unlock() + if m.defaultTransport == nil && m.defaultTransportFallback != nil { + transport, err := m.defaultTransportFallback() + if err != nil { + m.logger.Error(E.Cause(err, "create default http client")) + return nil + } + m.managedTransports = append(m.managedTransports, transport) + m.defaultTransport = &sharedManagedTransport{ + managed: transport, + shared: &sharedState{}, + } + } if m.defaultTransport == nil { return nil }