This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new f334356  Published site at 6cfff27465620112eb308cf881e6321d928743ed.
f334356 is described below

commit f334356f570000ecd6bb22be5d0c12ea54233881
Author: jenkins <[email protected]>
AuthorDate: Fri May 7 20:18:38 2021 +0000

    Published site at 6cfff27465620112eb308cf881e6321d928743ed.
---
 acid-semantics.html                                |   2 +-
 apache_hbase_reference_guide.pdf                   |   4 +-
 book.html                                          |   2 +-
 bulk-loads.html                                    |   2 +-
 checkstyle-aggregate.html                          |  10 +-
 coc.html                                           |   2 +-
 dependencies.html                                  |   2 +-
 dependency-convergence.html                        |   2 +-
 dependency-info.html                               |   2 +-
 dependency-management.html                         |   2 +-
 downloads.html                                     |   2 +-
 export_control.html                                |   2 +-
 index.html                                         |   2 +-
 issue-tracking.html                                |   2 +-
 mail-lists.html                                    |   2 +-
 metrics.html                                       |   2 +-
 old_news.html                                      |   2 +-
 plugin-management.html                             |   2 +-
 plugins.html                                       |   2 +-
 poweredbyhbase.html                                |   2 +-
 project-info.html                                  |   2 +-
 project-reports.html                               |   2 +-
 project-summary.html                               |   2 +-
 pseudo-distributed.html                            |   2 +-
 replication.html                                   |   2 +-
 resources.html                                     |   2 +-
 source-repository.html                             |   2 +-
 sponsors.html                                      |   2 +-
 supportingprojects.html                            |   2 +-
 team-list.html                                     |   2 +-
 testdevapidocs/index-all.html                      |   6 +
 .../apache/hadoop/hbase/backup/package-tree.html   |   2 +-
 .../hbase/class-use/HBaseTestingUtility.html       |  82 ++--
 .../hadoop/hbase/master/TestRollingRestart.html    |  68 ++-
 .../org/apache/hadoop/hbase/package-tree.html      |  16 +-
 .../hadoop/hbase/procedure2/package-tree.html      |   4 +-
 .../hadoop/hbase/regionserver/package-tree.html    |   6 +-
 .../org/apache/hadoop/hbase/test/package-tree.html |   4 +-
 .../hadoop/hbase/master/TestRollingRestart.html    | 525 +++++++++++----------
 39 files changed, 422 insertions(+), 361 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 13884c4..a61b631 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -467,7 +467,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index c52b73d..997ab25 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.3, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20210506200610+00'00')
-/CreationDate (D:20210506201650+00'00')
+/ModDate (D:20210507200617+00'00')
+/CreationDate (D:20210507201647+00'00')
 >>
 endobj
 2 0 obj
diff --git a/book.html b/book.html
index 03b8bdd..9c91d10 100644
--- a/book.html
+++ b/book.html
@@ -46194,7 +46194,7 @@ 
org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2021-05-06 20:06:10 UTC
+Last updated 2021-05-07 20:06:17 UTC
 </div>
 </div>
 <link rel="stylesheet" href="./coderay-asciidoctor.css">
diff --git a/bulk-loads.html b/bulk-loads.html
index cd79855..8cc9faf 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -172,7 +172,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 7ddeafc..d5e1095 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7319,7 +7319,7 @@
 <tr class="a">
 <td>annotation</td>
 <td><a class="externalLink" 
href="http://checkstyle.sourceforge.net/config_annotation.html#MissingDeprecated";>MissingDeprecated</a></td>
-<td>6</td>
+<td>5</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>blocks</td>
@@ -7423,7 +7423,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" 
href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription";>NonEmptyAtclauseDescription</a></td>
-<td>2232</td>
+<td>2233</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>misc</td>
@@ -34980,8 +34980,8 @@
 <th>Line</th></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>annotation</td>
-<td>MissingDeprecated</td>
+<td>javadoc</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 14 has parse error. Details: mismatched input 
':' expecting &lt;EOF&gt; while parsing JAVADOC</td>
 <td>46</td></tr></table></div>
 <div class="section">
@@ -73779,7 +73779,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/coc.html b/coc.html
index 9df7ee8..3c64755 100644
--- a/coc.html
+++ b/coc.html
@@ -241,7 +241,7 @@ email to <a class="externalLink" 
href="mailto:[email protected]";>the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependencies.html b/dependencies.html
index ec033a8..20b8c51 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -313,7 +313,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index b35717e..03bd1e0 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -824,7 +824,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependency-info.html b/dependency-info.html
index 3b3ff33..88ef227 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -194,7 +194,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependency-management.html b/dependency-management.html
index b80fe3a..acc624d 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1201,7 +1201,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/downloads.html b/downloads.html
index e10d808..1b5f5f0 100644
--- a/downloads.html
+++ b/downloads.html
@@ -466,7 +466,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/export_control.html b/export_control.html
index 62a0b66..ae26b5f 100644
--- a/export_control.html
+++ b/export_control.html
@@ -197,7 +197,7 @@ for more details.</p>
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/index.html b/index.html
index 14ce97d..10d2483 100644
--- a/index.html
+++ b/index.html
@@ -275,7 +275,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/issue-tracking.html b/issue-tracking.html
index 5525804..9ed6901 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -169,7 +169,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/mail-lists.html b/mail-lists.html
index ac00d71..272dc51 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -215,7 +215,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/metrics.html b/metrics.html
index 94ab4a9..4408ded 100644
--- a/metrics.html
+++ b/metrics.html
@@ -325,7 +325,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS 
-Dcom.sun.management.jmxrem
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/old_news.html b/old_news.html
index 9d22b67..77b9b00 100644
--- a/old_news.html
+++ b/old_news.html
@@ -316,7 +316,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/plugin-management.html b/plugin-management.html
index 29aee5c..9a6a425 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -321,7 +321,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/plugins.html b/plugins.html
index a9b9efd..8164c18 100644
--- a/plugins.html
+++ b/plugins.html
@@ -248,7 +248,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 3d37214..e0f1820 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -650,7 +650,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/project-info.html b/project-info.html
index d1b951f..6ba5531 100644
--- a/project-info.html
+++ b/project-info.html
@@ -210,7 +210,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/project-reports.html b/project-reports.html
index e6b7572..e3dbd61 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -186,7 +186,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/project-summary.html b/project-summary.html
index 18118ec..cc0cd0c 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -212,7 +212,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 3db0e18..69c04ac 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -174,7 +174,7 @@ Running Apache HBase (TM) in pseudo-distributed mode
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/replication.html b/replication.html
index 1331fc1..a98c906 100644
--- a/replication.html
+++ b/replication.html
@@ -169,7 +169,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/resources.html b/resources.html
index a8b28ba..14d1d10 100644
--- a/resources.html
+++ b/resources.html
@@ -197,7 +197,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/source-repository.html b/source-repository.html
index 80cad2f..a18f0dc 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -180,7 +180,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/sponsors.html b/sponsors.html
index a2b7aed..2419c0c 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -199,7 +199,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/supportingprojects.html b/supportingprojects.html
index ceff518..3d5cb59 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -390,7 +390,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/team-list.html b/team-list.html
index ff7bd39..769ed26 100644
--- a/team-list.html
+++ b/team-list.html
@@ -725,7 +725,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-06</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-05-07</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 178ca99..f966d71 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -26033,6 +26033,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/StartMiniClusterOption.html#isCreateWALDir--">isCreateWALDir()</a></span>
 - Method in class org.apache.hadoop.hbase.<a 
