From b0a45ac19b1fb8f4f074dbe77e89449304b6ea25 Mon Sep 17 00:00:00 2001 From: Justin Chan Date: Tue, 12 Sep 2023 10:06:57 -0400 Subject: [PATCH] Fix NPE panic on SyncCluster failure (#4246) --- src/dbnode/server/server.go | 42 +++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/dbnode/server/server.go b/src/dbnode/server/server.go index b1b856c4b4..3a91c27bdd 100644 --- a/src/dbnode/server/server.go +++ b/src/dbnode/server/server.go @@ -852,28 +852,34 @@ func Run(runOpts RunOptions) { if err != nil { logger.Warn("could not create handler options for debug writer", zap.Error(err)) } else { - envCfgCluster, err := envConfig.Services.SyncCluster() - if err != nil || envCfgCluster.Service == nil { - logger.Warn("could not get cluster config for debug writer", + if envConfig.Services == nil || len(envConfig.Services) == 0 { + logger.Warn("no DynamicConfiguration set; not configuring debug writer", zap.Error(err), - zap.Bool("envCfgClusterServiceIsNil", envCfgCluster.Service == nil)) + ) } else { - debugWriter, err = extdebug.NewPlacementAndNamespaceZipWriterWithDefaultSources( - cpuProfileDuration, - syncCfg.ClusterClient, - handlerOpts, - []handleroptions.ServiceNameAndDefaults{ - { - ServiceName: handleroptions.M3DBServiceName, - Defaults: []handleroptions.ServiceOptionsDefault{ - handleroptions.WithDefaultServiceEnvironment(envCfgCluster.Service.Env), - handleroptions.WithDefaultServiceZone(envCfgCluster.Service.Zone), + envCfgCluster, err := envConfig.Services.SyncCluster() + if err != nil { + logger.Warn("could not get cluster config for debug writer", + zap.Error(err), + ) + } else { + debugWriter, err = extdebug.NewPlacementAndNamespaceZipWriterWithDefaultSources( + cpuProfileDuration, + syncCfg.ClusterClient, + handlerOpts, + []handleroptions.ServiceNameAndDefaults{ + { + ServiceName: handleroptions.M3DBServiceName, + Defaults: []handleroptions.ServiceOptionsDefault{ + handleroptions.WithDefaultServiceEnvironment(envCfgCluster.Service.Env), + handleroptions.WithDefaultServiceZone(envCfgCluster.Service.Zone), + }, }, }, - }, - iOpts) - if err != nil { - logger.Error("unable to create debug writer", zap.Error(err)) + iOpts) + if err != nil { + logger.Error("unable to create debug writer", zap.Error(err)) + } } } }