Skip to content

Commit 3557bb4

Browse files
authored
fix: return error if not nil when connecting (#151)
* fix: return error if not nil when connecting * break if non-retryable error is encountered * pr comments
1 parent 96cc154 commit 3557bb4

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

connector.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,10 @@ func (c *Connector) connectWithRetries(ctx context.Context, conn dbConnection, k
6363
applyHeaders(q, headers)
6464
}
6565

66+
var db *sql.DB
67+
var err error
6668
for i := 0; i < c.driverSettings.Retries; i++ {
67-
db, err := c.Reconnect(ctx, conn, q, key)
69+
db, err = c.Reconnect(ctx, conn, q, key)
6870
if err != nil {
6971
return err
7072
}
@@ -74,20 +76,24 @@ func (c *Connector) connectWithRetries(ctx context.Context, conn dbConnection, k
7476
}
7577
err = c.connect(conn)
7678
if err == nil {
77-
return err
79+
break
7880
}
7981

8082
if !shouldRetry(c.driverSettings.RetryOn, err.Error()) {
8183
break
8284
}
8385

86+
if i+1 == c.driverSettings.Retries {
87+
break
88+
}
89+
8490
if c.driverSettings.Pause > 0 {
8591
time.Sleep(time.Duration(c.driverSettings.Pause * int(time.Second)))
8692
}
87-
backend.Logger.Warn(fmt.Sprintf("connect failed: %s. Retrying %d times", err.Error(), i))
93+
backend.Logger.Warn(fmt.Sprintf("connect failed: %s. Retrying %d times", err.Error(), i+1))
8894
}
8995

90-
return nil
96+
return err
9197
}
9298

9399
func (c *Connector) connect(conn dbConnection) error {

0 commit comments

Comments
 (0)