From d582c17d380dd0d0651c25dd8696b0fba26df1e4 Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Mon, 17 Mar 2025 00:08:37 +0000
Subject: [PATCH] NBI component:

- Disabled multi-worker as synchronization through Kafka seems not to work, to be corrected
- Disabled heartbeat thread
---
 src/nbi/Dockerfile                          |  3 ++-
 src/nbi/service/NbiApplication.py           | 10 +++++-----
 src/nbi/service/health_probes/Namespaces.py |  2 +-
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/nbi/Dockerfile b/src/nbi/Dockerfile
index 6bca1c81a..ac54fc851 100644
--- a/src/nbi/Dockerfile
+++ b/src/nbi/Dockerfile
@@ -89,4 +89,5 @@ RUN mkdir -p /var/teraflow/tests/tools
 COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/
 
 # Start the service
-ENTRYPOINT ["gunicorn", "--workers", "4", "--worker-class", "eventlet", "--bind", "0.0.0.0:8080", "nbi.service.app:app"]
+# NOTE: Configured single worker to prevent issues with multi-worker synchronization. To be invetsigated.
+ENTRYPOINT ["gunicorn", "--workers", "1", "--worker-class", "eventlet", "--bind", "0.0.0.0:8080", "nbi.service.app:app"]
diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py
index dee09462c..16c1a6a1a 100644
--- a/src/nbi/service/NbiApplication.py
+++ b/src/nbi/service/NbiApplication.py
@@ -44,13 +44,13 @@ class NbiApplication:
 
         # Configure KafkaManager to enable SocketIO Servers running in different
         # gunicorn workers to self-coordinate and share sessions.
-        self._sio_client_manager = socketio.KafkaManager(
-            url='kafka://{:s}'.format(KafkaConfig.get_kafka_address()),
-            channel=KafkaTopic.NBI_SOCKETIO_WORKERS.value
-        )
+        #self._sio_client_manager = socketio.KafkaManager(
+        #    url='kafka://{:s}'.format(KafkaConfig.get_kafka_address()),
+        #    channel=KafkaTopic.NBI_SOCKETIO_WORKERS.value
+        #)
         self._sio = SocketIO(
             self._app, cors_allowed_origins='*', async_mode='eventlet',
-            client_manager=self._sio_client_manager,
+            #client_manager=self._sio_client_manager,
             logger=True, engineio_logger=True
         )
 
diff --git a/src/nbi/service/health_probes/Namespaces.py b/src/nbi/service/health_probes/Namespaces.py
index 8a3f9323c..5f6a5205f 100644
--- a/src/nbi/service/health_probes/Namespaces.py
+++ b/src/nbi/service/health_probes/Namespaces.py
@@ -24,7 +24,7 @@ class HeartbeatServerNamespace(Namespace):
     def __init__(self):
         super().__init__(namespace=SIO_NAMESPACE)
         self._thread = HeartbeatThread(self)
-        self._thread.start()
+        #self._thread.start()
 
     def stop_thread(self) -> None:
         self._thread.stop()
-- 
GitLab