bug fix
[ric-plt/submgr.git] / pkg / control / registry.go
index 29d82a9..88a4cc5 100644 (file)
@@ -530,7 +530,9 @@ func (r *Registry) RemoveFromSubscription(subs *Subscription, trans *Transaction
        if waitRouteClean > 0 {
                // Wait here that response is delivered to xApp via RMR before route is cleaned
                xapp.Logger.Debug("Pending %v in order to wait route cleanup", waitRouteClean)
+               r.mutex.Unlock()
                time.Sleep(waitRouteClean)
+               r.mutex.Lock()
        }
 
        xapp.Logger.Debug("CLEAN %s", subs.String())
@@ -567,7 +569,10 @@ func (r *Registry) RemoveFromSubscription(subs *Subscription, trans *Transaction
 
                // Endpoint of merged subscription is being deleted
                xapp.Logger.Debug("Subscription route update WriteSubscriptionToDb")
-               c.WriteSubscriptionToDb(subs)
+               err := c.WriteSubscriptionToDb(subs)
+               if err != nil {
+                       xapp.Logger.Error("tracker.UnTrackTransaction() failed:%s", err.Error())
+               }
                c.UpdateCounter(cUnmergedSubscriptions)
        }
        return nil
@@ -652,15 +657,17 @@ func (r *Registry) DeleteAllE2Subscriptions(ranName string, c *Control) {
 
        // Delete REST subscription from registry and db
        for restSubId, restSubs := range r.restSubscriptions {
-               if restSubs.Meid == ranName && restSubs.SubReqOngoing == true || restSubs.SubDelReqOngoing == true {
-                       // Subscription creation or deletion processes need to be processed gracefully till the end.
-                       // Subscription is deleted at end of the process in both cases.
-                       xapp.Logger.Debug("Registry: REST subscription under prosessing ongoing cannot delete it yet. RestSubId=%v, SubReqOngoing=%v, SubDelReqOngoing=%v", restSubId, restSubs.SubReqOngoing, restSubs.SubDelReqOngoing)
-                       continue
-               } else {
-                       xapp.Logger.Debug("Registry: REST subscription delete. subId=%v", restSubId)
-                       delete(r.restSubscriptions, restSubId)
-                       c.RemoveRESTSubscriptionFromDb(restSubId)
+               if restSubs.Meid == ranName {
+                       if restSubs.SubReqOngoing == true || restSubs.SubDelReqOngoing == true {
+                               // Subscription creation or deletion processes need to be processed gracefully till the end.
+                               // Subscription is deleted at end of the process in both cases.
+                               xapp.Logger.Debug("Registry: REST subscription under prosessing ongoing cannot delete it yet. RestSubId=%v, SubReqOngoing=%v, SubDelReqOngoing=%v", restSubId, restSubs.SubReqOngoing, restSubs.SubDelReqOngoing)
+                               continue
+                       } else {
+                               xapp.Logger.Debug("Registry: REST subscription delete. subId=%v", restSubId)
+                               delete(r.restSubscriptions, restSubId)
+                               c.RemoveRESTSubscriptionFromDb(restSubId)
+                       }
                }
        }
 }