projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
21123: Fix inadvertent use of run-tests db in dispatcher tests.
[arvados.git]
/
lib
/
ctrlctx
/
db.go
diff --git
a/lib/ctrlctx/db.go
b/lib/ctrlctx/db.go
index 2a05096ce18b7430e7e1e487dd5d710024ac9193..d33fd8ab53cfe1525a65329d1a5f0cfa2b9c7214 100644
(file)
--- a/
lib/ctrlctx/db.go
+++ b/
lib/ctrlctx/db.go
@@
-69,7
+69,7
@@
type finishFunc func(*error)
// commit or rollback the transaction, if any.
//
// func example(ctx context.Context) (err error) {
// commit or rollback the transaction, if any.
//
// func example(ctx context.Context) (err error) {
-// ctx, finishtx := New(ctx,
dber
)
+// ctx, finishtx := New(ctx,
getdb
)
// defer finishtx(&err)
// // ...
// tx, err := CurrentTx(ctx)
// defer finishtx(&err)
// // ...
// tx, err := CurrentTx(ctx)
@@
-168,8
+168,20
@@
func (dbc *DBConnector) GetDB(ctx context.Context) (*sqlx.DB, error) {
}
if err := db.Ping(); err != nil {
ctxlog.FromContext(ctx).WithError(err).Error("postgresql connect succeeded but ping failed")
}
if err := db.Ping(); err != nil {
ctxlog.FromContext(ctx).WithError(err).Error("postgresql connect succeeded but ping failed")
+ db.Close()
return nil, errDBConnection
}
dbc.pgdb = db
return db, nil
}
return nil, errDBConnection
}
dbc.pgdb = db
return db, nil
}
+
+func (dbc *DBConnector) Close() error {
+ dbc.mtx.Lock()
+ defer dbc.mtx.Unlock()
+ var err error
+ if dbc.pgdb != nil {
+ err = dbc.pgdb.Close()
+ dbc.pgdb = nil
+ }
+ return err
+}