go-tarantool icon indicating copy to clipboard operation
go-tarantool copied to clipboard

go-tarantool/v2/pool.Add: no logs on single connection failure

Open Maximilan4 opened this issue 11 months ago • 2 comments

Create pool with empty set of instances:

p, err := pool.ConnectWithOpts(ctx, []pool.Instance{}, connOpts)
...

Later, try to add new instances via add method:

if err = p.Add(ctx, instance); err != nil {
  return fmt.Errorf("conn [%s] err: %w", instance.Name, err)
}

When unable to establish connection with tarantool, i got no err here, no message in logs. First of all, no any logging at pool/connection_pool.go:285, if canceled variable is false. Second - no any err handling and logging at pool/connection_pool.go:1419.

Easy proposal: add some basic log.Printf for logging errors in code above. Hard proposal:

  1. expand basic Logger interface by basic logging methods (Info)
  2. remove method Report from Logger
  3. move method Report from defaultLogger to a specific or common dealer, which always logs specific events with Logger methods
  4. use Logger more often in code

This can allow:

  1. use custom logger inside a connector by writing specific adapter
  2. do not touch default log.SetOutput
  3. manage of verbose level

Maximilan4 avatar Mar 22 '24 20:03 Maximilan4

Thank you for the feedback!

This doesn't look like a priority bug or issue, so I can't promise we'll start working on it soon. But you could create a pull request with Easy proposal: add some basic log.Printf for logging errors in code above. and we will review/merge it.

We have some ideas to improve logging for ConnectionPool so the proposal was added to the backlog.

oleg-jukovec avatar Mar 23 '24 05:03 oleg-jukovec

Alright, i`ll try to do a request with logs in described parts today. Backlog state looks good.

Maximilan4 avatar Mar 25 '24 08:03 Maximilan4