diff --git a/.specstory/history/2025-07-15_18-30Z-configure-launch-standard-worker-for-flamenco-3-7.md b/.specstory/history/2025-07-15_18-30Z-configure-launch-standard-worker-for-flamenco-3-7.md new file mode 100644 index 0000000..004b2a0 --- /dev/null +++ b/.specstory/history/2025-07-15_18-30Z-configure-launch-standard-worker-for-flamenco-3-7.md @@ -0,0 +1,110 @@ + + +# Configure Launch Standard Worker for Flamenco 3.7 (2025-07-15 18:30Z) + +_**User**_ + +@2025-05-12_16-04Z-technical-scripting-and-troubleshooting-discussion.md @2025-05-13_23-13Z-bypassing-password-prompts-in-script.md @2025-06-03_00-04Z-change-retry-function-to-infinite-retries.md @2025-05-14_15-49Z-cmd-worker-error-handling-and-retry-logic.md @2025-05-23_23-12Z-replace-remotecmd-with-remotesimplified.md I'm upgrading from Flamenco 3.6 to 3.7. CMD workers are working fine because they're directed to F:\software\Flamenco 3.7, and i9kf is working fine because I've installed flamenco 3.7 to that local path. Can we have Launch Standard Worker run the worker executable in F:\software\Flamenco 3.7 ? + +--- + +_**Assistant**_ + +Yes, you can have the "Launch Standard Worker" option run the worker executable from `F:\software\Flamenco 3.7` for all systems, just like the CMD workers. Currently, the `Get-RemoteStandardWorkerCommand` function is set up to run the worker from `C:\Program Files\Blender Foundation\Flamenco 3.7` if it exists, but you want it to always use `F:\software\Flamenco 3.7\flamenco-worker.exe`. + +**Here's what you need to do:** + +- Update the `Get-RemoteStandardWorkerCommand` function so that it always sets the location to `F:\software\Flamenco 3.7` and runs `flamenco-worker.exe` from there, regardless of whether the directory exists in `C:\Program Files\...`. + +--- + +**How to update:** + +Replace the entire worker start block in `Get-RemoteStandardWorkerCommand` with the following: + +```powershell +# Start worker +Write-Host "Starting Flamenco worker..." -ForegroundColor Cyan +Set-Location 'F:\software\Flamenco 3.7' +if (Test-Path 'flamenco-worker.exe') { + Write-Host "Running flamenco-worker.exe..." -ForegroundColor Green + # Run the worker and capture its exit code + $workerProcess = Start-Process -FilePath '.\flamenco-worker.exe' -NoNewWindow -PassThru -Wait + $exitCode = $workerProcess.ExitCode + Write-Host "Flamenco worker process has terminated with exit code: $exitCode" -ForegroundColor Yellow + exit $exitCode # Exit with the worker's exit code to trigger restart if needed +} else { + Write-Host "Error: flamenco-worker.exe not found in F:\software\Flamenco 3.7" -ForegroundColor Red + exit 1 # Exit with error code to trigger restart +} +``` + +**Remove** the check for `C:\Program Files\Blender Foundation\Flamenco 3.7` entirely. + +--- + +**Result:** +- All "Standard Worker" launches will use the 3.7 executable from `F:\software\Flamenco 3.7`, just like your CMD workers. +- This will ensure consistency across all your worker launches. + +Would you like me to make this edit for you now? + +--- + +_**User**_ + +each worker except for i9kf is printing: + +2025-07-15T12:36:06-06:00 WRN unable to send sign-on request error="Post \"http://localhost:8888/api/v3/worker/sign-on\": dial tcp [::1]:8888: connectex: No connection could be made because the target machine actively refused it." manager=http://localhost:8888/ + +--- + +_**Assistant**_ + +The warning message: + +``` +WRN unable to send sign-on request error="Post \"http://localhost:8888/api/v3/worker/sign-on\": dial tcp [::1]:8888: connectex: No connection could be made because the target machine actively refused it." manager=http://localhost:8888/ +``` + +means that the Flamenco worker is trying to connect to a Flamenco Manager at `http://localhost:8888/`, but nothing is listening on that port on the remote machine. This is a **network/configuration issue**, not a script or launcher bug. + +### Why does this happen? + +- **Each worker runs on its own machine.** +- By default, the worker tries to connect to a manager at `localhost:8888` (i.e., itself). +- Unless the Flamenco Manager is running on that same machine and on that port, the connection will fail. + +### Why does i9kf work? + +- On i9kf, you probably have the Flamenco Manager running locally, or the worker's config points to the correct manager address. + +### Why do the others fail? + +- On the other machines, the worker is trying to connect to `localhost:8888`, but the manager is not running there (or not on that port). + +--- + +## How to Fix + +You need to make sure that **each worker's configuration file** (`flamenco-worker.yaml`) points to the correct Flamenco Manager address (the actual host/IP where the manager is running, not `localhost`). + +### Steps: + +1. **Find the manager's real address.** + - If the manager is running on i9kf, use its network name or IP, e.g., `http://i9kf:8888/` or `http://192.168.1.100:8888/`. + +2. **Update the worker config on each machine:** + - Open `flamenco-worker.yaml` (location is shown in the worker's startup log, e.g., `C:\Users\Nathan\AppData\Local\Blender Foundation\Flamenco\worker-2\flamenco-worker.yaml`). + - Find the line like: + ```yaml + manager: http://localhost:8888/ + ``` + - Change it to: + ```yaml + manager: http://i9kf:8888/ + ``` + or whatever the + +--- + diff --git a/unified_flamenco_launcher.ps1 b/unified_flamenco_launcher.ps1 index 59e0abf..f971ded 100644 --- a/unified_flamenco_launcher.ps1 +++ b/unified_flamenco_launcher.ps1 @@ -109,21 +109,16 @@ net use # Start worker Write-Host "Starting Flamenco worker..." -ForegroundColor Cyan -if (Test-Path 'C:\Program Files\Blender Foundation\Flamenco 3.6') { - Set-Location 'C:\Program Files\Blender Foundation\Flamenco 3.6' - if (Test-Path 'flamenco-worker.exe') { - Write-Host "Running flamenco-worker.exe..." -ForegroundColor Green - # Run the worker and capture its exit code - $workerProcess = Start-Process -FilePath '.\flamenco-worker.exe' -NoNewWindow -PassThru -Wait - $exitCode = $workerProcess.ExitCode - Write-Host "Flamenco worker process has terminated with exit code: $exitCode" -ForegroundColor Yellow - exit $exitCode # Exit with the worker's exit code to trigger restart if needed - } else { - Write-Host "Error: flamenco-worker.exe not found" -ForegroundColor Red - exit 1 # Exit with error code to trigger restart - } +Set-Location 'F:\software\Flamenco 3.7' +if (Test-Path 'flamenco-worker.exe') { + Write-Host "Running flamenco-worker.exe..." -ForegroundColor Green + # Run the worker and capture its exit code + $workerProcess = Start-Process -FilePath '.\flamenco-worker.exe' -NoNewWindow -PassThru -Wait + $exitCode = $workerProcess.ExitCode + Write-Host "Flamenco worker process has terminated with exit code: $exitCode" -ForegroundColor Yellow + exit $exitCode # Exit with the worker's exit code to trigger restart if needed } else { - Write-Host "Error: Flamenco directory not found" -ForegroundColor Red + Write-Host "Error: flamenco-worker.exe not found in F:\software\Flamenco 3.7" -ForegroundColor Red exit 1 # Exit with error code to trigger restart } '@ @@ -172,13 +167,13 @@ net use # Start worker via CMD - hardcoded paths Write-Host "Running command file..." -ForegroundColor Cyan -$defaultCmdPath = "F:\software\Flamenco 3.6\run-flamenco-worker.cmd" +$defaultCmdPath = "F:\software\Flamenco 3.7\run-flamenco-worker.cmd" if (Test-Path $defaultCmdPath) { - Set-Location "F:\software\Flamenco 3.6" + Set-Location "F:\software\Flamenco 3.7" Write-Host "Starting worker..." -ForegroundColor Green # Use hardcoded path to avoid variable expansion issues - cmd.exe /c "F:\software\Flamenco 3.6\run-flamenco-worker.cmd" + cmd.exe /c "F:\software\Flamenco 3.7\run-flamenco-worker.cmd" Write-Host "Worker process has terminated." -ForegroundColor Yellow } else { Write-Host "Command file not found at default location." -ForegroundColor Red @@ -241,7 +236,7 @@ net use # Simple direct command execution with automatic "2" input Write-Host "Running Flamenco worker..." -ForegroundColor Cyan -Set-Location -Path "F:\software\Flamenco` 3.6" +Set-Location -Path "F:\software\Flamenco 3.7" if (Test-Path -Path "run-flamenco-worker.cmd") { # Create a temporary file to store the "2" input $tempInputFile = [System.IO.Path]::GetTempFileName()