From 786a54f3595d8ab7c7434b3bb92da77875ce9c5d Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Wed, 20 Mar 2024 18:35:39 +0000
Subject: [PATCH] Device component:

- Added logs to identify issue
---
 .../service/DeviceServiceServicerImpl.py      | 25 +++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/device/service/DeviceServiceServicerImpl.py b/src/device/service/DeviceServiceServicerImpl.py
index 5e5d7540c..da152b1d3 100644
--- a/src/device/service/DeviceServiceServicerImpl.py
+++ b/src/device/service/DeviceServiceServicerImpl.py
@@ -88,10 +88,17 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
 
         # update device_uuid to honor UUID provided by Context
         device_uuid = device.device_id.device_uuid.uuid
+        device_name = device.name
 
         t2 = time.time()
 
+        LOGGER.warning('[AddDevice] before add_alias {:s} {:s}'.format(str(device_uuid), str(device_name)))
+        self.mutex_queues.add_alias(device_uuid, device_name)
+        LOGGER.warning('[AddDevice] after add_alias {:s} {:s}'.format(str(device_uuid), str(device_name)))
+
+        LOGGER.warning('[AddDevice] before wait_my_turn {:s}'.format(str(device_uuid)))
         self.mutex_queues.wait_my_turn(device_uuid)
+        LOGGER.warning('[AddDevice] after wait_my_turn {:s}'.format(str(device_uuid)))
         t3 = time.time()
         try:
             driver : _Driver = get_driver(self.driver_instance_cache, device)
@@ -202,7 +209,9 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
 
             return device_id
         finally:
+            LOGGER.warning('[AddDevice] before signal_done {:s}'.format(str(device_uuid)))
             self.mutex_queues.signal_done(device_uuid)
+            LOGGER.warning('[AddDevice] after signal_done {:s}'.format(str(device_uuid)))
 
     @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
     def ConfigureDevice(self, request : Device, context : grpc.ServicerContext) -> DeviceId:
@@ -210,7 +219,9 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
         device_id = request.device_id
         device_uuid = device_id.device_uuid.uuid
 
+        LOGGER.warning('[ConfigureDevice] before wait_my_turn {:s}'.format(str(device_uuid)))
         self.mutex_queues.wait_my_turn(device_uuid)
+        LOGGER.warning('[ConfigureDevice] after wait_my_turn {:s}'.format(str(device_uuid)))
         t1 = time.time()
         try:
             context_client = ContextClient()
@@ -294,13 +305,17 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
 
             return device_id
         finally:
+            LOGGER.warning('[ConfigureDevice] before signal_done {:s}'.format(str(device_uuid)))
             self.mutex_queues.signal_done(device_uuid)
+            LOGGER.warning('[ConfigureDevice] after signal_done {:s}'.format(str(device_uuid)))
 
     @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
     def DeleteDevice(self, request : DeviceId, context : grpc.ServicerContext) -> Empty:
         device_uuid = request.device_uuid.uuid
 
+        LOGGER.warning('[DeleteDevice] before wait_my_turn {:s}'.format(str(device_uuid)))
         self.mutex_queues.wait_my_turn(device_uuid)
+        LOGGER.warning('[DeleteDevice] after wait_my_turn {:s}'.format(str(device_uuid)))
         try:
             context_client = ContextClient()
             device = get_device(
@@ -315,13 +330,17 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
             context_client.RemoveDevice(request)
             return Empty()
         finally:
+            LOGGER.warning('[DeleteDevice] before signal_done {:s}'.format(str(device_uuid)))
             self.mutex_queues.signal_done(device_uuid)
+            LOGGER.warning('[DeleteDevice] after signal_done {:s}'.format(str(device_uuid)))
 
     @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
     def GetInitialConfig(self, request : DeviceId, context : grpc.ServicerContext) -> DeviceConfig:
         device_uuid = request.device_uuid.uuid
 
+        LOGGER.warning('[GetInitialConfig] before wait_my_turn {:s}'.format(str(device_uuid)))
         self.mutex_queues.wait_my_turn(device_uuid)
+        LOGGER.warning('[GetInitialConfig] after wait_my_turn {:s}'.format(str(device_uuid)))
         try:
             context_client = ContextClient()
             device = get_device(
@@ -344,7 +363,9 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
 
             return device_config
         finally:
+            LOGGER.warning('[GetInitialConfig] before signal_done {:s}'.format(str(device_uuid)))
             self.mutex_queues.signal_done(device_uuid)
+            LOGGER.warning('[GetInitialConfig] after signal_done {:s}'.format(str(device_uuid)))
 
     @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
     def MonitorDeviceKpi(self, request : MonitoringSettings, context : grpc.ServicerContext) -> Empty:
@@ -362,7 +383,9 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
                 raise OperationFailedException('MonitorDeviceKpi', extra_details=msg)
             device_uuid = kpi_details[0]
 
+        LOGGER.warning('[MonitorDeviceKpi] before wait_my_turn {:s}'.format(str(device_uuid)))
         self.mutex_queues.wait_my_turn(device_uuid)
+        LOGGER.warning('[MonitorDeviceKpi] after wait_my_turn {:s}'.format(str(device_uuid)))
         try:
             context_client = ContextClient()
             device = get_device(
@@ -381,4 +404,6 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
 
             return Empty()
         finally:
+            LOGGER.warning('[MonitorDeviceKpi] before signal_done {:s}'.format(str(device_uuid)))
             self.mutex_queues.signal_done(device_uuid)
+            LOGGER.warning('[MonitorDeviceKpi] after signal_done {:s}'.format(str(device_uuid)))
-- 
GitLab