From e17d952f9c987549af402e3ca494db3bbce793f1 Mon Sep 17 00:00:00 2001 From: arberkatellari Date: Thu, 18 May 2023 11:05:51 -0400 Subject: [PATCH] Add warning for uncomputable increments --- engine/timespans.go | 4 ++++ utils/errors.go | 1 + 2 files changed, 5 insertions(+) diff --git a/engine/timespans.go b/engine/timespans.go index 5e7e9b50a..b3dfdb921 100644 --- a/engine/timespans.go +++ b/engine/timespans.go @@ -471,6 +471,10 @@ func (ts *TimeSpan) createIncrementsSlice() { // because ts cost is rounded //incrementCost := rate / rateUnit.Seconds() * rateIncrement.Seconds() nbIncrements := int(ts.GetDuration() / rateIncrement) + if nbIncrements < 0 { + utils.Logger.Warning(fmt.Sprintf("error: <%s with %+v>, when creating increments slice, TimeSpan: %s", utils.ErrUncomputableIncrement, nbIncrements, utils.ToJSON(ts))) + return + } if nbIncrements > config.CgrConfig().RalsCfg().MaxIncrements { utils.Logger.Warning(fmt.Sprintf("error: <%s with %+v>, when creating increments slice, TimeSpan: %s", utils.ErrMaxIncrementsExceeded, nbIncrements, utils.ToJSON(ts))) ts.Increments = make([]*Increment, 0) diff --git a/utils/errors.go b/utils/errors.go index 6c2506665..bd8be3aed 100644 --- a/utils/errors.go +++ b/utils/errors.go @@ -70,6 +70,7 @@ var ( ErrUnsupportedFormat = errors.New("UNSUPPORTED_FORMAT") ErrNoDatabaseConn = errors.New("NO_DATABASE_CONNECTION") ErrMaxIncrementsExceeded = errors.New("MAX_INCREMENTS_EXCEEDED") + ErrUncomputableIncrement = errors.New("UNCOMPUTABLE_INCREMENT") ErrIndexOutOfBounds = errors.New("INDEX_OUT_OF_BOUNDS") ErrWrongPath = errors.New("WRONG_PATH") ErrServiceAlreadyRunning = fmt.Errorf("service already running")