 		@rpcTimeout = 30000
 		@pingTimeout = 30000
 		@zkStart = "init"
+		@_zkStartListener = []
 		@rootRegionZKPath = options.rootRegionZKPath or '/meta-region-server'
-		@prefetchRegionCacheList = {}
+		@_prefetchRegionCacheList = {}
+		@_prefetchRegionCacheListInProgress = {}
 		@ensureZookeeperTrackers (err) =>
 			@emit 'error', err if err
 


	ensureZookeeperTrackers: (cb) =>
		return cb() if @zkStart is "done"
		@once "ready", cb
		return if @zkStart is "starting"
		@zkStart = "starting"

		@zk.once "connected", (err) =>
			if err

				return done err if err

				unless regionRow.row
					@_prefetchRegionCacheList[table] = yes
					work = no
					return done()

				region = @_parseRegionInfo regionRow
				@cacheLocation table, region if region
				done()
		, (err) =>
			console.log err if err
			@emit prefetchEvent
			delete @_prefetchRegionCacheListInProgress[prefetchEvent]
			cb()


