Change worker communication from Unix sockets to TCP to fix connection issues

parent 5aca4219
...@@ -22,7 +22,7 @@ Manages request routing between web interface and worker processes. ...@@ -22,7 +22,7 @@ Manages request routing between web interface and worker processes.
import time import time
import threading import threading
from .comm import SocketServer, Message from .comm import SocketServer, Message
from .config import get_analysis_backend, get_training_backend, set_analysis_backend, set_training_backend from .config import get_analysis_backend, get_training_backend, set_analysis_backend, set_training_backend, get_backend_worker_port
from .queue import queue_manager from .queue import queue_manager
...@@ -128,9 +128,8 @@ def backend_process() -> None: ...@@ -128,9 +128,8 @@ def backend_process() -> None:
web_server = SocketServer(host='localhost', port=get_backend_web_port(), comm_type='tcp') web_server = SocketServer(host='localhost', port=get_backend_web_port(), comm_type='tcp')
web_server.start(handle_web_message) web_server.start(handle_web_message)
# Start worker server (always Unix socket) # Start worker server (TCP socket)
worker_socket_path = get_socket_path('worker') worker_server = SocketServer(host='localhost', port=get_backend_worker_port(), comm_type='tcp')
worker_server = SocketServer(socket_path=worker_socket_path, comm_type='unix')
worker_server.start(worker_message_handler) worker_server.start(worker_message_handler)
try: try:
......
...@@ -29,7 +29,7 @@ import cv2 ...@@ -29,7 +29,7 @@ import cv2
import time import time
from .comm import SocketCommunicator, Message from .comm import SocketCommunicator, Message
from .models import get_model from .models import get_model
from .config import get_system_prompt_content, get_comm_type from .config import get_system_prompt_content, get_comm_type, get_backend_worker_port
# Set PyTorch CUDA memory management # Set PyTorch CUDA memory management
os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'expandable_segments:True' os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'expandable_segments:True'
...@@ -253,9 +253,8 @@ def worker_process(backend_type: str): ...@@ -253,9 +253,8 @@ def worker_process(backend_type: str):
print(f"DEBUG: Starting Analysis Worker for {backend_type}...") print(f"DEBUG: Starting Analysis Worker for {backend_type}...")
print(f"DEBUG: Worker PID: {os.getpid()}") print(f"DEBUG: Worker PID: {os.getpid()}")
# Workers always use Unix sockets for interprocess communication # Workers use TCP for interprocess communication
from .compat import get_socket_path comm = SocketCommunicator(host='localhost', port=get_backend_worker_port(), comm_type='tcp')
comm = SocketCommunicator(socket_path=get_socket_path('worker'), comm_type='unix')
comm.connect() comm.connect()
print(f"Analysis Worker connected to backend") print(f"Analysis Worker connected to backend")
......
...@@ -27,7 +27,7 @@ import shutil ...@@ -27,7 +27,7 @@ import shutil
import json import json
import time import time
from .comm import SocketCommunicator, Message from .comm import SocketCommunicator, Message
from .config import get_comm_type from .config import get_comm_type, get_backend_worker_port
def train_model(train_path, output_model, description): def train_model(train_path, output_model, description):
"""Perform training.""" """Perform training."""
...@@ -49,9 +49,8 @@ def worker_process(backend_type: str): ...@@ -49,9 +49,8 @@ def worker_process(backend_type: str):
"""Main worker process.""" """Main worker process."""
print(f"Starting Training Worker for {backend_type}...") print(f"Starting Training Worker for {backend_type}...")
# Workers always use Unix sockets for interprocess communication # Workers use TCP for interprocess communication
from .compat import get_socket_path comm = SocketCommunicator(host='localhost', port=get_backend_worker_port(), comm_type='tcp')
comm = SocketCommunicator(socket_path=get_socket_path('worker'), comm_type='unix')
comm.connect() comm.connect()
# Register with backend # Register with backend
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment