From 58888a74bc686c1d12ac4cb1c2c9a514a7b77f08 Mon Sep 17 00:00:00 2001 From: Daniel Hiltgen Date: Tue, 23 Apr 2024 10:05:26 -0700 Subject: [PATCH] Detect and recover if runner removed Tmp cleaners can nuke the file out from underneath us. This detects the missing runner, and re-initializes the payloads. --- llm/server.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/llm/server.go b/llm/server.go index 01a712c3..00ef20c9 100644 --- a/llm/server.go +++ b/llm/server.go @@ -250,6 +250,17 @@ func NewLlamaServer(gpus gpu.GpuInfoList, model string, ggml *GGML, adapters, pr server = server + ".exe" } + // Detect tmp cleaners wiping out the file + _, err := os.Stat(server) + if errors.Is(err, os.ErrNotExist) { + slog.Warn("llama server disappeared, reinitializing payloads", "path", server, "error", err) + err = Init() + if err != nil { + slog.Warn("failed to reinitialize payloads", "error", err) + return nil, err + } + } + s := &llmServer{ port: port, cmd: exec.Command(server, finalParams...),