diff --git a/data/conf/cgrates/cgrates.json b/data/conf/cgrates/cgrates.json index e0fd78c0f..087d40ab8 100755 --- a/data/conf/cgrates/cgrates.json +++ b/data/conf/cgrates/cgrates.json @@ -215,7 +215,6 @@ // "enabled": false, // enable Rating/Accounting service: // "thresholds_conns": [], // connections to ThresholdS for account/balance updates, empty to disable thresholds functionality: <""|*internal|$rpc_conns_id> // "stats_conns": [], // connections to StatS for account/balance updates, empty to disable stats functionality: <""|*internal|$rpc_conns_id> -// "caches_conns":["*internal"], // connections to CacheS for account/balance updates // "rp_subject_prefix_matching": false, // enables prefix matching for the rating profile subject // "remove_expired":true, // enables automatic removal of expired balances // "max_computed_usage": { // do not compute usage higher than this, prevents memory overload diff --git a/engine/resources.go b/engine/resources.go index 7465f928a..39e95c3b2 100644 --- a/engine/resources.go +++ b/engine/resources.go @@ -438,6 +438,7 @@ func (rS *ResourceService) storeResources() { rIf, ok := Cache.Get(utils.CacheResources, rID) if !ok || rIf == nil { utils.Logger.Warning(fmt.Sprintf("<%s> failed retrieving from cache resource with ID: %s", utils.ResourceS, rID)) + continue } r := rIf.(*Resource) r.lock(utils.EmptyString) @@ -539,7 +540,6 @@ func (rS *ResourceService) matchingResourcesForEvent(ev *utils.CGREvent, Cache.Remove(utils.CacheEventResources, evUUID, cacheCommit(utils.NonTransactional), utils.NonTransactional) } - return }() } else { // select the resourceIDs out of dataDB rIDs, err = MatchingItemIDsForEvent(ev.Event, diff --git a/engine/resources_test.go b/engine/resources_test.go index 671c38a5b..9ec92a2ce 100644 --- a/engine/resources_test.go +++ b/engine/resources_test.go @@ -498,6 +498,7 @@ func TestResourceMatchingResourcesForEvent(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[0].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[0].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[0].ID, mres[0].ID) { @@ -511,6 +512,7 @@ func TestResourceMatchingResourcesForEvent(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[1].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[1].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[1].ID, mres[0].ID) { @@ -524,6 +526,7 @@ func TestResourceMatchingResourcesForEvent(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[2].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[2].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[2].ID, mres[0].ID) { @@ -550,6 +553,7 @@ func TestResourceUsageTTLCase1(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[0].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[0].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[0].ID, mres[0].ID) { @@ -578,6 +582,7 @@ func TestResourceUsageTTLCase2(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[0].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[0].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[0].ID, mres[0].ID) { @@ -606,6 +611,7 @@ func TestResourceUsageTTLCase3(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[0].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[0].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[0].ID, mres[0].ID) { @@ -634,6 +640,7 @@ func TestResourceUsageTTLCase4(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[0].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[0].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[0].ID, mres[0].ID) { @@ -653,6 +660,7 @@ func TestResourceMatchWithIndexFalse(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[0].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[0].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[0].ID, mres[0].ID) { @@ -666,6 +674,7 @@ func TestResourceMatchWithIndexFalse(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[1].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[1].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[1].ID, mres[0].ID) { @@ -679,6 +688,7 @@ func TestResourceMatchWithIndexFalse(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resourceTest[2].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resourceTest[2].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resourceTest[2].ID, mres[0].ID) { @@ -781,6 +791,7 @@ func TestResourceCaching(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } + mres.unlock() if !reflect.DeepEqual(resources[0].Tenant, mres[0].Tenant) { t.Errorf("Expecting: %+v, received: %+v", resources[0].Tenant, mres[0].Tenant) } else if !reflect.DeepEqual(resources[0].ID, mres[0].ID) {