diff --git a/cmd/cgat/main.go b/cmd/cgat/main.go index e59ced2da7280e532f69337319f0999a7835e6e9..4bb7c0968441b8b0568dd51f3c385e62e1140265 100644 --- a/cmd/cgat/main.go +++ b/cmd/cgat/main.go @@ -30,7 +30,7 @@ func main() { Address: "localhost:5432", User: "postgres", Password: "password", - MinConnections: 5, + MinConnections: 0, MaxConnections: 5, }) diff --git a/lib/bouncer/frontends/v0/accept.go b/lib/bouncer/frontends/v0/accept.go index 5caf09b7e03d194370204653f815997f67b7d28c..8ad4bc4c8b673f987b0e4830c48e6147699a1718 100644 --- a/lib/bouncer/frontends/v0/accept.go +++ b/lib/bouncer/frontends/v0/accept.go @@ -259,7 +259,7 @@ func accept(client zap.ReadWriter, getPassword func(user, database string) (stri err = perror.New( perror.FATAL, perror.InvalidPassword, - "User not found", + "User or database not found", ) return } diff --git a/lib/gat/pools/session/pool.go b/lib/gat/pools/session/pool.go index 1301891c52338aa5d74f76e2fae772201c25f736..f138736911d35e5c8dc649f49d4fe899921a845c 100644 --- a/lib/gat/pools/session/pool.go +++ b/lib/gat/pools/session/pool.go @@ -58,6 +58,8 @@ func (T *Pool) Serve(client zap.ReadWriter) { _ = client.Close() if serverErr == nil { T.release(server) + } else { + _ = server.Close() } break } @@ -86,7 +88,7 @@ func (T *Pool) AddRecipe(name string, recipe gat.Recipe) { } func (T *Pool) RemoveRecipe(name string) { - // TODO implement me + // TODO(garet) implement me panic("implement me") } diff --git a/lib/gat/pools/transaction/conn.go b/lib/gat/pools/transaction/conn.go index 836d7b299b83183c8f10c5fac45ba2bd2a29bec3..d29430a919c93fcb3fb3f78d7808c4fe95c1159a 100644 --- a/lib/gat/pools/transaction/conn.go +++ b/lib/gat/pools/transaction/conn.go @@ -18,10 +18,14 @@ func (T Conn) Do(_ rob.Constraints, work any) { job := work.(Work) job.ps.SetServer(T.ps) T.eqp.SetClient(job.eqp) - _, backendError := bouncers.Bounce(job.rw, T.rw) - if backendError != nil { - // TODO(garet) remove from pool - panic(backendError) + clientErr, serverErr := bouncers.Bounce(job.rw, T.rw) + if clientErr != nil || serverErr != nil { + _ = job.rw.Close() + if serverErr != nil { + _ = T.rw.Close() + // TODO(garet) drop conn from pool + panic(serverErr) + } } return }