From 3ccfc5231bb5db01a560b64c1183f363eb14dacd Mon Sep 17 00:00:00 2001 From: George Tsagkarelis Date: Thu, 18 Sep 2025 11:55:00 +0200 Subject: [PATCH] multi: prepare for new non-constant string rule In preparation for the next commit which bumps golang to a newer version, we want to make some code changes that would otherwise render some log-related calls problematic. With go1.24 a new govet rule was added that disallows non-constant strings (i.e including a tag like "%s") in calls to printf. See more in the related issue https://github.com/golang/go/issues/60529. --- itest/network_harness.go | 8 +++----- rpc_proxy.go | 2 +- rpcmiddleware/proto.go | 6 +++++- status/manager.go | 10 ++++++---- terminal.go | 5 +---- 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/itest/network_harness.go b/itest/network_harness.go index 2e332929..4b24fede 100644 --- a/itest/network_harness.go +++ b/itest/network_harness.go @@ -270,12 +270,10 @@ out: n.EnsureConnected(t, n.Alice, n.Bob) - logLine := fmt.Sprintf( - "STARTING ============ %v ============\n", testCase, - ) + logLine := "STARTING ============ %v ============\n" - n.Alice.AddToLog(logLine) - n.Bob.AddToLog(logLine) + n.Alice.AddToLog(logLine, testCase) + n.Bob.AddToLog(logLine, testCase) return nil } diff --git a/rpc_proxy.go b/rpc_proxy.go index 885afa64..950b527b 100644 --- a/rpc_proxy.go +++ b/rpc_proxy.go @@ -364,7 +364,7 @@ func (p *rpcProxy) makeDirector(allowLitRPC bool) func(ctx context.Context, // gRPC server. handled, conn, err := p.subServerMgr.GetRemoteConn(requestURI) if err != nil { - return outCtx, nil, status.Errorf( + return outCtx, nil, status.Error( codes.Unavailable, err.Error(), ) } diff --git a/rpcmiddleware/proto.go b/rpcmiddleware/proto.go index 8a777892..4e859244 100644 --- a/rpcmiddleware/proto.go +++ b/rpcmiddleware/proto.go @@ -76,8 +76,12 @@ func RPCErrString(req *lnrpc.RPCMiddlewareRequest, format string, }, } + if len(args) > 0 { + format = fmt.Sprintf(format, args...) + } + if format != "" { - feedback.Error = fmt.Sprintf(format, args...) + feedback.Error = format } return resp, nil diff --git a/status/manager.go b/status/manager.go index b2837bc6..0dab6ce5 100644 --- a/status/manager.go +++ b/status/manager.go @@ -264,18 +264,20 @@ func (s *Manager) SetErrored(name string, errStr string, s.mu.Lock() defer s.mu.Unlock() - err := fmt.Sprintf(errStr, params...) + if len(params) > 0 { + errStr = fmt.Sprintf(errStr, params...) + } - log.Debugf("Setting the %s sub-server as errored: %s", name, err) + log.Debugf("Setting the %s sub-server as errored: %s", name, errStr) ss, ok := s.subServers[name] if !ok { return } - log.Errorf("could not start the %s sub-server: %s", name, err) + log.Errorf("could not start the %s sub-server: %s", name, errStr) ss.running = false - ss.err = err + ss.err = errStr ss.customStatus = "" } diff --git a/terminal.go b/terminal.go index c8e19ddf..5eaa3c24 100644 --- a/terminal.go +++ b/terminal.go @@ -431,10 +431,7 @@ func (g *LightningTerminal) start(ctx context.Context) error { var err error accountServiceErrCallback := func(err error) { - g.statusMgr.SetErrored( - subservers.ACCOUNTS, - err.Error(), - ) + g.statusMgr.SetErrored(subservers.ACCOUNTS, err.Error()) log.Errorf("Error thrown in the accounts service, keeping "+ "litd running: %v", err,