Yes, I think, continuing without SplitLogWroker may not be a good behaviour.
Because that particular regionServer may have more capacity to take up the new regions. With the current behaviour it may not compete for taking any new splilog work.
I feel we can retry for some times and then we can shutdown regionServer?
or other option is to retry forever on any ZK exception. And can exit only on interrupted exception.
Also i am seeing this issue may be bit dangerous bacause, if ZK is not available for some time, all RegionServer may face this problem and no one will take up the splitlog work.
listChildrenAndWatchForNewChildren will return null only if node does not exist. If it is not able to find any children then it will return empty list. So, zookeeper.znode.splitlog will be always set.
On Other keeperExceptions like ZK unavalability and all, we have to handle.