It's little weird, but it happened in the product environment that few RegionServer missed master znode create notification on master failover. In that case ZooKeeperNodeTracker will not refresh the cached data and MasterAddressTracker will always return old active HM detail to Region server on ServiceException.
Though We create region server stub on failure but without refreshing the MasterAddressTracker data.
Here we refresh node only when 'sn' is NULL otherwise it will use same cached data.
So in above case RegionServer will never report active HMaster successfully until HMaster failover or RegionServer restart.