fix: fail immediately on missing worker file (#1963)

This commit is contained in:
Alexander Stecher
2025-11-10 09:23:50 +01:00
committed by GitHub
parent bf4c9fe986
commit 407ef09ac3
2 changed files with 9 additions and 4 deletions

View File

@@ -175,9 +175,9 @@ func TestFinishBootingAWorkerScript(t *testing.T) {
func TestReturnAnErrorIf2WorkersHaveTheSameFileName(t *testing.T) {
workers = []*worker{}
w, err1 := newWorker(workerOpt{fileName: "filename.php", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
w, err1 := newWorker(workerOpt{fileName: testDataPath + "/index.php"})
workers = append(workers, w)
_, err2 := newWorker(workerOpt{fileName: "filename.php", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
_, err2 := newWorker(workerOpt{fileName: testDataPath + "/index.php"})
assert.NoError(t, err1)
assert.Error(t, err2, "two workers cannot have the same filename")
@@ -185,9 +185,9 @@ func TestReturnAnErrorIf2WorkersHaveTheSameFileName(t *testing.T) {
func TestReturnAnErrorIf2ModuleWorkersHaveTheSameName(t *testing.T) {
workers = []*worker{}
w, err1 := newWorker(workerOpt{fileName: "filename.php", name: "workername", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
w, err1 := newWorker(workerOpt{fileName: testDataPath + "/index.php", name: "workername"})
workers = append(workers, w)
_, err2 := newWorker(workerOpt{fileName: "filename2.php", name: "workername", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
_, err2 := newWorker(workerOpt{fileName: testDataPath + "/hello.php", name: "workername"})
assert.NoError(t, err1)
assert.Error(t, err2, "two workers cannot have the same name")

View File

@@ -4,6 +4,7 @@ package frankenphp
import "C"
import (
"fmt"
"os"
"strings"
"sync"
"time"
@@ -98,6 +99,10 @@ func newWorker(o workerOpt) (*worker, error) {
return nil, fmt.Errorf("worker filename is invalid %q: %w", o.fileName, err)
}
if _, err := os.Stat(absFileName); err != nil {
return nil, fmt.Errorf("worker file not found %q: %w", absFileName, err)
}
if o.name == "" {
o.name = absFileName
}