href="org/apache/hadoop/hbase/StartMiniClusterOption.html" title="class in 
org.apache.hadoop.hbase">StartMiniClusterOption</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/master/TestRollingRestart.html#isDeadServerSCPExecuted-org.apache.hadoop.hbase.ServerName-">isDeadServerSCPExecuted(ServerName)</a></span>
 - Method in class org.apache.hadoop.hbase.master.<a 
href="org/apache/hadoop/hbase/master/TestRollingRestart.html" title="class in 
org.apache.hadoop.hbase.master">TestRollingRestart</a></dt>
+<dd>
+<div class="block">Checks if the SCP of specific dead server has been 
executed.</div>
+</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/client/TestInterfaceAlign.html#isDeprecated-java.lang.reflect.Method-">isDeprecated(Method)</a></span>
 - Method in class org.apache.hadoop.hbase.client.<a 
href="org/apache/hadoop/hbase/client/TestInterfaceAlign.html" title="class in 
org.apache.hadoop.hbase.client">TestInterfaceAlign</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.html#isDestructive--">isDestructive()</a></span>
 - Method in class org.apache.hadoop.hbase.chaos.monkies.<a 
href="org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.html" title="class 
in org.apache.hadoop.hbase.chaos.monkies">CalmChaosMonkey</a></dt>
@@ -51929,6 +51933,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/master/TestRegionPlacement2.html#TEST_UTIL">TEST_UTIL</a></span>
 - Static variable in class org.apache.hadoop.hbase.master.<a 
href="org/apache/hadoop/hbase/master/TestRegionPlacement2.html" title="class in 
org.apache.hadoop.hbase.master">TestRegionPlacement2</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/master/TestRollingRestart.html#TEST_UTIL">TEST_UTIL</a></span>
 - Static variable in class org.apache.hadoop.hbase.master.<a 
href="org/apache/hadoop/hbase/master/TestRollingRestart.html" title="class in 
org.apache.hadoop.hbase.master">TestRollingRestart</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/master/TestSplitLogManager.html#TEST_UTIL">TEST_UTIL</a></span>
 - Static variable in class org.apache.hadoop.hbase.master.<a 
href="org/apache/hadoop/hbase/master/TestSplitLogManager.html" title="class in 
org.apache.hadoop.hbase.master">TestSplitLogManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/master/TestSplitWALManager.html#TEST_UTIL">TEST_UTIL</a></span>
 - Static variable in class org.apache.hadoop.hbase.master.<a 
href="org/apache/hadoop/hbase/master/TestSplitWALManager.html" title="class in 
org.apache.hadoop.hbase.master">TestSplitWALManager</a></dt>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index c2e2a8b..b53c29e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -150,8 +150,8 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a 
href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html"
 title="enum in org.apache.hadoop.hbase.backup"><span 
class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a 
href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html"
 title="enum in org.apache.hadoop.hbase.backup"><span 
class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a 
href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html"
 title="enum in org.apache.hadoop.hbase.backup"><span 
class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html 
b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
index 03399b8..3f28ee0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
@@ -2111,161 +2111,165 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
-<td class="colLast"><span 
class="typeNameLabel">AbstractTestDLS.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
+<td class="colLast"><span 
class="typeNameLabel">TestRollingRestart.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRollingRestart.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
+<td class="colLast"><span 
class="typeNameLabel">AbstractTestDLS.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestWarmupRegion.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestWarmupRegion.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestActiveMasterManager.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestActiveMasterManager.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterMetrics.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterMetrics.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestClientMetaServiceRPCs.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestClientMetaServiceRPCs.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestBalancer.</span><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestBalancer.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestSplitLogManager.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestSplitLogManager.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterTransitions.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterTransitions.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestRegionPlacement2.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRegionPlacement2.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestSplitWALManager.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestSplitWALManager.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestDeadServer.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestDeadServer.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestGetReplicationLoad.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestGetReplicationLoad.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterOperationsForRegionReplicas.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterMetricsWrapper.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestAssignmentManagerMetrics.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestAssignmentManagerMetrics.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestRegionPlacement.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRegionPlacement.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestHMasterCommandLine.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestHMasterCommandLine.html#TESTING_UTIL">TESTING_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestGetInfoPort.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestGetInfoPort.html#testUtil">testUtil</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestGetLastFlushedSequenceId.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestGetLastFlushedSequenceId.html#testUtil">testUtil</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestHMasterRPCException.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestHMasterRPCException.html#testUtil">testUtil</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterNoCluster.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterNoCluster.html#TESTUTIL">TESTUTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestLoadProcedureError.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestLoadProcedureError.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestShutdownBackupMaster.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestShutdownBackupMaster.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterChoreScheduled.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterChoreScheduled.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMergeTableRegionsWhileRSCrash.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMergeTableRegionsWhileRSCrash.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">AbstractTestRestartCluster.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/AbstractTestRestartCluster.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterAbortAndRSGotKilled.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterAbortAndRSGotKilled.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestServerCrashProcedureStuck.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestServerCrashProcedureStuck.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestNewStartedRegionServerVersion.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestNewStartedRegionServerVersion.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterHandlerFullWhenTransitRegion.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterHandlerFullWhenTransitRegion.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMetaAssignmentWithStopMaster.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMetaAssignmentWithStopMaster.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMigrateNamespaceTable.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMigrateNamespaceTable.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestRegionPlansWithThrottle.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRegionPlansWithThrottle.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterNotCarryTable.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterNotCarryTable.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestSplitRegionWhileRSCrash.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestSplitRegionWhileRSCrash.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestServerCrashProcedureCarryingMetaStuck.</span><code><span
 class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestServerCrashProcedureCarryingMetaStuck.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterFileSystem.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterFileSystem.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestCloseAnOpeningRegion.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestCloseAnOpeningRegion.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestShutdownWithNoRegionServer.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestShutdownWithNoRegionServer.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span 
