Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4aacca3

Browse files
committed
close db properly
1 parent118bf98 commit4aacca3

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

‎cli/server.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2312,19 +2312,20 @@ func ConnectToPostgres(ctx context.Context, logger slog.Logger, driver string, d
23122312

23132313
varerrerror
23142314
varsqlDB*sql.DB
2315+
vardbNeedsClosing=true
23152316
// Try to connect for 30 seconds.
23162317
ctx,cancel:=context.WithTimeout(ctx,30*time.Second)
23172318
defercancel()
23182319

23192320
deferfunc() {
2320-
iferr==nil {
2321+
if!dbNeedsClosing {
23212322
return
23222323
}
23232324
ifsqlDB!=nil {
23242325
_=sqlDB.Close()
23252326
sqlDB=nil
2327+
logger.Debug(ctx,"closed db before returning from ConnectToPostgres")
23262328
}
2327-
logger.Error(ctx,"connect to postgres failed",slog.Error(err))
23282329
}()
23292330

23302331
vartriesint
@@ -2361,12 +2362,7 @@ func ConnectToPostgres(ctx context.Context, logger slog.Logger, driver string, d
23612362
}
23622363
deferversion.Close()
23632364
if!version.Next() {
2364-
// it's critical we assign to the err variable, otherwise the defer statement
2365-
// that runs db.Close() will not execute it
2366-
iferr=version.Err();err!=nil {
2367-
returnnil,xerrors.Errorf("no rows returned for version select: %w",err)
2368-
}
2369-
returnnil,xerrors.Errorf("no rows returned for version select")
2365+
returnnil,xerrors.Errorf("no rows returned for version select: %w",version.Err())
23702366
}
23712367
varversionNumint
23722368
err=version.Scan(&versionNum)
@@ -2408,6 +2404,7 @@ func ConnectToPostgres(ctx context.Context, logger slog.Logger, driver string, d
24082404
// of connection churn.
24092405
sqlDB.SetMaxIdleConns(3)
24102406

2407+
dbNeedsClosing=false
24112408
returnsqlDB,nil
24122409
}
24132410

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp