> > I'm not deeply familiar with the AssignmentManager. I see when we process > split rollbacks in onRegionSplit() we only call regionOffline() on > daughters if they are known to exist. However when processing merge > rollbacks in the else case of onRegionMerge() we unconditionally call > regionOffline() on the parent-being-merged. Shouldn't that likewise be > conditional on regionStates holding a state for the parent-being-merged? > Pardon if I've missed something. > > > I'm really not familiar with the merge code, but this seems plausible to > me. I see that onRegionSplit() has an early out at the top of the method, > but that will fail to evaluate if rs_a and rs_b are open and rs_p is null. > So if it's called with a code of MERGE_REVERTED, I think we could wind up > creating an offline meta entry for rs_p with no regioninfo, similar to > HBASE-16093. And that entry could wind up hiding the (still online) > daughter regions. >
s/onRegionSplit()/onRegionMerge()/ in that comment.
