Currently, if we don't have
HBASE-24885 on the cluster and we use HBCK2 assigns command to assign an already OPEN region (even without the --override flag), then it can cause a stuck Region-In-Transition and a wrong OPENING state in the meta (or even a double assignment of the same region on two RS).
This happens because the HBase master RPC endpoint doesn't check if the region is already opened or not. The issue was fixed in
HBASE-24885, but it still remain a problem in previous HBase versions (2.2 and also 2.3.0 and 2.3.1. )
We could add some mechanism into HBCK2 to do a check and don't execute the assign command if the region is OPEN in the meta. (we could also add a 'force' flag to bypass this check).
The new check should run only if
HBASE-24885 is not present yet on the cluster (we could validate the cluster version)