It is easy to reproduce by following step:
step1:start master process.(do not start regionserver process in the cluster).
the master will wait the regionserver to check in:
org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to checkin
step2:stop the master by sh command bin/hbase master stop
result:the master process will never die because catalogTracker.waitForRoot() method will block unitl the root region assigned.