We found this problem when run ITBLL for our internal branch which based branch-2.2.
- Master A schedule a TRSP which will reopen region1. And this TRSP firstly schdule a sub remote procedure: CloseRegionProcedure and send the close region request to RS.
- Master A shutdown and Master B is the new active master. And restore this TRSP and the remote procedure CloseRegionProcedure.
- RS reported to the new Master B and the CloseRegionProcedure finished. Then the TRSP schdule a new OpenRegionProcedure and send open region request to RS.
- But meanwhile Master B send the close region request to RS again.
- The open region request finished firstly and report to master succeed. The master thought the region was opened on RS. But the RS excuted the close region request again and closed the region1.
- The Master thought the region opened but the RS closed the region. Then the new TRSP will stuck forever.