tree 57a985d89ccc8ffe1cd7cca27e94512f3e5a7623
parent 3f7da147c08cfc5071899bed640c4f3bfe331e1c
author Enrico Olivelli <eolivelli@gmail.com> 1611745845 +0100
committer GitHub <noreply@github.com> 1611745845 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgEUo1CRBK7hj4Ov3rIwAAdHIIAJWeHUIWhpXPHkh60DNJvEUJ
 JjKasALAJ4C2lu8r8bp3V5yfs+G9WPxlbYNVke9A5jAfWlFA3mUReSKpsoMqE5EX
 NRg9T6owizam21nHS8RrGM9PBkDAlJF62S2LF1BftQ21ghrDa1HoqAuYhpkxmND1
 sbK1JfzObFwUx3hjzH7nlcIH9yLURXRe7sarYnKHV1Tn2AwIUFyqgH+4gIjqWh9V
 J00PEVKQhPF6jCvqBYomZoETsk5hcIfREIgum2fOexjLXW4EgXN/1iw0dvPp0A3l
 OM09CwtiBFPXqkGJg0gtiC11cMKMiVEU5PQbrHE/j2bfdSLSFYXvdadPRbPMDAw=
 =+Vfb
 -----END PGP SIGNATURE-----
 

Fix BookKeeper shell "list bookies" in case of downbookie and reduce noisy log during re-replication in case of down bookie

### Motivation

When a bookie is down you can see many error both on command line tools and during replicator work.

Also the CLI is not working at all

```

This is the error on "bookkeeper shell listbookies" when a bookie is downb
org.apache.bookkeeper.client.BKException$BKBookieHandleNotAvailableException: Bookie handle is not available
	at org.apache.bookkeeper.discover.ZKRegistrationClient.getBookieServiceInfo(ZKRegistrationClient.java:248) ~[org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.client.DefaultBookieAddressResolver.resolve(DefaultBookieAddressResolver.java:43) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.tools.cli.helpers.CommandHelpers.getBookieSocketAddrStringRepresentation(CommandHelpers.java:45) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.tools.cli.commands.bookies.ListBookiesCommand.printBookies(ListBookiesCommand.java:124) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.tools.cli.commands.bookies.ListBookiesCommand.run(ListBookiesCommand.java:113) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.tools.cli.commands.bookies.ListBookiesCommand.run(ListBookiesCommand.java:43) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.tools.cli.helpers.DiscoveryCommand.apply(DiscoveryCommand.java:57) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.tools.cli.helpers.ClientCommand.apply(ClientCommand.java:60) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.bookie.BookieShell$ListBookiesCmd.runCmd(BookieShell.java:1202) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.bookie.BookieShell$MyCommand.runCmd(BookieShell.java:236) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.bookie.BookieShell.run(BookieShell.java:2235) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]
	at org.apache.bookkeeper.bookie.BookieShell.main(BookieShell.java:2326) [org.apache.bookkeeper-bookkeeper-server-4.12.0.jar:4.12.0]

```

### Changes

Reduce the log level, and save printing useless stacktraces:
- CommandsHelpers -> prevent error on the CLI in case of down bookie (this is a blocker for the usage of the CLI)
- PerChannelBookieClient -> any time you try to connect to a down bookie
- DefaultBookieAddressResolver -> duplicate log line, the error already bubbles up on the caller

Reviewers: Flavio Junqueira <fpj@apache.org>

This closes #2538 from eolivelli/fix/reduce-logs