class="typeNameLabel">TestMasterFileSystemWithWALDir.</span><code><span 
class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestMasterFileSystemWithWALDir.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/master/TestRollingRestart.html 
b/testdevapidocs/org/apache/hadoop/hbase/master/TestRollingRestart.html
index 0b0e199..ac78f6a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/TestRollingRestart.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/TestRollingRestart.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static 
Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.63">TestRollingRestart</a>
+<pre>public class <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.64">TestRollingRestart</a>
 extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></pre>
 <div class="block">Tests the restarting of everything as done during rolling 
restarts.</div>
 </li>
@@ -146,6 +146,10 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRollingRestart.html#splitWALCoordinatedByZK">splitWALCoordinatedByZK</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static <a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRollingRestart.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -196,14 +200,20 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRollingRestart.html#getNumberOfOnlineRegions-org.apache.hadoop.hbase.MiniHBaseCluster-">getNumberOfOnlineRegions</a></span>(<a
 href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" 
title="class in 
org.apache.hadoop.hbase">MiniHBaseCluster</a>&nbsp;cluster)</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRollingRestart.html#isDeadServerSCPExecuted-org.apache.hadoop.hbase.ServerName-">isDeadServerSCPExecuted</a></span>(org.apache.hadoop.hbase.ServerName&nbsp;serverName)</code>
+<div class="block">Checks if the SCP of specific dead server has been 
executed.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRollingRestart.html#log-java.lang.String-">log</a></span>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRollingRestart.html#testBasicRollingRestart--">testBasicRollingRestart</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/master/TestRollingRestart.html#waitForRSShutdownToStartAndFinish-org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread-org.apache.hadoop.hbase.ServerName-">waitForRSShutdownToStartAndFinish</a></span>(org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread&nbsp;activeMaster,
                                  
org.apache.hadoop.hbase.ServerName&nbsp;serverName)</code>&nbsp;</td>
@@ -236,7 +246,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" 
title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.66">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" 
title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.67">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -245,7 +255,16 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.69">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.70">LOG</a></pre>
+</li>
+</ul>
+<a name="TEST_UTIL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEST_UTIL</h4>
+<pre>private static&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.72">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="name">
@@ -254,7 +273,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>name</h4>
-<pre>public&nbsp;org.junit.rules.TestName <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.72">name</a></pre>
+<pre>public&nbsp;org.junit.rules.TestName <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.74">name</a></pre>
 </li>
 </ul>
 <a name="splitWALCoordinatedByZK">
@@ -263,7 +282,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>splitWALCoordinatedByZK</h4>
-<pre>public&nbsp;boolean <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.75">splitWALCoordinatedByZK</a></pre>
+<pre>public&nbsp;boolean <a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.77">splitWALCoordinatedByZK</a></pre>
 </li>
 </ul>
 </li>
@@ -280,7 +299,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestRollingRestart</h4>
-<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.63">TestRollingRestart</a>()</pre>
+<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.64">TestRollingRestart</a>()</pre>
 </li>
 </ul>
 </li>
@@ -297,7 +316,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testBasicRollingRestart</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.78">testBasicRollingRestart</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.80">testBasicRollingRestart</a>()
                              throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -305,13 +324,30 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="isDeadServerSCPExecuted-org.apache.hadoop.hbase.ServerName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDeadServerSCPExecuted</h4>
+<pre>private&nbsp;boolean&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.229">isDeadServerSCPExecuted</a>(org.apache.hadoop.hbase.ServerName&nbsp;serverName)
+                                 throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a></pre>
+<div class="block">Checks if the SCP of specific dead server has been 
executed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the SCP of specific serverName has been executed, false if not</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a 
name="waitForRSShutdownToStartAndFinish-org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread-org.apache.hadoop.hbase.ServerName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForRSShutdownToStartAndFinish</h4>
-<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.223">waitForRSShutdownToStartAndFinish</a>(org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread&nbsp;activeMaster,
+<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.235">waitForRSShutdownToStartAndFinish</a>(org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread&nbsp;activeMaster,
                                                
org.apache.hadoop.hbase.ServerName&nbsp;serverName)
                                         throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true";
 title="class or interface in java.lang">InterruptedException</a>,
                                                <a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a></pre>
@@ -328,7 +364,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>log</h4>
-<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.240">log</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.255">log</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
 </li>
 </ul>
 <a name="getNumberOfOnlineRegions-org.apache.hadoop.hbase.MiniHBaseCluster-">
@@ -337,7 +373,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumberOfOnlineRegions</h4>
-<pre>private&nbsp;int&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.244">getNumberOfOnlineRegions</a>(<a
 href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" 
title="class in 
org.apache.hadoop.hbase">MiniHBaseCluster</a>&nbsp;cluster)</pre>
+<pre>private&nbsp;int&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.259">getNumberOfOnlineRegions</a>(<a
 href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" 
title="class in 
org.apache.hadoop.hbase">MiniHBaseCluster</a>&nbsp;cluster)</pre>
 </li>
 </ul>
 <a 
name="assertRegionsAssigned-org.apache.hadoop.hbase.MiniHBaseCluster-java.util.Set-">
@@ -346,7 +382,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>assertRegionsAssigned</h4>
-<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.255">assertRegionsAssigned</a>(<a
 href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" 
title="class in org.apache.hadoop.hbase">MiniHBaseCluster</a>&nbsp;cluster,
+<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.270">assertRegionsAssigned</a>(<a
 href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" 
title="class in org.apache.hadoop.hbase">MiniHBaseCluster</a>&nbsp;cluster,
                                    <a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true";
 title="class or interface in java.util">Set</a>&lt;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&gt;&nbsp;expectedRegions)
                             throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -361,7 +397,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getDoubleAssignedRegions</h4>
-<pre>private&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true";
 title="class or interface in java.util">NavigableSet</a>&lt;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.283">getDoubleAssignedRegions</a>(<a
 href="../../../../../org/apache/hado [...]
+<pre>private&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true";
 title="class or interface in java.util">NavigableSet</a>&lt;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.298">getDoubleAssignedRegions</a>(<a
 href="../../../../../org/apache/hado [...]
                                                throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -375,7 +411,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>coordinatedByZK</h4>
-<pre>public static&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true";
 title="class or interface in java.util">Collection</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.300">coordinatedByZK</a>()</pre>
