From 9958c4e3522000bcca59a38fd8f8d87a9dabffef Mon Sep 17 00:00:00 2001 From: sneak Date: Thu, 22 May 2025 06:58:29 -0700 Subject: [PATCH] Fix: Prevent crash by checking for DB initialization before logging to database --- main.go | 13 ++++++++----- storage.go | 6 ++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 8dcbaa4..75a5956 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,7 @@ package main import ( "database/sql" "flag" - "log" + "log/slog" "os" "os/signal" "sync" @@ -24,16 +24,18 @@ var ( ) func main() { + setupLogging() + defer flushLog() + logInfo("main", "Starting gomeshalerter", map[string]interface{}{ "timestamp": runStart.Format("15:04:05"), }) - setupLogging() - defer flushLog() var err error db, err = sql.Open("sqlite3", dbPath+"?_journal=WAL") // Use WAL mode for better concurrency if err != nil { - log.Fatalf("Failed to open database: %v", err) + slog.Error("Failed to open database", "error", err) + os.Exit(1) } // Define a cleanup function to properly close resources @@ -51,7 +53,8 @@ func main() { defer cleanup() if err := setupDatabase(); err != nil { - log.Fatalf("Failed to setup database: %v", err) + slog.Error("Failed to setup database", "error", err) + os.Exit(1) } ollamaModel := "qwen3:32b" diff --git a/storage.go b/storage.go index f03a9c3..9706ac5 100644 --- a/storage.go +++ b/storage.go @@ -397,6 +397,12 @@ func logEvent(event string, details map[string]interface{}) { // Add to the permanent log data (for file-based logging) logData = append(logData, entry) + // Only try to store in database if the database is initialized + if db == nil { + slog.Debug("Skipping database log storage - database not yet initialized") + return + } + // Store log in database logBytes, err := json.Marshal(entry) if err != nil {