fix: segfault on database connection failure

This commit is contained in:
Jordan Knott 2020-09-12 18:23:23 -05:00
parent fe84f97f18
commit c7538a98e5

View File

@ -40,16 +40,21 @@ func newWebCmd() *cobra.Command {
) )
var db *sqlx.DB var db *sqlx.DB
var err error var err error
retryNumber := 0 var retryDuration time.Duration
for i := 0; retryNumber <= 3; i++ { maxRetryNumber := 4
retryNumber++ for i := 0; i < maxRetryNumber; i++ {
db, err = sqlx.Connect("postgres", connection) db, err = sqlx.Connect("postgres", connection)
if err == nil { if err == nil {
break break
} }
retryDuration := time.Duration(i*2) * time.Second retryDuration = time.Duration(i*2) * time.Second
log.WithFields(log.Fields{"retryNumber": retryNumber, "retryDuration": retryDuration}).WithError(err).Error("issue connecting to database, retrying") log.WithFields(log.Fields{"retryNumber": i, "retryDuration": retryDuration}).WithError(err).Error("issue connecting to database, retrying")
time.Sleep(retryDuration) if i != maxRetryNumber-1 {
time.Sleep(retryDuration)
}
}
if err != nil {
return err
} }
db.SetMaxOpenConns(25) db.SetMaxOpenConns(25)
db.SetMaxIdleConns(25) db.SetMaxIdleConns(25)