From f9c00bb5c85254f8772928370a62f7f62ac5a64e Mon Sep 17 00:00:00 2001 From: Victor1319 Date: Mon, 9 Dec 2024 16:03:01 +0800 Subject: [PATCH] fix(meta): adjust the call order of the RegistConsul func to prevent concurrent modify to clustername. #22873788 Signed-off-by: Victor1319 --- lcnode/server.go | 3 ++- master/server.go | 2 +- metanode/metanode.go | 4 +++- metanode/partition_op_quota.go | 2 +- objectnode/server.go | 4 ++-- proto/transaction.go | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lcnode/server.go b/lcnode/server.go index 00e9ae3ef..e2bcd31cb 100644 --- a/lcnode/server.go +++ b/lcnode/server.go @@ -90,6 +90,8 @@ func doStart(s common.Server, cfg *config.Config) (err error) { l.register() l.lastHeartbeat = time.Now() + exporter.RegistConsul(l.clusterID, ModuleName, cfg) + go l.checkRegister() if err = l.startServer(); err != nil { return @@ -97,7 +99,6 @@ func doStart(s common.Server, cfg *config.Config) (err error) { l.httpServiceStart() - exporter.RegistConsul(l.clusterID, ModuleName, cfg) log.LogInfo("lcnode start successfully") return diff --git a/master/server.go b/master/server.go index d30717d39..a6d07b801 100644 --- a/master/server.go +++ b/master/server.go @@ -170,8 +170,8 @@ func (m *Server) Start(cfg *config.Config) (err error) { } WarnMetrics = newWarningMetrics(m.cluster) m.cluster.scheduleTask() - m.startHTTPService(ModuleName, cfg) exporter.RegistConsul(m.clusterName, ModuleName, cfg) + m.startHTTPService(ModuleName, cfg) metricsService := newMonitorMetrics(m.cluster) metricsService.start() diff --git a/metanode/metanode.go b/metanode/metanode.go index 7ed160dc0..c0f21e39a 100644 --- a/metanode/metanode.go +++ b/metanode/metanode.go @@ -166,13 +166,15 @@ func doStart(s common.Server, cfg *config.Config) (err error) { m.startStat() + exporter.RegistConsul(m.clusterId, cfg.GetString("role"), cfg) + // check local partition compare with master ,if lack,then not start if err = m.checkLocalPartitionMatchWithMaster(); err != nil { syslog.Println(err) exporter.Warning(err.Error()) return } - exporter.RegistConsul(m.clusterId, cfg.GetString("role"), cfg) + return } diff --git a/metanode/partition_op_quota.go b/metanode/partition_op_quota.go index 078d0f913..f2fad089e 100644 --- a/metanode/partition_op_quota.go +++ b/metanode/partition_op_quota.go @@ -78,7 +78,7 @@ func (mp *metaPartition) statisticExtendByLoad(extend *Extend, ino *Inode) { ino.Inode = extend.GetInode() status := mp.getInodeSimpleInfo(ino) if status != proto.OpOk { - log.LogErrorf("statisticExtendByLoad get inode[%v] fail [%v].", extend.GetInode(), status) + log.LogDebugf("statisticExtendByLoad get inode[%v] fail [%v].", extend.GetInode(), status) return } if ino.NLink == 0 { diff --git a/objectnode/server.go b/objectnode/server.go index d330d8be7..8f662ff26 100644 --- a/objectnode/server.go +++ b/objectnode/server.go @@ -420,14 +420,14 @@ func handleStart(s common.Server, cfg *config.Config) (err error) { o.limitMutex.Unlock() } + exporter.RegistConsul(ci.Cluster, cfg.GetString("role"), cfg) + // start rest api if err = o.startMuxRestAPI(); err != nil { log.LogInfof("handleStart: start rest api fail: err(%v)", err) return } - exporter.RegistConsul(ci.Cluster, cfg.GetString("role"), cfg) - log.LogInfo("object subsystem start success") return } diff --git a/proto/transaction.go b/proto/transaction.go index 072c334b1..58638e292 100755 --- a/proto/transaction.go +++ b/proto/transaction.go @@ -32,7 +32,7 @@ const ( DefaultTransactionTimeout = 1 // minutes MaxTransactionTimeout = 60 // minutes DefaultTxConflictRetryNum = 121 - MaxTxConflictRetryNum = 100 + MaxTxConflictRetryNum = 1000 DefaultTxConflictRetryInterval = 500 // ms MaxTxConflictRetryInterval = 1000 // ms MinTxConflictRetryInterval = 10 // ms