From 0ed0987451ba5e929f7473c7b50b2fbfb93fa4de Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Tue, 23 Nov 2021 09:50:34 +0200 Subject: [PATCH] Fixed subsystems to shutdown in time --- data/conf/samples/tutmysql/cgrates.json | 15 --------------- engine/model_helpers_test.go | 2 +- services/cgr-engine.go | 14 +++++++++++++- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/data/conf/samples/tutmysql/cgrates.json b/data/conf/samples/tutmysql/cgrates.json index 485573d26..bff919923 100644 --- a/data/conf/samples/tutmysql/cgrates.json +++ b/data/conf/samples/tutmysql/cgrates.json @@ -25,21 +25,6 @@ "db_password": "CGRateS.org", }, - -"rals": { - "enabled": true, - "thresholds_conns": ["*internal"], - "max_increments":3000000, -}, - - -"schedulers": { - "enabled": true, - "cdrs_conns": ["*internal"], - "stats_conns": ["*localhost"], -}, - - "cdrs": { "enabled": true, "chargers_conns":["*internal"], diff --git a/engine/model_helpers_test.go b/engine/model_helpers_test.go index d0581d263..25dce9f58 100644 --- a/engine/model_helpers_test.go +++ b/engine/model_helpers_test.go @@ -856,7 +856,7 @@ func TestTPFilterAsTPFilter3(t *testing.T) { sort.Strings(rcvTPs[0].Filters[0].Values) sort.Strings(eTPs[0].Filters[0].Values) if !reflect.DeepEqual(eTPs, rcvTPs) { - t.Errorf("Expecting: %+v ,Received: %+v", utils.ToJSON(eTPs), utils.ToJSON(rcvTPs)) + t.Errorf("Expecting: %+v \n ,Received: %+v", utils.ToJSON(eTPs), utils.ToJSON(rcvTPs)) } } diff --git a/services/cgr-engine.go b/services/cgr-engine.go index 296802f38..27a25720d 100644 --- a/services/cgr-engine.go +++ b/services/cgr-engine.go @@ -251,20 +251,29 @@ func (cgr *CGREngine) InitServices(httpPrfPath string, cpuPrfFl io.Closer, memPr return } + func (cgr *CGREngine) StartServices(ctx *context.Context, shtDw context.CancelFunc, preload string) (err error) { + defer func() { + if err != nil { + cgr.srvManager.ShutdownServices() + } + }() cgr.shdWg.Add(1) if err = cgr.gvS.Start(ctx, shtDw); err != nil { + cgr.shdWg.Done() return } if cgr.dmS.ShouldRun() { // Some services can run without db, ie: ERs cgr.shdWg.Add(1) if err = cgr.dmS.Start(ctx, shtDw); err != nil { + cgr.shdWg.Done() return } } if cgr.sdbS.ShouldRun() { // Some services can run without db, ie: ERs cgr.shdWg.Add(1) if err = cgr.sdbS.Start(ctx, shtDw); err != nil { + cgr.shdWg.Done() return } } @@ -272,16 +281,19 @@ func (cgr *CGREngine) StartServices(ctx *context.Context, shtDw context.CancelFu if cgr.anzS.ShouldRun() { cgr.shdWg.Add(1) if err = cgr.anzS.Start(ctx, shtDw); err != nil { + cgr.shdWg.Done() return } } cgr.shdWg.Add(1) if err = cgr.coreS.Start(ctx, shtDw); err != nil { + cgr.shdWg.Done() return } cgr.shdWg.Add(1) if err = cgr.cacheS.Start(ctx, shtDw); err != nil { + cgr.shdWg.Done() return } cgr.srvManager.StartServices(ctx, shtDw) @@ -359,7 +371,7 @@ func (cgr *CGREngine) Stop(memPrfDir, pidFile string) { close(cgr.memPrfStop) } - ctx, cancel := context.WithTimeout(context.Background(), cgr.cfg.CoreSCfg().ShutdownTimeout) + ctx, cancel := context.WithTimeout(context.Background(), cgr.cfg.CoreSCfg().ShutdownTimeout*10) go func() { cgr.shdWg.Wait() cancel()