From 39844af48e42cd3e2410aa60fb1ae5ae7fbd8dca Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 28 Dec 2023 17:05:31 +0100 Subject: [PATCH] Log SQL line when bridge DB upgrade fails --- bridge/bridge.go | 10 +++++++--- go.mod | 4 ++-- go.sum | 8 ++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/bridge/bridge.go b/bridge/bridge.go index 763cb4e0..9feea333 100644 --- a/bridge/bridge.go +++ b/bridge/bridge.go @@ -586,10 +586,14 @@ func (br *Bridge) init() { } func (br *Bridge) LogDBUpgradeErrorAndExit(name string, err error) { - br.ZLog.WithLevel(zerolog.FatalLevel). + logEvt := br.ZLog.WithLevel(zerolog.FatalLevel). Err(err). - Str("db_section", name). - Msg("Failed to initialize database") + Str("db_section", name) + var errWithLine *dbutil.PQErrorWithLine + if errors.As(err, &errWithLine) { + logEvt.Str("sql_line", errWithLine.Line) + } + logEvt.Msg("Failed to initialize database") if sqlError := (&sqlite3.Error{}); errors.As(err, sqlError) && sqlError.Code == sqlite3.ErrCorrupt { os.Exit(18) } else if errors.Is(err, dbutil.ErrForeignTables) { diff --git a/go.mod b/go.mod index 7fce5164..eb276954 100644 --- a/go.mod +++ b/go.mod @@ -12,10 +12,10 @@ require ( github.com/tidwall/gjson v1.17.0 github.com/tidwall/sjson v1.2.5 github.com/yuin/goldmark v1.6.0 - go.mau.fi/util v0.2.1 + go.mau.fi/util v0.2.2-0.20231228160422-22fdd4bbddeb go.mau.fi/zeroconfig v0.1.2 golang.org/x/crypto v0.15.0 - golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa + golang.org/x/exp v0.0.0-20231219180239-dc181d75b848 golang.org/x/net v0.18.0 gopkg.in/yaml.v3 v3.0.1 maunium.net/go/mauflag v1.0.0 diff --git a/go.sum b/go.sum index ce8aac82..cefb17f4 100644 --- a/go.sum +++ b/go.sum @@ -36,14 +36,14 @@ github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68= github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.mau.fi/util v0.2.1 h1:eazulhFE/UmjOFtPrGg6zkF5YfAyiDzQb8ihLMbsPWw= -go.mau.fi/util v0.2.1/go.mod h1:MjlzCQEMzJ+G8RsPawHzpLB8rwTo3aPIjG5FzBvQT/c= +go.mau.fi/util v0.2.2-0.20231228160422-22fdd4bbddeb h1:Is+6vDKgINRy9KHodvi7NElxoDaWA8sc2S3cF3+QWjs= +go.mau.fi/util v0.2.2-0.20231228160422-22fdd4bbddeb/go.mod h1:tiBX6nxVSOjU89jVQ7wBh3P8KjM26Lv1k7/I5QdSvBw= go.mau.fi/zeroconfig v0.1.2 h1:DKOydWnhPMn65GbXZOafgkPm11BvFashZWLct0dGFto= go.mau.fi/zeroconfig v0.1.2/go.mod h1:NcSJkf180JT+1IId76PcMuLTNa1CzsFFZ0nBygIQM70= golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= -golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= -golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= +golang.org/x/exp v0.0.0-20231219180239-dc181d75b848 h1:+iq7lrkxmFNBM7xx+Rae2W6uyPfhPeDWD+n+JgppptE= +golang.org/x/exp v0.0.0-20231219180239-dc181d75b848/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=