Hi guys: I am revisiting the auto-recovery code. There were tons of synchronous calls in asynchronous callbacks (zookeeper/bookkeeper callbacks), which potentially will block the zookeeper/bookkeeper client worker threads. Specifically there isn't asynchronous method for LedgerUnderreplicationManager interface. This is very bad practice.
Ivan/Rakesh, are you guys aware of this? I am going to make a change to make it asynchronous. Any objections? - Sijie
