Spent a good bit of time trying to figure out why the master seemed to have shut down a tabletserver for no reason. The best explanation I could come up with is as follows.
- Client calls accumulo admin stop $host
- TabletServer on $host gets restarted
- Master seeds FATE op to stop $host using only the host:port
- FATE op will kill the fresh tserver on $host
The amount of time between steps 1 and 3 could be arbitrarily long, so this can be a little problematic.
One big thing we can do is to perform the sessionID calculation as early as possible instead of deferring it into the Master. Thankfully, we can also handle this gracefully and remain backwards compatible, so both of the following would work:
- accumulo admin stop host:port
- accumulo admin stop host:port[session]