From 3cca3a22f64f8d5dd44dfa2fc7c1e6aade5acb1c Mon Sep 17 00:00:00 2001 From: dekzter Date: Tue, 4 Mar 2025 11:00:39 -0500 Subject: [PATCH 1/2] fixed lock identifier to applly only to profile and index, not channel and stream --- core/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/views.py b/core/views.py index 59d69ee0..002dda60 100644 --- a/core/views.py +++ b/core/views.py @@ -79,6 +79,7 @@ def stream_view(request, stream_id): logger.debug('Profile is not active, skipping.') continue + logger.debug(f'Profile has a max streams of {profile.max_streams}') # Acquire the persistent Redis lock, indexed by 0 through max_streams available in the profile stream_index = 0 while True: @@ -89,9 +90,10 @@ def stream_view(request, stream_id): logger.debug(f"Profile is using all available streams.") break - lock_key = f"lock:{channel.id}:{stream.id}:{profile.id}:{stream_index}" + lock_key = f"lock:{profile.id}:{stream_index}" persistent_lock = PersistentLock(redis_client, lock_key, lock_timeout=120) + logger.debug(f'Attempting to acquire lock: {lock_key}') if not persistent_lock.acquire(): logger.error(f"Could not acquire persistent lock for profile {profile.id} index {stream_index}, currently in use.") continue From 6681b57a63b3a3dd6e40725658ef16be3eadf767 Mon Sep 17 00:00:00 2001 From: dekzter Date: Tue, 4 Mar 2025 11:06:29 -0500 Subject: [PATCH 2/2] fixed entrypoint for dev --- docker/docker-compose.dev.yml | 3 +-- docker/entrypoint.sh | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 214c47da..e1cb976d 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -3,7 +3,7 @@ services: # build: # context: .. # dockerfile: docker/Dockerfile.dev - image: dispatcharr/dispatcharr:dev + image: dispatcharr/dispatcharr container_name: dispatcharr_dev ports: - "5656:5656" @@ -12,6 +12,5 @@ services: - ../:/app environment: - DISPATCHARR_ENV=dev - - DB_ENGINE=sqlite - REDIS_HOST=localhost - CELERY_BROKER_URL=redis://localhost:6379/0 diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index f2a50231..35b30142 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -85,7 +85,12 @@ if [ "$DISPATCHARR_ENV" = "dev" ]; then echo "🚀 Development Mode - Setting up Frontend..." # Install Node.js - apt-get update && apt-get install -y nodejs + echo "=== setting up nodejs ===" + curl -sL https://deb.nodesource.com/setup_23.x -o /tmp/nodesource_setup.sh + bash /tmp/nodesource_setup.sh + apt-get update + apt-get install -y --no-install-recommends \ + nodejs # Install frontend dependencies cd /app/frontend && npm install @@ -94,12 +99,18 @@ if [ "$DISPATCHARR_ENV" = "dev" ]; then # Start React development server echo "🚀 Starting React Dev Server..." cd /app/frontend - su - $POSTGRES_USER -c "PORT=9191 /app/frontend/node_modules/pm2/bin/pm2 --name dev-server start npm -- start" + su - $POSTGRES_USER -c "cd /app/frontend && /app/frontend/node_modules/pm2/bin/pm2 --name dev-server start npm -- run start" ./node_modules/pm2/bin/pm2 logs & react_pid=$(cat /home/dispatch/.pm2/pids/dev-server*) echo "✅ React started with PID $react_pid" pids+=("$react_pid") cd /app +else + echo "🚀 Starting nginx..." + nginx + nginx_pid=$(pgrep nginx | sort | head -n1) + echo "✅ nginx started with PID $nginx_pid" + pids+=("$nginx_pid") fi # If running in `dev` or `aio`, start Postgres, Redis, and Celery @@ -207,12 +218,6 @@ gunicorn_pid=$(pgrep -x gunicorn | sort | head -n1) echo "✅ Gunicorn started with PID $gunicorn_pid" pids+=("$gunicorn_pid") -echo "🚀 Starting nginx..." -nginx -nginx_pid=$(pgrep nginx | sort | head -n1) -echo "✅ nginx started with PID $nginx_pid" -pids+=("$nginx_pid") - # Log PIDs echo "📝 Process PIDs: ${pids[*]}"