From 21dc4e9b091bfff6b4704dc933f6e020cfcf1a61 Mon Sep 17 00:00:00 2001 From: Benjamin Yang <82779168+bennyyang11@users.noreply.github.com> Date: Tue, 14 Oct 2025 08:51:52 -0700 Subject: [PATCH] Fix ollama windows installer (#1894) * Fix Windows filename issue in scheduled support bundles * Fix: Close temp file before executing Ollama installer on Windows Windows requires files to be closed before they can be executed. This fix ensures the temporary installer file is properly closed before attempting to run it, preventing file access errors on Windows systems. --- pkg/analyze/ollama_helper.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/analyze/ollama_helper.go b/pkg/analyze/ollama_helper.go index e19d6a72..85ccb466 100644 --- a/pkg/analyze/ollama_helper.go +++ b/pkg/analyze/ollama_helper.go @@ -146,7 +146,7 @@ func (h *OllamaHelper) downloadAndInstallWindows() error { return errors.Wrap(err, "failed to create temporary file") } defer os.Remove(tmpFile.Name()) - defer tmpFile.Close() + defer tmpFile.Close() // Ensures file is closed in error paths // Download installer resp, err := http.Get(h.downloadURL) @@ -165,6 +165,13 @@ func (h *OllamaHelper) downloadAndInstallWindows() error { return errors.Wrap(err, "failed to write installer") } + // Close the file before executing it (required on Windows) + // Note: This will be called twice (here and via defer), but that's safe + // The defer ensures cleanup on error paths, this ensures closure before execution + if err := tmpFile.Close(); err != nil { + return errors.Wrap(err, "failed to close installer file") + } + // Run installer klog.Info("Running Ollama installer...") cmd := exec.Command(tmpFile.Name())