From c9b88e4d15b96bcf0468ac165f9df53a5fbcd1a5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sat, 7 Mar 2026 11:39:31 +0100 Subject: [PATCH] internal/warpc: Fix SIGSEGV in Close() when dispatcher fails to start Only set started=true when Start() succeeds, so Close() doesn't attempt to close a nil dispatcher. Fixes #14536 --- internal/warpc/warpc.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/warpc/warpc.go b/internal/warpc/warpc.go index e62e6b09e..58dcf5dc7 100644 --- a/internal/warpc/warpc.go +++ b/internal/warpc/warpc.go @@ -776,8 +776,10 @@ func (d *lazyDispatcher[Q, R]) start() (Dispatcher[Q, R], error) { d.startOnce.Do(func() { start := time.Now() d.dispatcher, d.startErr = Start[Q, R](d.opts) - d.started = true - d.opts.Infof("started dispatcher in %s", time.Since(start)) + if d.startErr == nil { + d.started = true + d.opts.Infof("started dispatcher in %s", time.Since(start)) + } }) return d.dispatcher, d.startErr } -- 2.39.5