From be3180a54ced4cd6cf0900e8bd9ff658be1b822e Mon Sep 17 00:00:00 2001 From: Eric Lippmann Date: Fri, 21 May 2021 15:23:42 +0200 Subject: [PATCH] Log first database connection error while retrying --- pkg/driver/driver.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/driver/driver.go b/pkg/driver/driver.go index ec8197ba..ee74d58c 100644 --- a/pkg/driver/driver.go +++ b/pkg/driver/driver.go @@ -12,6 +12,7 @@ import ( "log" "net" "os" + "sync" "syscall" "time" ) @@ -26,10 +27,16 @@ type Driver struct { // TODO(el): Test DNS. func (d Driver) Open(dsn string) (c driver.Conn, err error) { + var logFirstError sync.Once err = retry.WithBackoff( context.Background(), func(context.Context) (err error) { c, err = d.Driver.Open(dsn) + logFirstError.Do(func() { + if err != nil { + d.Logger.Warnw("Can't connect to database. Retrying", zap.Error(err)) + } + }) return }, shouldRetry,