diff --git a/pkg/scyllaclient/provider.go b/pkg/scyllaclient/provider.go index 888ffe5b8c..bdf738e7c4 100644 --- a/pkg/scyllaclient/provider.go +++ b/pkg/scyllaclient/provider.go @@ -8,6 +8,7 @@ import ( "time" "github.com/scylladb/go-log" + "github.com/scylladb/scylla-manager/v3/pkg/util/logutil" "github.com/scylladb/scylla-manager/v3/pkg/util/timeutc" "github.com/scylladb/scylla-manager/v3/pkg/util/uuid" ) @@ -88,7 +89,7 @@ func (p *CachedProvider) Close() error { for clusterID, c := range p.clients { delete(p.clients, clusterID) - c.client.Close() + logutil.LogOnError(context.Background(), p.logger, c.client.Close, "Couldn't close scylla client") } return nil diff --git a/pkg/service/cluster/service.go b/pkg/service/cluster/service.go index 4fcc05f5a4..b353f0a648 100644 --- a/pkg/service/cluster/service.go +++ b/pkg/service/cluster/service.go @@ -22,6 +22,7 @@ import ( "github.com/scylladb/scylla-manager/v3/pkg/secrets" "github.com/scylladb/scylla-manager/v3/pkg/service" "github.com/scylladb/scylla-manager/v3/pkg/store" + "github.com/scylladb/scylla-manager/v3/pkg/util/logutil" "github.com/scylladb/scylla-manager/v3/pkg/util/uuid" "go.uber.org/multierr" ) @@ -141,11 +142,7 @@ func (s *Service) createClient(ctx context.Context, clusterID uuid.UUID) (*scyll if err != nil { return nil, err } - defer func() { - if err := client.Close(); err != nil { - s.logger.Error(ctx, "Couldn't close scylla client", "error", err) - } - }() + defer logutil.LogOnError(ctx, s.logger, client.Close, "Couldn't close scylla client") for _, host := range config.Hosts { knownHosts, err := s.discoverHosts(scyllaclient.ClientContextWithSelectedHost(ctx, host), client) @@ -458,7 +455,7 @@ func (s *Service) validateHostsConnectivity(ctx context.Context, c *Cluster) err if err != nil { return errors.Wrap(err, "create client") } - defer client.Close() + defer logutil.LogOnError(ctx, s.logger, client.Close, "Couldn't close scylla client") status, err := client.Status(ctx) if err != nil { @@ -544,6 +541,7 @@ func (s *Service) ListNodes(ctx context.Context, clusterID uuid.UUID) ([]Node, e if err != nil { return nil, err } + defer logutil.LogOnError(ctx, s.logger, client.Close, "Couldn't close scylla client") dcs, err := client.Datacenters(ctx) if err != nil { @@ -578,6 +576,7 @@ func (s *Service) GetSession(ctx context.Context, clusterID uuid.UUID) (session if err != nil { return session, errors.Wrap(err, "get client") } + defer logutil.LogOnError(ctx, s.logger, client.Close, "Couldn't close scylla client") ni, err := client.AnyNodeInfo(ctx) if err != nil { diff --git a/pkg/service/repair/service.go b/pkg/service/repair/service.go index 07fdfce17a..50c0e566ba 100644 --- a/pkg/service/repair/service.go +++ b/pkg/service/repair/service.go @@ -156,9 +156,11 @@ func (s *Service) GetTarget(ctx context.Context, clusterID uuid.UUID, properties // Sort plan p.SizeSort() p.PrioritySort(NewInternalTablePreference()) + if clusterSession, err := s.clusterSession(ctx, clusterID); err != nil { s.logger.Info(ctx, "No cluster credentials, couldn't ensure repairing base table before its views", "error", err) } else { + defer clusterSession.Close() views, err := query.GetAllViews(clusterSession) if err != nil { return t, errors.Wrap(err, "get cluster views") diff --git a/pkg/service/restore/service.go b/pkg/service/restore/service.go index 481c3d14e4..523bf01f23 100644 --- a/pkg/service/restore/service.go +++ b/pkg/service/restore/service.go @@ -69,6 +69,7 @@ func (s *Service) Restore(ctx context.Context, clusterID, taskID, runID uuid.UUI if err != nil { return errors.Wrap(err, "create worker") } + defer w.clusterSession.Close() w.setRunInfo(taskID, runID) if err := w.initTarget(ctx, properties); err != nil {