+<pre>public static&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true";
 title="class or interface in java.util">Collection</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html#line.315">coordinatedByZK</a>()</pre>
 </li>
 </ul>
 </li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index fdc2305..4da300b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -658,19 +658,19 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ClusterManager.ServiceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleState.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.RoleState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ZNodeClusterManager.CmdType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ZNodeClusterManager.CmdType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.HealthSummary.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.HealthSummary</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.Signal.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">HBaseClusterManager.Signal</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ResourceChecker.Phase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.HealthSummary.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.HealthSummary</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleState.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.RoleState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ZNodeClusterManager.CmdType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ZNodeClusterManager.CmdType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 0fa76ed..a196537 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -241,10 +241,10 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureBypass.StuckStateMachineState.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureBypass.StuckStateMachineState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureBypass.StuckStateMachineState.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureBypass.StuckStateMachineState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 617767c..29ff662 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -727,12 +727,12 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCompactionState.StateSource.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCompactionState.StateSource</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCompactionState.StateSource.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCompactionState.StateSource</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index 4994873..18b8b0a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -260,11 +260,11 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadCommonCrawl.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestLoadCommonCrawl.Counts</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html
 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html
index ffeb3ef..e36f7a0 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestRollingRestart.html
@@ -46,270 +46,285 @@
 <span class="sourceLineNo">038</span>import 
org.apache.hadoop.hbase.client.RegionInfo;<a name="line.38"></a>
 <span class="sourceLineNo">039</span>import 
org.apache.hadoop.hbase.client.RegionLocator;<a name="line.39"></a>
 <span class="sourceLineNo">040</span>import 
