diff --git a/lib/gat/modes/digitalocean_discovery/config.go b/lib/gat/modes/digitalocean_discovery/config.go index f09a0472cd59ab211f0374433cfe71587ef8a987..6fd936850aa725f3779c6910a7b819cfbf9bc7af 100644 --- a/lib/gat/modes/digitalocean_discovery/config.go +++ b/lib/gat/modes/digitalocean_discovery/config.go @@ -95,7 +95,7 @@ func (T *Config) ListenAndServe() error { } for _, dbname := range cluster.DBNames { - poolOptions := pool.Options{ + baseOptions := pool.Options{ Credentials: creds, ServerReconnectInitialTime: 5 * time.Second, ServerReconnectMaxTime: 5 * time.Second, @@ -108,11 +108,12 @@ func (T *Config) ListenAndServe() error { strutil.MakeCIString("application_name"), }, } + var poolOptions pool.Options if T.PoolMode == "session" { - poolOptions.ServerResetQuery = "DISCARD ALL" - poolOptions = session.Apply(poolOptions) + baseOptions.ServerResetQuery = "DISCARD ALL" + poolOptions = session.Apply(baseOptions) } else { - poolOptions = transaction.Apply(poolOptions) + poolOptions = transaction.Apply(baseOptions) } p := pool.NewPool(poolOptions) @@ -149,9 +150,15 @@ func (T *Config) ListenAndServe() error { // change pool credentials creds2 := creds creds2.Username = user.Name + "_ro" - poolOptions2 := poolOptions + poolOptions2 := baseOptions poolOptions2.Credentials = creds2 + if T.PoolMode == "session" { + poolOptions2 = session.Apply(baseOptions) + } else { + poolOptions2 = transaction.Apply(baseOptions) + } + p2 := pool.NewPool(poolOptions2) for _, replica := range replicas { diff --git a/lib/gat/pool/pool.go b/lib/gat/pool/pool.go index 9d75d2dd4cd0cd304c2294a3e253ba3cb92f1a90..cc6c5a210afba2d261a7bc80fe612ef1fe904762 100644 --- a/lib/gat/pool/pool.go +++ b/lib/gat/pool/pool.go @@ -231,7 +231,6 @@ func (T *Pool) acquireServer(client *Client) *Server { server, ok := T.servers[serverID] T.mu.RUnlock() if !ok { - log.Println("here") T.options.Pooler.DeleteServer(serverID) continue }