Avoid logging ZooKeeper related exceptions during a replicated leveldb store shutdown.

This commit is contained in:
Hiram Chirino 2013-10-03 10:33:17 -04:00
parent 531d67cd13
commit a5ac1a3630
2 changed files with 7 additions and 2 deletions

View File

@ -179,7 +179,7 @@ class ElectingLevelDBStore extends ProxyLevelDBStore {
zk_client.start
zk_client.waitForConnected(Timespan.parse("30s"))
val zk_group = ZooKeeperGroupFactory.create(zk_client, zkPath)
zk_group = ZooKeeperGroupFactory.create(zk_client, zkPath)
val master_elector = new MasterElector(this)
debug("Starting ZooKeeper group monitor")
master_elector.start(zk_group)
@ -267,6 +267,7 @@ class ElectingLevelDBStore extends ProxyLevelDBStore {
if(brokerService!=null){
brokerService.getManagementContext().unregisterMBean(objectName);
}
zk_group.close
zk_client.close()
zk_client = null
if( master_started.get() ) {

View File

@ -70,13 +70,17 @@ class ZooKeeperGroup(val zk: ZKClient, val root: String) extends Group with Life
create(root)
tree.track(new NodeEventsListener[Array[Byte]]() {
def onEvents(events: Collection[NodeEvent[Array[Byte]]]): Unit = {
fire_cluster_change
if( !closed )
fire_cluster_change
}
})
fire_cluster_change
@volatile
var closed = false
def close = this.synchronized {
closed = true
joins.foreach { case (path, version) =>
try {
zk.delete(member_path_prefix + path, version)