org.apache.hadoop.hbase.client.Table;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import 
org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import 
org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import 
org.apache.hadoop.hbase.util.Bytes;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import 
org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import 
org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;<a 
name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.ClassRule;<a 
name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.junit.Rule;<a 
name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.junit.Test;<a 
name="line.48"></a>
-<span class="sourceLineNo">049</span>import 
org.junit.experimental.categories.Category;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.junit.rules.TestName;<a 
name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.junit.runner.RunWith;<a 
name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.junit.runners.Parameterized;<a 
name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.slf4j.Logger;<a 
name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.slf4j.LoggerFactory;<a 
name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>import 
org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>/**<a name="line.58"></a>
-<span class="sourceLineNo">059</span> * Tests the restarting of everything as 
done during rolling restarts.<a name="line.59"></a>
-<span class="sourceLineNo">060</span> */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>@RunWith(Parameterized.class)<a 
name="line.61"></a>
-<span class="sourceLineNo">062</span>@Category({MasterTests.class, 
LargeTests.class})<a name="line.62"></a>
-<span class="sourceLineNo">063</span>public class TestRollingRestart {<a 
name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  @ClassRule<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  public static final HBaseClassTestRule 
CLASS_RULE =<a name="line.66"></a>
-<span class="sourceLineNo">067</span>      
HBaseClassTestRule.forClass(TestRollingRestart.class);<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private static final Logger LOG = 
LoggerFactory.getLogger(TestRollingRestart.class);<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  @Rule<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public TestName name = new 
TestName();<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Parameterized.Parameter<a 
name="line.74"></a>
-<span class="sourceLineNo">075</span>  public boolean 
splitWALCoordinatedByZK;<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  @Test<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public void testBasicRollingRestart() 
throws Exception {<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>    // Start a cluster with 2 masters and 
4 regionservers<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    final int NUM_MASTERS = 2;<a 
name="line.81"></a>
-<span class="sourceLineNo">082</span>    final int NUM_RS = 3;<a 
name="line.82"></a>
-<span class="sourceLineNo">083</span>    final int NUM_REGIONS_TO_CREATE = 
20;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>    int expectedNumRS = 3;<a 
name="line.85"></a>
+<span class="sourceLineNo">041</span>import 
org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a 
name="line.41"></a>
+<span class="sourceLineNo">042</span>import 
org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import 
org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import 
org.apache.hadoop.hbase.util.Bytes;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import 
org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import 
org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;<a 
name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.ClassRule;<a 
name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.junit.Rule;<a 
name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.junit.Test;<a 
name="line.49"></a>
+<span class="sourceLineNo">050</span>import 
org.junit.experimental.categories.Category;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.rules.TestName;<a 
name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.runner.RunWith;<a 
name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.junit.runners.Parameterized;<a 
name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.slf4j.Logger;<a 
name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.slf4j.LoggerFactory;<a 
name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>import 
org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>/**<a name="line.59"></a>
+<span class="sourceLineNo">060</span> * Tests the restarting of everything as 
done during rolling restarts.<a name="line.60"></a>
+<span class="sourceLineNo">061</span> */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>@RunWith(Parameterized.class)<a 
name="line.62"></a>
+<span class="sourceLineNo">063</span>@Category({MasterTests.class, 
LargeTests.class})<a name="line.63"></a>
+<span class="sourceLineNo">064</span>public class TestRollingRestart {<a 
name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>  @ClassRule<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public static final HBaseClassTestRule 
CLASS_RULE =<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      
HBaseClassTestRule.forClass(TestRollingRestart.class);<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private static final Logger LOG = 
LoggerFactory.getLogger(TestRollingRestart.class);<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private static HBaseTestingUtility 
TEST_UTIL;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  @Rule<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  public TestName name = new 
TestName();<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  @Parameterized.Parameter<a 
name="line.76"></a>
+<span class="sourceLineNo">077</span>  public boolean 
splitWALCoordinatedByZK;<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  @Test<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public void testBasicRollingRestart() 
throws Exception {<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>    // Start a cluster with 2 masters and 
4 regionservers<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    final int NUM_MASTERS = 2;<a 
name="line.83"></a>
+<span class="sourceLineNo">084</span>    final int NUM_RS = 3;<a 
name="line.84"></a>
+<span class="sourceLineNo">085</span>    final int NUM_REGIONS_TO_CREATE = 
20;<a name="line.85"></a>
 <span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>    // Start the cluster<a 
name="line.87"></a>
-<span class="sourceLineNo">088</span>    log("Starting cluster");<a 
name="line.88"></a>
-<span class="sourceLineNo">089</span>    Configuration conf = 
HBaseConfiguration.create();<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    
conf.setBoolean(HConstants.HBASE_SPLIT_WAL_COORDINATED_BY_ZK,<a 
name="line.90"></a>
-<span class="sourceLineNo">091</span>        splitWALCoordinatedByZK);<a 
name="line.91"></a>
-<span class="sourceLineNo">092</span>    HBaseTestingUtility TEST_UTIL = new 
HBaseTestingUtility(conf);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    StartMiniClusterOption option = 
StartMiniClusterOption.builder()<a name="line.93"></a>
-<span class="sourceLineNo">094</span>        
.numMasters(NUM_MASTERS).numRegionServers(NUM_RS).numDataNodes(NUM_RS).build();<a
 name="line.94"></a>
-<span class="sourceLineNo">095</span>    TEST_UTIL.startMiniCluster(option);<a 
name="line.95"></a>
-<span class="sourceLineNo">096</span>    MiniHBaseCluster cluster = 
TEST_UTIL.getHBaseCluster();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    log("Waiting for active/ready 
master");<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    
cluster.waitForActiveAndReadyMaster();<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    // Create a table with regions<a 
name="line.100"></a>
-<span class="sourceLineNo">101</span>    final TableName tableName =<a 
name="line.101"></a>
-<span class="sourceLineNo">102</span>        
TableName.valueOf(name.getMethodName().replaceAll("[\\[|\\]]", "-"));<a 
name="line.102"></a>
-<span class="sourceLineNo">103</span>    byte [] family = 
Bytes.toBytes("family");<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    log("Creating table with " + 
NUM_REGIONS_TO_CREATE + " regions");<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    Table ht = 
TEST_UTIL.createMultiRegionTable(tableName, family, NUM_REGIONS_TO_CREATE);<a 
name="line.105"></a>
-<span class="sourceLineNo">106</span>    int numRegions = -1;<a 
name="line.106"></a>
-<span class="sourceLineNo">107</span>    try (RegionLocator r = 
TEST_UTIL.getConnection().getRegionLocator(tableName)) {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      numRegions = 
r.getStartKeys().length;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    numRegions += 1; // catalogs<a 
name="line.110"></a>
-<span class="sourceLineNo">111</span>    log("Waiting for no more RIT\n");<a 
name="line.111"></a>
-<span class="sourceLineNo">112</span>    
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    log("Disabling table\n");<a 
name="line.113"></a>
-<span class="sourceLineNo">114</span>    
TEST_UTIL.getAdmin().disableTable(tableName);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    log("Waiting for no more RIT\n");<a 
name="line.115"></a>
-<span class="sourceLineNo">116</span>    
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    NavigableSet&lt;String&gt; regions = 
HBaseTestingUtility.getAllOnlineRegions(cluster);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    log("Verifying only catalog region is 
assigned\n");<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    if (regions.size() != 1) {<a 
name="line.119"></a>
-<span class="sourceLineNo">120</span>      for (String oregion : regions) {<a 
name="line.120"></a>
-<span class="sourceLineNo">121</span>        log("Region still online: " + 
oregion);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    assertEquals(1, regions.size());<a 
name="line.124"></a>
-<span class="sourceLineNo">125</span>    log("Enabling table\n");<a 
name="line.125"></a>
-<span class="sourceLineNo">126</span>    
TEST_UTIL.getAdmin().enableTable(tableName);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    log("Waiting for no more RIT\n");<a 
name="line.127"></a>
-<span class="sourceLineNo">128</span>    
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    log("Verifying there are " + 
numRegions + " assigned on cluster\n");<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    regions = 
HBaseTestingUtility.getAllOnlineRegions(cluster);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    assertRegionsAssigned(cluster, 
regions);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>    // Add a new regionserver<a 
name="line.134"></a>
-<span class="sourceLineNo">135</span>    log("Adding a fourth RS");<a 
name="line.135"></a>
-<span class="sourceLineNo">136</span>    RegionServerThread restarted = 
cluster.startRegionServer();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    expectedNumRS++;<a 
name="line.137"></a>
-<span class="sourceLineNo">138</span>    restarted.waitForServerOnline();<a 
name="line.138"></a>
-<span class="sourceLineNo">139</span>    log("Additional RS is online");<a 
name="line.139"></a>
-<span class="sourceLineNo">140</span>    log("Waiting for no more RIT");<a 
name="line.140"></a>
-<span class="sourceLineNo">141</span>    
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    log("Verifying there are " + 
numRegions + " assigned on cluster");<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    assertRegionsAssigned(cluster, 
regions);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    // Master Restarts<a 
name="line.146"></a>
-<span class="sourceLineNo">147</span>    List&lt;MasterThread&gt; 
masterThreads = cluster.getMasterThreads();<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    MasterThread activeMaster = null;<a 
name="line.148"></a>
-<span class="sourceLineNo">149</span>    MasterThread backupMaster = null;<a 
name="line.149"></a>
-<span class="sourceLineNo">150</span>    assertEquals(2, 
masterThreads.size());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    if 
(masterThreads.get(0).getMaster().isActiveMaster()) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      activeMaster = 
masterThreads.get(0);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      backupMaster = 
masterThreads.get(1);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    } else {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      activeMaster = 
masterThreads.get(1);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      backupMaster = 
masterThreads.get(0);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>    // Bring down the backup master<a 
name="line.159"></a>
-<span class="sourceLineNo">160</span>    log("Stopping backup master\n\n");<a 
name="line.160"></a>
-<span class="sourceLineNo">161</span>    backupMaster.getMaster().stop("Stop 
of backup during rolling restart");<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    
cluster.hbaseCluster.waitOnMaster(backupMaster);<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // Bring down the primary master<a 
name="line.164"></a>
-<span class="sourceLineNo">165</span>    log("Stopping primary master\n\n");<a 
name="line.165"></a>
-<span class="sourceLineNo">166</span>    activeMaster.getMaster().stop("Stop 
of active during rolling restart");<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    
cluster.hbaseCluster.waitOnMaster(activeMaster);<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span>    // Start primary master<a 
name="line.169"></a>
-<span class="sourceLineNo">170</span>    log("Restarting primary 
master\n\n");<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    activeMaster = 
cluster.startMaster();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    
cluster.waitForActiveAndReadyMaster();<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    // Start backup master<a 
name="line.174"></a>
-<span class="sourceLineNo">175</span>    log("Restarting backup 
master\n\n");<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    backupMaster = 
cluster.startMaster();<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.178"></a>
+<span class="sourceLineNo">087</span>    int expectedNumRS = 3;<a 
name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // Start the cluster<a 
name="line.89"></a>
+<span class="sourceLineNo">090</span>    log("Starting cluster");<a 
name="line.90"></a>
+<span class="sourceLineNo">091</span>    Configuration conf = 
HBaseConfiguration.create();<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    
conf.setBoolean(HConstants.HBASE_SPLIT_WAL_COORDINATED_BY_ZK,<a 
name="line.92"></a>
+<span class="sourceLineNo">093</span>        splitWALCoordinatedByZK);<a 
name="line.93"></a>
+<span class="sourceLineNo">094</span>    TEST_UTIL = new 
HBaseTestingUtility(conf);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    StartMiniClusterOption option = 
StartMiniClusterOption.builder()<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        
.numMasters(NUM_MASTERS).numRegionServers(NUM_RS).numDataNodes(NUM_RS).build();<a
 name="line.96"></a>
+<span class="sourceLineNo">097</span>    TEST_UTIL.startMiniCluster(option);<a 
name="line.97"></a>
+<span class="sourceLineNo">098</span>    MiniHBaseCluster cluster = 
TEST_UTIL.getHBaseCluster();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    log("Waiting for active/ready 
master");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    
cluster.waitForActiveAndReadyMaster();<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    // Create a table with regions<a 
name="line.102"></a>
+<span class="sourceLineNo">103</span>    final TableName tableName =<a 
name="line.103"></a>
+<span class="sourceLineNo">104</span>        
TableName.valueOf(name.getMethodName().replaceAll("[\\[|\\]]", "-"));<a 
name="line.104"></a>
+<span class="sourceLineNo">105</span>    byte [] family = 
Bytes.toBytes("family");<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    log("Creating table with " + 
NUM_REGIONS_TO_CREATE + " regions");<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    Table ht = 
TEST_UTIL.createMultiRegionTable(tableName, family, NUM_REGIONS_TO_CREATE);<a 
name="line.107"></a>
+<span class="sourceLineNo">108</span>    int numRegions = -1;<a 
name="line.108"></a>
+<span class="sourceLineNo">109</span>    try (RegionLocator r = 
TEST_UTIL.getConnection().getRegionLocator(tableName)) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      numRegions = 
r.getStartKeys().length;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    numRegions += 1; // catalogs<a 
name="line.112"></a>
+<span class="sourceLineNo">113</span>    log("Waiting for no more RIT\n");<a 
name="line.113"></a>
+<span class="sourceLineNo">114</span>    
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    log("Disabling table\n");<a 
name="line.115"></a>
+<span class="sourceLineNo">116</span>    
TEST_UTIL.getAdmin().disableTable(tableName);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    log("Waiting for no more RIT\n");<a 
name="line.117"></a>
+<span class="sourceLineNo">118</span>    
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    NavigableSet&lt;String&gt; regions = 
HBaseTestingUtility.getAllOnlineRegions(cluster);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    log("Verifying only catalog region is 
assigned\n");<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    if (regions.size() != 1) {<a 
name="line.121"></a>
+<span class="sourceLineNo">122</span>      for (String oregion : regions) {<a 
name="line.122"></a>
+<span class="sourceLineNo">123</span>        log("Region still online: " + 
oregion);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    assertEquals(1, regions.size());<a 
name="line.126"></a>
+<span class="sourceLineNo">127</span>    log("Enabling table\n");<a 
name="line.127"></a>
+<span class="sourceLineNo">128</span>    
TEST_UTIL.getAdmin().enableTable(tableName);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    log("Waiting for no more RIT\n");<a 
name="line.129"></a>
+<span class="sourceLineNo">130</span>    
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    log("Verifying there are " + 
numRegions + " assigned on cluster\n");<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    regions = 
HBaseTestingUtility.getAllOnlineRegions(cluster);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    assertRegionsAssigned(cluster, 
regions);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>    // Add a new regionserver<a 
name="line.136"></a>
+<span class="sourceLineNo">137</span>    log("Adding a fourth RS");<a 
name="line.137"></a>
+<span class="sourceLineNo">138</span>    RegionServerThread restarted = 
cluster.startRegionServer();<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    expectedNumRS++;<a 
name="line.139"></a>
+<span class="sourceLineNo">140</span>    restarted.waitForServerOnline();<a 
name="line.140"></a>
+<span class="sourceLineNo">141</span>    log("Additional RS is online");<a 
name="line.141"></a>
+<span class="sourceLineNo">142</span>    log("Waiting for no more RIT");<a 
name="line.142"></a>
+<span class="sourceLineNo">143</span>    
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    log("Verifying there are " + 
numRegions + " assigned on cluster");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    assertRegionsAssigned(cluster, 
regions);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    // Master Restarts<a 
name="line.148"></a>
+<span class="sourceLineNo">149</span>    List&lt;MasterThread&gt; 
masterThreads = cluster.getMasterThreads();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    MasterThread activeMaster = null;<a 
name="line.150"></a>
+<span class="sourceLineNo">151</span>    MasterThread backupMaster = null;<a 
name="line.151"></a>
+<span class="sourceLineNo">152</span>    assertEquals(2, 
masterThreads.size());<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    if 
(masterThreads.get(0).getMaster().isActiveMaster()) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      activeMaster = 
masterThreads.get(0);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      backupMaster = 
masterThreads.get(1);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    } else {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      activeMaster = 
masterThreads.get(1);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      backupMaster = 
masterThreads.get(0);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>    // Bring down the backup master<a 
name="line.161"></a>
+<span class="sourceLineNo">162</span>    log("Stopping backup master\n\n");<a 
name="line.162"></a>
+<span class="sourceLineNo">163</span>    backupMaster.getMaster().stop("Stop 
of backup during rolling restart");<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    
cluster.hbaseCluster.waitOnMaster(backupMaster);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>    // Bring down the primary master<a 
name="line.166"></a>
+<span class="sourceLineNo">167</span>    log("Stopping primary master\n\n");<a 
name="line.167"></a>
+<span class="sourceLineNo">168</span>    activeMaster.getMaster().stop("Stop 
of active during rolling restart");<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    
cluster.hbaseCluster.waitOnMaster(activeMaster);<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>    // Start primary master<a 
name="line.171"></a>
+<span class="sourceLineNo">172</span>    log("Restarting primary 
master\n\n");<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    activeMaster = 
cluster.startMaster();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    
cluster.waitForActiveAndReadyMaster();<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // Start backup master<a 
name="line.176"></a>
+<span class="sourceLineNo">177</span>    log("Restarting backup 
master\n\n");<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    backupMaster = 
cluster.startMaster();<a name="line.178"></a>
 <span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    // RegionServer Restarts<a 
name="line.180"></a>
+<span class="sourceLineNo">180</span>    assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.180"></a>
 <span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>    // Bring them down, one at a time, 
waiting between each to complete<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    List&lt;RegionServerThread&gt; 
regionServers =<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      
cluster.getLiveRegionServerThreads();<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    int num = 1;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    int total = regionServers.size();<a 
name="line.186"></a>
-<span class="sourceLineNo">187</span>    for (RegionServerThread rst : 
regionServers) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      ServerName serverName = 
rst.getRegionServer().getServerName();<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      log("Stopping region server " + num 
+ " of " + total + " [ " +<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          serverName + "]");<a 
name="line.190"></a>
-<span class="sourceLineNo">191</span>      
rst.getRegionServer().stop("Stopping RS during rolling restart");<a 
name="line.191"></a>
-<span class="sourceLineNo">192</span>      
cluster.hbaseCluster.waitOnRegionServer(rst);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      log("Waiting for RS shutdown to be 
handled by master");<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      
waitForRSShutdownToStartAndFinish(activeMaster, serverName);<a 
name="line.194"></a>
-<span class="sourceLineNo">195</span>      log("RS shutdown done, waiting for 
no more RIT");<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      log("Verifying there are " + 
numRegions + " assigned on cluster");<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      assertRegionsAssigned(cluster, 
regions);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      expectedNumRS--;<a 
name="line.199"></a>
-<span class="sourceLineNo">200</span>      assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      log("Restarting region server " + 
num + " of " + total);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      restarted = 
cluster.startRegionServer();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      restarted.waitForServerOnline();<a 
name="line.203"></a>
-<span class="sourceLineNo">204</span>      expectedNumRS++;<a 
name="line.204"></a>
-<span class="sourceLineNo">205</span>      log("Region server " + num + " is 
back online");<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      log("Waiting for no more RIT");<a 
name="line.206"></a>
-<span class="sourceLineNo">207</span>      
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      log("Verifying there are " + 
numRegions + " assigned on cluster");<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      assertRegionsAssigned(cluster, 
regions);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      num++;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    Thread.sleep(1000);<a 
name="line.213"></a>
-<span class="sourceLineNo">214</span>    assertRegionsAssigned(cluster, 
regions);<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>    // TODO: Bring random 3 of 4 RS down 
at the same time<a name="line.216"></a>
+<span class="sourceLineNo">182</span>    // RegionServer Restarts<a 
name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>    // Bring them down, one at a time, 
waiting between each to complete<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    List&lt;RegionServerThread&gt; 
regionServers =<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      
cluster.getLiveRegionServerThreads();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    int num = 1;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    int total = regionServers.size();<a 
name="line.188"></a>
+<span class="sourceLineNo">189</span>    for (RegionServerThread rst : 
regionServers) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      ServerName serverName = 
rst.getRegionServer().getServerName();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      log("Stopping region server " + num 
+ " of " + total + " [ " +<a name="line.191"></a>
+<span class="sourceLineNo">192</span>          serverName + "]");<a 
name="line.192"></a>
+<span class="sourceLineNo">193</span>      
rst.getRegionServer().stop("Stopping RS during rolling restart");<a 
name="line.193"></a>
+<span class="sourceLineNo">194</span>      
cluster.hbaseCluster.waitOnRegionServer(rst);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      log("Waiting for RS shutdown to be 
handled by master");<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      
waitForRSShutdownToStartAndFinish(activeMaster, serverName);<a 
name="line.196"></a>
+<span class="sourceLineNo">197</span>      log("RS shutdown done, waiting for 
no more RIT");<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      log("Verifying there are " + 
numRegions + " assigned on cluster");<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      assertRegionsAssigned(cluster, 
regions);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      expectedNumRS--;<a 
name="line.201"></a>
+<span class="sourceLineNo">202</span>      assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      log("Restarting region server " + 
num + " of " + total);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      restarted = 
cluster.startRegionServer();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      restarted.waitForServerOnline();<a 
name="line.205"></a>
+<span class="sourceLineNo">206</span>      expectedNumRS++;<a 
name="line.206"></a>
+<span class="sourceLineNo">207</span>      log("Region server " + num + " is 
back online");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      log("Waiting for no more RIT");<a 
name="line.208"></a>
+<span class="sourceLineNo">209</span>      
TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      log("Verifying there are " + 
numRegions + " assigned on cluster");<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      assertRegionsAssigned(cluster, 
regions);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      assertEquals(expectedNumRS, 
cluster.getRegionServerThreads().size());<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      num++;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Thread.sleep(1000);<a 
name="line.215"></a>
+<span class="sourceLineNo">216</span>    assertRegionsAssigned(cluster, 
regions);<a name="line.216"></a>
 <span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    ht.close();<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    // Stop the cluster<a 
name="line.219"></a>
-<span class="sourceLineNo">220</span>    TEST_UTIL.shutdownMiniCluster();<a 
name="line.220"></a>
-<span class="sourceLineNo">221</span>  }<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  private void 
waitForRSShutdownToStartAndFinish(MasterThread activeMaster,<a 
name="line.223"></a>
-<span class="sourceLineNo">224</span>      ServerName serverName) throws 
InterruptedException, IOException {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    ServerManager sm = 
activeMaster.getMaster().getServerManager();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    // First wait for it to be in dead 
list<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    while 
(!sm.getDeadServers().isDeadServer(serverName)) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      log("Waiting for [" + serverName + 
"] to be listed as dead in master");<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      Thread.sleep(1);<a 
name="line.229"></a>
-<span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    log("Server [" + serverName + "] 
marked as dead, waiting for it to " +<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        "finish dead processing");<a 
name="line.232"></a>
-<span class="sourceLineNo">233</span>    while (sm.areDeadServersInProgress()) 
{<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      log("Server [" + serverName + "] 
still being processed, waiting");<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      Thread.sleep(100);<a 
name="line.235"></a>
-<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    log("Server [" + serverName + "] done 
with server shutdown processing");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  private void log(String msg) {<a 
name="line.240"></a>
-<span class="sourceLineNo">241</span>    LOG.debug("\n\nTRR: " + msg + 
"\n");<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  private int 
getNumberOfOnlineRegions(MiniHBaseCluster cluster) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    int numFound = 0;<a 
name="line.245"></a>
-<span class="sourceLineNo">246</span>    for (RegionServerThread rst : 
cluster.getLiveRegionServerThreads()) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      numFound += 
rst.getRegionServer().getNumberOfOnlineRegions();<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    for (MasterThread mt : 
cluster.getMasterThreads()) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      numFound += 
mt.getMaster().getNumberOfOnlineRegions();<a name="line.250"></a>
+<span class="sourceLineNo">218</span>    // TODO: Bring random 3 of 4 RS down 
at the same time<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>    ht.close();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    // Stop the cluster<a 
name="line.221"></a>
+<span class="sourceLineNo">222</span>    TEST_UTIL.shutdownMiniCluster();<a 
name="line.222"></a>
+<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>  /**<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   * Checks if the SCP of specific dead 
server has been executed.<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   * @return true if the SCP of specific 
serverName has been executed, false if not<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  private boolean 
isDeadServerSCPExecuted(ServerName serverName) throws IOException {<a 
name="line.229"></a>
+<span class="sourceLineNo">230</span>    return 
TEST_UTIL.getMiniHBaseCluster().getMaster().getProcedures().stream()<a 
name="line.230"></a>
+<span class="sourceLineNo">231</span>        .anyMatch(p -&gt; p instanceof 
ServerCrashProcedure<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            &amp;&amp; 
((ServerCrashProcedure) p).getServerName().equals(serverName));<a 
name="line.232"></a>
+<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>  private void 
waitForRSShutdownToStartAndFinish(MasterThread activeMaster,<a 
name="line.235"></a>
+<span class="sourceLineNo">236</span>      ServerName serverName) throws 
InterruptedException, IOException {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    ServerManager sm = 
activeMaster.getMaster().getServerManager();<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    // First wait for it to be in dead 
list<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    while 
(!sm.getDeadServers().isDeadServer(serverName)) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      log("Waiting for [" + serverName + 
"] to be listed as dead in master");<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      Thread.sleep(1);<a 
name="line.241"></a>
+<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    log("Server [" + serverName + "] 
marked as dead, waiting for it to " +<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        "finish dead processing");<a 
name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>    TEST_UTIL.waitFor(60000, () -&gt; 
isDeadServerSCPExecuted(serverName));<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>    while (sm.areDeadServersInProgress()) 
{<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      log("Server [" + serverName + "] 
still being processed, waiting");<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      Thread.sleep(100);<a 
name="line.250"></a>
 <span class="sourceLineNo">251</span>    }<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    return numFound;<a 
name="line.252"></a>
+<span class="sourceLineNo">252</span>    log("Server [" + serverName + "] done 
with server shutdown processing");<a name="line.252"></a>
 <span class="sourceLineNo">253</span>  }<a name="line.253"></a>
 <span class="sourceLineNo">254</span><a name="line.254"></a>
-<span class="sourceLineNo">255</span>  private void 
assertRegionsAssigned(MiniHBaseCluster cluster,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      Set&lt;String&gt; expectedRegions) 
throws IOException {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    int numFound = 
getNumberOfOnlineRegions(cluster);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    if (expectedRegions.size() &gt; 
numFound) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      log("Expected to find " + 
expectedRegions.size() + " but only found"<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          + " " + numFound);<a 
name="line.260"></a>
-<span class="sourceLineNo">261</span>      NavigableSet&lt;String&gt; 
foundRegions =<a name="line.261"></a>
-<span class="sourceLineNo">262</span>        
HBaseTestingUtility.getAllOnlineRegions(cluster);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      for (String region : 
expectedRegions) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        if 
(!foundRegions.contains(region)) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>          log("Missing region: " + 
region);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      
assertEquals(expectedRegions.size(), numFound);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    } else if (expectedRegions.size() 
&lt; numFound) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      int doubled = numFound - 
expectedRegions.size();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      log("Expected to find " + 
expectedRegions.size() + " but found"<a name="line.271"></a>
-<span class="sourceLineNo">272</span>          + " " + numFound + " (" + 
doubled + " double assignments?)");<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      NavigableSet&lt;String&gt; 
doubleRegions = getDoubleAssignedRegions(cluster);<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      for (String region : doubleRegions) 
{<a name="line.274"></a>
-<span class="sourceLineNo">275</span>        log("Region is double assigned: " 
+ region);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      
assertEquals(expectedRegions.size(), numFound);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    } else {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      log("Success!  Found expected 
number of " + numFound + " regions");<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span>  private NavigableSet&lt;String&gt; 
getDoubleAssignedRegions(<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      MiniHBaseCluster cluster) throws 
IOException {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    NavigableSet&lt;String&gt; online = 
new TreeSet&lt;&gt;();<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    NavigableSet&lt;String&gt; doubled = 
new TreeSet&lt;&gt;();<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    for (RegionServerThread rst : 
cluster.getLiveRegionServerThreads()) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      for (RegionInfo region : 
ProtobufUtil.getOnlineRegions(<a name="line.288"></a>
-<span class="sourceLineNo">289</span>          
rst.getRegionServer().getRSRpcServices())) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        
if(!online.add(region.getRegionNameAsString())) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>          
doubled.add(region.getRegionNameAsString());<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      }<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    return doubled;<a name="line.295"></a>
+<span class="sourceLineNo">255</span>  private void log(String msg) {<a 
name="line.255"></a>
+<span class="sourceLineNo">256</span>    LOG.debug("\n\nTRR: " + msg + 
"\n");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>  private int 
getNumberOfOnlineRegions(MiniHBaseCluster cluster) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    int numFound = 0;<a 
name="line.260"></a>
+<span class="sourceLineNo">261</span>    for (RegionServerThread rst : 
cluster.getLiveRegionServerThreads()) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      numFound += 
rst.getRegionServer().getNumberOfOnlineRegions();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    for (MasterThread mt : 
cluster.getMasterThreads()) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      numFound += 
mt.getMaster().getNumberOfOnlineRegions();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    return numFound;<a 
name="line.267"></a>
+<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  private void 
assertRegionsAssigned(MiniHBaseCluster cluster,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      Set&lt;String&gt; expectedRegions) 
throws IOException {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    int numFound = 
getNumberOfOnlineRegions(cluster);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    if (expectedRegions.size() &gt; 
numFound) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      log("Expected to find " + 
expectedRegions.size() + " but only found"<a name="line.274"></a>
+<span class="sourceLineNo">275</span>          + " " + numFound);<a 
name="line.275"></a>
+<span class="sourceLineNo">276</span>      NavigableSet&lt;String&gt; 
foundRegions =<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        
HBaseTestingUtility.getAllOnlineRegions(cluster);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      for (String region : 
expectedRegions) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        if 
(!foundRegions.contains(region)) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>          log("Missing region: " + 
region);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      }<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      
assertEquals(expectedRegions.size(), numFound);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    } else if (expectedRegions.size() 
&lt; numFound) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      int doubled = numFound - 
expectedRegions.size();<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      log("Expected to find " + 
expectedRegions.size() + " but found"<a name="line.286"></a>
+<span class="sourceLineNo">287</span>          + " " + numFound + " (" + 
doubled + " double assignments?)");<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      NavigableSet&lt;String&gt; 
doubleRegions = getDoubleAssignedRegions(cluster);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      for (String region : doubleRegions) 
{<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        log("Region is double assigned: " 
+ region);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      
assertEquals(expectedRegions.size(), numFound);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      log("Success!  Found expected 
number of " + numFound + " regions");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span>  @Parameterized.Parameters<a 
name="line.299"></a>
-<span class="sourceLineNo">300</span>  public static Collection 
coordinatedByZK() {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    return Arrays.asList(false, true);<a 
name="line.301"></a>
-<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>}<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">298</span>  private NavigableSet&lt;String&gt; 
getDoubleAssignedRegions(<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      MiniHBaseCluster cluster) throws 
IOException {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    NavigableSet&lt;String&gt; online = 
new TreeSet&lt;&gt;();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    NavigableSet&lt;String&gt; doubled = 
new TreeSet&lt;&gt;();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    for (RegionServerThread rst : 
cluster.getLiveRegionServerThreads()) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      for (RegionInfo region : 
ProtobufUtil.getOnlineRegions(<a name="line.303"></a>
+<span class="sourceLineNo">304</span>          
rst.getRegionServer().getRSRpcServices())) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        
if(!online.add(region.getRegionNameAsString())) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>          
doubled.add(region.getRegionNameAsString());<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    return doubled;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>  @Parameterized.Parameters<a 
name="line.314"></a>
+<span class="sourceLineNo">315</span>  public static Collection 
coordinatedByZK() {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    return Arrays.asList(false, true);<a 
name="line.316"></a>
+<span class="sourceLineNo">317</span>  }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>}<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
 
 
 

Reply via email to