From 205c8fbb2217d6ba84368ce83bf8b1b7e962b92d Mon Sep 17 00:00:00 2001 From: DanB Date: Thu, 9 Feb 2017 16:15:39 +0100 Subject: [PATCH] Speedup SMG replication, small fix in servmanager --- servmanager/servmanager.go | 4 ++-- sessionmanager/smgeneric.go | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/servmanager/servmanager.go b/servmanager/servmanager.go index f808f2f5a..5c51c70a8 100644 --- a/servmanager/servmanager.go +++ b/servmanager/servmanager.go @@ -85,8 +85,8 @@ func (srvMngr *ServiceManager) StopScheduler() error { srvMngr.Unlock() if sched == nil { return utils.NewCGRError(utils.ServiceManager, - utils.CapitalizedMessage(utils.ServiceAlreadyRunning), - utils.ServiceAlreadyRunning, + utils.CapitalizedMessage(utils.ServiceNotRunning), + utils.ServiceNotRunning, "the scheduler is not running") } srvMngr.cfg.SchedulerEnabled = false diff --git a/sessionmanager/smgeneric.go b/sessionmanager/smgeneric.go index 87be76689..2e05f523f 100644 --- a/sessionmanager/smgeneric.go +++ b/sessionmanager/smgeneric.go @@ -460,7 +460,8 @@ func (smg *SMGeneric) sessionRelocate(initialID, cgrID, newOriginID string) erro // replicateSessions will replicate session based on configuration func (smg *SMGeneric) replicateSessionsWithID(cgrID string, passiveSessions bool, smgReplConns []*SMGReplicationConn) (err error) { - if smg.cgrCfg.SmGenericConfig.DebitInterval != 0 && !passiveSessions { // Replicating active not supported + if len(smgReplConns) == 0 || + (smg.cgrCfg.SmGenericConfig.DebitInterval != 0 && !passiveSessions) { // Replicating active not supported return } ssMux := &smg.aSessionsMux @@ -470,11 +471,11 @@ func (smg *SMGeneric) replicateSessionsWithID(cgrID string, passiveSessions bool ssMp = smg.passiveSessions } ssMux.RLock() - var ss []*SMGSession - if err = utils.Clone(ssMp[cgrID], &ss); err != nil { + ss := ssMp[cgrID] + ssMux.RUnlock() + if len(ss) == 0 { return } - ssMux.RUnlock() var wg sync.WaitGroup for _, rplConn := range smgReplConns { if rplConn.Synchronous {