You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2025/11/17 14:52:58 UTC

(hbase-site) branch asf-site updated: Published site at b8d803c0f1156219cc965e4c749e7ab7c9a65f31.

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 be1a202d3ce Published site at b8d803c0f1156219cc965e4c749e7ab7c9a65f31.
be1a202d3ce is described below

commit be1a202d3ce77a48680376e83dc4ad6e62ca91ee
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Nov 17 14:52:49 2025 +0000

    Published site at b8d803c0f1156219cc965e4c749e7ab7c9a65f31.
---
 acid-semantics.html                                |   2 +-
 apache_hbase_reference_guide.pdf                   |   4 +-
 book.html                                          |   2 +-
 bulk-loads.html                                    |   2 +-
 checkstyle-aggregate.html                          |   2 +-
 coc.html                                           |   2 +-
 dependency-convergence.html                        |   2 +-
 dependency-info.html                               |   2 +-
 dependency-management.html                         |   2 +-
 devapidocs/constant-values.html                    |   2 +-
 ...dureDispatcher.ExecuteProceduresRemoteCall.html |   6 +-
 .../RSProcedureDispatcher.DeadRSRemoteCall.html    |   4 +-
 ...dureDispatcher.ExecuteProceduresRemoteCall.html |   4 +-
 ...RSProcedureDispatcher.RegionCloseOperation.html |   4 +-
 .../RSProcedureDispatcher.RegionOpenOperation.html |   4 +-
 .../RSProcedureDispatcher.RegionOperation.html     |   4 +-
 ...rocedureDispatcher.RemoteProcedureResolver.html |   4 +-
 .../RSProcedureDispatcher.ServerOperation.html     |   4 +-
 .../master/procedure/RSProcedureDispatcher.html    |   4 +-
 documentation-1.4.html                             |   2 +-
 documentation-2.3.html                             |   2 +-
 documentation-2.4.html                             |   2 +-
 documentation-2.5.html                             |   2 +-
 documentation-2.6.html                             |   2 +-
 downloads.html                                     |   2 +-
 export_control.html                                |   2 +-
 index.html                                         |   2 +-
 issue-management.html                              |   2 +-
 licenses.html                                      |   2 +-
 mailing-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 +-
 pseudo-distributed.html                            |   2 +-
 replication.html                                   |   2 +-
 resources.html                                     |   2 +-
 scm.html                                           |   2 +-
 sponsors.html                                      |   2 +-
 summary.html                                       |   2 +-
 supportingprojects.html                            |   2 +-
 team.html                                          |   2 +-
 .../hadoop/hbase/util/TestProcDispatcher.html      | 197 +++++++++++----------
 .../hadoop/hbase/util/TestProcDispatcher.html      |   6 +-
 .../hadoop/hbase/util/TestProcDispatcher.html      | 197 +++++++++++----------
 48 files changed, 257 insertions(+), 255 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 97e1a446a56..3064d8adf1a 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -709,7 +709,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 710322ecd42..6fc0a2684ad 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 2.0.6, based on Prawn 2.4.0)
 /Producer (Apache HBase Team)
-/ModDate (D:20251114185849+00'00')
-/CreationDate (D:20251114191637+00'00')
+/ModDate (D:20251117143135+00'00')
+/CreationDate (D:20251117144859+00'00')
 >>
 endobj
 2 0 obj
diff --git a/book.html b/book.html
index bce6d197847..3ed4c930bae 100644
--- a/book.html
+++ b/book.html
@@ -50145,7 +50145,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 4.0.0-alpha-1-SNAPSHOT<br>
-Last updated 2025-11-14 18:58:49 UTC
+Last updated 2025-11-17 14:31:35 UTC
 </div>
 </div>
 <script type="text/x-mathjax-config">
diff --git a/bulk-loads.html b/bulk-loads.html
index 78373fec993..9b49eb091a9 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -561,7 +561,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 70caa6a88e1..b6331c6ab95 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -29408,7 +29408,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/coc.html b/coc.html
index 1c95e751aa7..e9d3de1eb60 100644
--- a/coc.html
+++ b/coc.html
@@ -581,7 +581,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 01f018adb5b..b86879b8745 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -1828,7 +1828,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/dependency-info.html b/dependency-info.html
index f40774586d6..ce30cefbee6 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -614,7 +614,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/dependency-management.html b/dependency-management.html
index 754278dad59..b64b6292988 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -2387,7 +2387,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index f2909d17eed..b3560cea8e9 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -10232,7 +10232,7 @@ loadScripts(document, 'script');</script>
 <div class="table-header col-last">Value</div>
 <div class="col-first even-row-color"><code id="org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher.ExecuteProceduresRemoteCall.DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT">private&nbsp;static&nbsp;final&nbsp;int</code></div>
 <div class="col-second even-row-color"><code><a href="org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html#DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT">DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT</a></code></div>
-<div class="col-last even-row-color"><code>5</code></div>
+<div class="col-last even-row-color"><code>10</code></div>
 <div class="col-first odd-row-color"><code id="org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher.ExecuteProceduresRemoteCall.DEFAULT_RS_RPC_RETRY_INTERVAL">private&nbsp;static&nbsp;final&nbsp;int</code></div>
 <div class="col-second odd-row-color"><code><a href="org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html#DEFAULT_RS_RPC_RETRY_INTERVAL">DEFAULT_RS_RPC_RETRY_INTERVAL</a></code></div>
 <div class="col-last odd-row-color"><code>100</code></div>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
index 6fefa1a5242..f0d45c46442 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
@@ -323,9 +323,9 @@ implements <a href="RSProcedureDispatcher.RemoteProcedureResolver.html" title="i
 <section class="detail" id="DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT">
 <h3>DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT</h3>
 <div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html#line-266">DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT</a></span></div>
-<div class="block">The default retry limit. Waiting for more than 5 attempts is not going to help much
- for genuine connectivity errors. Therefore, consider fail-fast after 5 retries. Value
- = 5</div>
+<div class="block">The default retry limit. Waiting for more than 10 attempts is not going to help much
+ for genuine connectivity errors. Therefore, consider fail-fast after 10 retries. Value
+ = 10. 10 retries means we will wait for at least 28.5 seconds before killing RS.</div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.DeadRSRemoteCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.DeadRSRemoteCall.html
index 73c3288171d..b086a961848 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.DeadRSRemoteCall.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.DeadRSRemoteCall.html
@@ -274,9 +274,9 @@
 <span class="source-line-no">261</span><span id="line-261">    /**</span>
 <span class="source-line-no">262</span><span id="line-262">     * The default retry limit. Waiting for more than {@value} attempts is not going to help much</span>
 <span class="source-line-no">263</span><span id="line-263">     * for genuine connectivity errors. Therefore, consider fail-fast after {@value} retries. Value</span>
-<span class="source-line-no">264</span><span id="line-264">     * = {@value}</span>
+<span class="source-line-no">264</span><span id="line-264">     * = {@value}. 10 retries means we will wait for at least 28.5 seconds before killing RS.</span>
 <span class="source-line-no">265</span><span id="line-265">     */</span>
-<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 5;</span>
+<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 10;</span>
 <span class="source-line-no">267</span><span id="line-267"></span>
 <span class="source-line-no">268</span><span id="line-268">    private final int failFastRetryLimit;</span>
 <span class="source-line-no">269</span><span id="line-269"></span>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
index cb79b68adfc..f3a69d723d9 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
@@ -274,9 +274,9 @@
 <span class="source-line-no">261</span><span id="line-261">    /**</span>
 <span class="source-line-no">262</span><span id="line-262">     * The default retry limit. Waiting for more than {@value} attempts is not going to help much</span>
 <span class="source-line-no">263</span><span id="line-263">     * for genuine connectivity errors. Therefore, consider fail-fast after {@value} retries. Value</span>
-<span class="source-line-no">264</span><span id="line-264">     * = {@value}</span>
+<span class="source-line-no">264</span><span id="line-264">     * = {@value}. 10 retries means we will wait for at least 28.5 seconds before killing RS.</span>
 <span class="source-line-no">265</span><span id="line-265">     */</span>
-<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 5;</span>
+<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 10;</span>
 <span class="source-line-no">267</span><span id="line-267"></span>
 <span class="source-line-no">268</span><span id="line-268">    private final int failFastRetryLimit;</span>
 <span class="source-line-no">269</span><span id="line-269"></span>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html
index 7dfdd32dd60..ca6d01004dc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html
@@ -274,9 +274,9 @@
 <span class="source-line-no">261</span><span id="line-261">    /**</span>
 <span class="source-line-no">262</span><span id="line-262">     * The default retry limit. Waiting for more than {@value} attempts is not going to help much</span>
 <span class="source-line-no">263</span><span id="line-263">     * for genuine connectivity errors. Therefore, consider fail-fast after {@value} retries. Value</span>
-<span class="source-line-no">264</span><span id="line-264">     * = {@value}</span>
+<span class="source-line-no">264</span><span id="line-264">     * = {@value}. 10 retries means we will wait for at least 28.5 seconds before killing RS.</span>
 <span class="source-line-no">265</span><span id="line-265">     */</span>
-<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 5;</span>
+<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 10;</span>
 <span class="source-line-no">267</span><span id="line-267"></span>
 <span class="source-line-no">268</span><span id="line-268">    private final int failFastRetryLimit;</span>
 <span class="source-line-no">269</span><span id="line-269"></span>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html
index 0a2d6c68504..7f5df5af7f2 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html
@@ -274,9 +274,9 @@
 <span class="source-line-no">261</span><span id="line-261">    /**</span>
 <span class="source-line-no">262</span><span id="line-262">     * The default retry limit. Waiting for more than {@value} attempts is not going to help much</span>
 <span class="source-line-no">263</span><span id="line-263">     * for genuine connectivity errors. Therefore, consider fail-fast after {@value} retries. Value</span>
-<span class="source-line-no">264</span><span id="line-264">     * = {@value}</span>
+<span class="source-line-no">264</span><span id="line-264">     * = {@value}. 10 retries means we will wait for at least 28.5 seconds before killing RS.</span>
 <span class="source-line-no">265</span><span id="line-265">     */</span>
-<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 5;</span>
+<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 10;</span>
 <span class="source-line-no">267</span><span id="line-267"></span>
 <span class="source-line-no">268</span><span id="line-268">    private final int failFastRetryLimit;</span>
 <span class="source-line-no">269</span><span id="line-269"></span>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html
index 6e3539fcbd0..caf38271d15 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html
@@ -274,9 +274,9 @@
 <span class="source-line-no">261</span><span id="line-261">    /**</span>
 <span class="source-line-no">262</span><span id="line-262">     * The default retry limit. Waiting for more than {@value} attempts is not going to help much</span>
 <span class="source-line-no">263</span><span id="line-263">     * for genuine connectivity errors. Therefore, consider fail-fast after {@value} retries. Value</span>
-<span class="source-line-no">264</span><span id="line-264">     * = {@value}</span>
+<span class="source-line-no">264</span><span id="line-264">     * = {@value}. 10 retries means we will wait for at least 28.5 seconds before killing RS.</span>
 <span class="source-line-no">265</span><span id="line-265">     */</span>
-<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 5;</span>
+<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 10;</span>
 <span class="source-line-no">267</span><span id="line-267"></span>
 <span class="source-line-no">268</span><span id="line-268">    private final int failFastRetryLimit;</span>
 <span class="source-line-no">269</span><span id="line-269"></span>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RemoteProcedureResolver.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RemoteProcedureResolver.html
index b0abce550d2..03adf51a7d6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RemoteProcedureResolver.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RemoteProcedureResolver.html
@@ -274,9 +274,9 @@
 <span class="source-line-no">261</span><span id="line-261">    /**</span>
 <span class="source-line-no">262</span><span id="line-262">     * The default retry limit. Waiting for more than {@value} attempts is not going to help much</span>
 <span class="source-line-no">263</span><span id="line-263">     * for genuine connectivity errors. Therefore, consider fail-fast after {@value} retries. Value</span>
-<span class="source-line-no">264</span><span id="line-264">     * = {@value}</span>
+<span class="source-line-no">264</span><span id="line-264">     * = {@value}. 10 retries means we will wait for at least 28.5 seconds before killing RS.</span>
 <span class="source-line-no">265</span><span id="line-265">     */</span>
-<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 5;</span>
+<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 10;</span>
 <span class="source-line-no">267</span><span id="line-267"></span>
 <span class="source-line-no">268</span><span id="line-268">    private final int failFastRetryLimit;</span>
 <span class="source-line-no">269</span><span id="line-269"></span>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html
index 7da2ccc0585..782b70cbf91 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html
@@ -274,9 +274,9 @@
 <span class="source-line-no">261</span><span id="line-261">    /**</span>
 <span class="source-line-no">262</span><span id="line-262">     * The default retry limit. Waiting for more than {@value} attempts is not going to help much</span>
 <span class="source-line-no">263</span><span id="line-263">     * for genuine connectivity errors. Therefore, consider fail-fast after {@value} retries. Value</span>
-<span class="source-line-no">264</span><span id="line-264">     * = {@value}</span>
+<span class="source-line-no">264</span><span id="line-264">     * = {@value}. 10 retries means we will wait for at least 28.5 seconds before killing RS.</span>
 <span class="source-line-no">265</span><span id="line-265">     */</span>
-<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 5;</span>
+<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 10;</span>
 <span class="source-line-no">267</span><span id="line-267"></span>
 <span class="source-line-no">268</span><span id="line-268">    private final int failFastRetryLimit;</span>
 <span class="source-line-no">269</span><span id="line-269"></span>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html
index 3e66974413c..2fc15da8d73 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html
@@ -274,9 +274,9 @@
 <span class="source-line-no">261</span><span id="line-261">    /**</span>
 <span class="source-line-no">262</span><span id="line-262">     * The default retry limit. Waiting for more than {@value} attempts is not going to help much</span>
 <span class="source-line-no">263</span><span id="line-263">     * for genuine connectivity errors. Therefore, consider fail-fast after {@value} retries. Value</span>
-<span class="source-line-no">264</span><span id="line-264">     * = {@value}</span>
+<span class="source-line-no">264</span><span id="line-264">     * = {@value}. 10 retries means we will wait for at least 28.5 seconds before killing RS.</span>
 <span class="source-line-no">265</span><span id="line-265">     */</span>
-<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 5;</span>
+<span class="source-line-no">266</span><span id="line-266">    private static final int DEFAULT_RS_REMOTE_PROC_RETRY_LIMIT = 10;</span>
 <span class="source-line-no">267</span><span id="line-267"></span>
 <span class="source-line-no">268</span><span id="line-268">    private final int failFastRetryLimit;</span>
 <span class="source-line-no">269</span><span id="line-269"></span>
diff --git a/documentation-1.4.html b/documentation-1.4.html
index 6142fc85952..5c983ae9831 100644
--- a/documentation-1.4.html
+++ b/documentation-1.4.html
@@ -601,7 +601,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/documentation-2.3.html b/documentation-2.3.html
index 73b2b950b29..69632b6d9d3 100644
--- a/documentation-2.3.html
+++ b/documentation-2.3.html
@@ -617,7 +617,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/documentation-2.4.html b/documentation-2.4.html
index 02b4a353b30..29ca322a724 100644
--- a/documentation-2.4.html
+++ b/documentation-2.4.html
@@ -617,7 +617,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/documentation-2.5.html b/documentation-2.5.html
index fa798bbb623..212f984da73 100644
--- a/documentation-2.5.html
+++ b/documentation-2.5.html
@@ -601,7 +601,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/documentation-2.6.html b/documentation-2.6.html
index 57db7ed741f..7140a5368ea 100644
--- a/documentation-2.6.html
+++ b/documentation-2.6.html
@@ -601,7 +601,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/downloads.html b/downloads.html
index e30354d447e..60d612eeb3c 100644
--- a/downloads.html
+++ b/downloads.html
@@ -664,7 +664,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/export_control.html b/export_control.html
index 27f3a24ec0f..b03a94bbd09 100644
--- a/export_control.html
+++ b/export_control.html
@@ -568,7 +568,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/index.html b/index.html
index c2d14c5aad3..baac9bf0143 100644
--- a/index.html
+++ b/index.html
@@ -639,7 +639,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/issue-management.html b/issue-management.html
index 707faa5d004..4bd496db53d 100644
--- a/issue-management.html
+++ b/issue-management.html
@@ -571,7 +571,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/licenses.html b/licenses.html
index 071d3071d6d..5bf5b95e0c5 100644
--- a/licenses.html
+++ b/licenses.html
@@ -774,7 +774,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/mailing-lists.html b/mailing-lists.html
index 633d53afeb6..2a71ee60b5b 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -626,7 +626,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/metrics.html b/metrics.html
index b2bb48dab21..7f0595fa70a 100644
--- a/metrics.html
+++ b/metrics.html
@@ -648,7 +648,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/old_news.html b/old_news.html
index 8b2113618e5..9c432e814eb 100644
--- a/old_news.html
+++ b/old_news.html
@@ -636,7 +636,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/plugin-management.html b/plugin-management.html
index bcf33f652aa..527a7563ea6 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -769,7 +769,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/plugins.html b/plugins.html
index 125107ae987..4501c9d630f 100644
--- a/plugins.html
+++ b/plugins.html
@@ -698,7 +698,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 38312504696..936c64e2ed0 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -865,7 +865,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/project-info.html b/project-info.html
index 6a90d788e2e..4ca809931e4 100644
--- a/project-info.html
+++ b/project-info.html
@@ -625,7 +625,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/project-reports.html b/project-reports.html
index 488f856ecb6..5206bb62205 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -597,7 +597,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 4b920433b38..a70a6382dbd 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -561,7 +561,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/replication.html b/replication.html
index 35b6ae66f87..dce4c354af0 100644
--- a/replication.html
+++ b/replication.html
@@ -561,7 +561,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/resources.html b/resources.html
index fe6e0db0215..2092c92f0fb 100644
--- a/resources.html
+++ b/resources.html
@@ -582,7 +582,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/scm.html b/scm.html
index d1ba729d8c9..303d11b1237 100644
--- a/scm.html
+++ b/scm.html
@@ -589,7 +589,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/sponsors.html b/sponsors.html
index d962f044d1a..8fa45529aa5 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -576,7 +576,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/summary.html b/summary.html
index 1a4b46d9e80..7265545eeab 100644
--- a/summary.html
+++ b/summary.html
@@ -638,7 +638,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/supportingprojects.html b/supportingprojects.html
index b8ecb131e52..885a6a21fb3 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -816,7 +816,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/team.html b/team.html
index 3f1f9dd264c..8f8e7f5fb69 100644
--- a/team.html
+++ b/team.html
@@ -1696,7 +1696,7 @@ ASF
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
       </div>
       <div class="mt-3" style="float: right">
-        Last Published: 2025-11-14
+        Last Published: 2025-11-17
       </div>
 
       </div>
diff --git a/testapidocs/src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html b/testapidocs/src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html
index 17b77035e8e..784c195ea96 100644
--- a/testapidocs/src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html
+++ b/testapidocs/src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html
@@ -90,104 +90,105 @@
 <span class="source-line-no">077</span><span id="line-77">  public static void setUpBeforeClass() throws Exception {</span>
 <span class="source-line-no">078</span><span id="line-78">    TEST_UTIL.getConfiguration().set(HBASE_MASTER_RSPROC_DISPATCHER_CLASS,</span>
 <span class="source-line-no">079</span><span id="line-79">      RSProcDispatcher.class.getName());</span>
-<span class="source-line-no">080</span><span id="line-80">    TEST_UTIL.startMiniCluster(3);</span>
-<span class="source-line-no">081</span><span id="line-81">    SingleProcessHBaseCluster cluster = TEST_UTIL.getHBaseCluster();</span>
-<span class="source-line-no">082</span><span id="line-82">    rs0 = cluster.getRegionServer(0).getServerName();</span>
-<span class="source-line-no">083</span><span id="line-83">    TEST_UTIL.getAdmin().balancerSwitch(false, true);</span>
-<span class="source-line-no">084</span><span id="line-84">  }</span>
-<span class="source-line-no">085</span><span id="line-85"></span>
-<span class="source-line-no">086</span><span id="line-86">  @AfterClass</span>
-<span class="source-line-no">087</span><span id="line-87">  public static void tearDownAfterClass() throws Exception {</span>
-<span class="source-line-no">088</span><span id="line-88">    TEST_UTIL.shutdownMiniCluster();</span>
-<span class="source-line-no">089</span><span id="line-89">  }</span>
-<span class="source-line-no">090</span><span id="line-90"></span>
-<span class="source-line-no">091</span><span id="line-91">  @Before</span>
-<span class="source-line-no">092</span><span id="line-92">  public void setUp() throws Exception {</span>
-<span class="source-line-no">093</span><span id="line-93">    final TableName tableName = TableName.valueOf(name.getMethodName());</span>
-<span class="source-line-no">094</span><span id="line-94">    TableDescriptor tableDesc = TableDescriptorBuilder.newBuilder(tableName)</span>
-<span class="source-line-no">095</span><span id="line-95">      .setColumnFamily(ColumnFamilyDescriptorBuilder.of("fam1")).build();</span>
-<span class="source-line-no">096</span><span id="line-96">    int startKey = 0;</span>
-<span class="source-line-no">097</span><span id="line-97">    int endKey = 80000;</span>
-<span class="source-line-no">098</span><span id="line-98">    TEST_UTIL.getAdmin().createTable(tableDesc, Bytes.toBytes(startKey), Bytes.toBytes(endKey), 9);</span>
-<span class="source-line-no">099</span><span id="line-99">  }</span>
-<span class="source-line-no">100</span><span id="line-100"></span>
-<span class="source-line-no">101</span><span id="line-101">  @Test</span>
-<span class="source-line-no">102</span><span id="line-102">  public void testRetryLimitOnConnClosedErrors() throws Exception {</span>
-<span class="source-line-no">103</span><span id="line-103">    HbckChore hbckChore = new HbckChore(TEST_UTIL.getHBaseCluster().getMaster());</span>
-<span class="source-line-no">104</span><span id="line-104">    final TableName tableName = TableName.valueOf(name.getMethodName());</span>
-<span class="source-line-no">105</span><span id="line-105">    SingleProcessHBaseCluster cluster = TEST_UTIL.getHBaseCluster();</span>
-<span class="source-line-no">106</span><span id="line-106">    Admin admin = TEST_UTIL.getAdmin();</span>
-<span class="source-line-no">107</span><span id="line-107">    Table table = TEST_UTIL.getConnection().getTable(tableName);</span>
-<span class="source-line-no">108</span><span id="line-108">    List&lt;Put&gt; puts = IntStream.range(10, 50000).mapToObj(i -&gt; new Put(Bytes.toBytes(i))</span>
-<span class="source-line-no">109</span><span id="line-109">      .addColumn(Bytes.toBytes("fam1"), Bytes.toBytes("q1"), Bytes.toBytes("val_" + i)))</span>
-<span class="source-line-no">110</span><span id="line-110">      .collect(Collectors.toList());</span>
-<span class="source-line-no">111</span><span id="line-111">    table.put(puts);</span>
-<span class="source-line-no">112</span><span id="line-112">    admin.flush(tableName);</span>
-<span class="source-line-no">113</span><span id="line-113">    admin.compact(tableName);</span>
-<span class="source-line-no">114</span><span id="line-114">    Thread.sleep(3000);</span>
-<span class="source-line-no">115</span><span id="line-115">    HRegionServer hRegionServer0 = cluster.getRegionServer(0);</span>
-<span class="source-line-no">116</span><span id="line-116">    HRegionServer hRegionServer1 = cluster.getRegionServer(1);</span>
-<span class="source-line-no">117</span><span id="line-117">    HRegionServer hRegionServer2 = cluster.getRegionServer(2);</span>
-<span class="source-line-no">118</span><span id="line-118">    int numRegions0 = hRegionServer0.getNumberOfOnlineRegions();</span>
-<span class="source-line-no">119</span><span id="line-119">    int numRegions1 = hRegionServer1.getNumberOfOnlineRegions();</span>
-<span class="source-line-no">120</span><span id="line-120">    int numRegions2 = hRegionServer2.getNumberOfOnlineRegions();</span>
-<span class="source-line-no">121</span><span id="line-121"></span>
-<span class="source-line-no">122</span><span id="line-122">    hbckChore.choreForTesting();</span>
-<span class="source-line-no">123</span><span id="line-123">    HbckReport hbckReport = hbckChore.getLastReport();</span>
-<span class="source-line-no">124</span><span id="line-124">    Assert.assertEquals(0, hbckReport.getInconsistentRegions().size());</span>
-<span class="source-line-no">125</span><span id="line-125">    Assert.assertEquals(0, hbckReport.getOrphanRegionsOnFS().size());</span>
-<span class="source-line-no">126</span><span id="line-126">    Assert.assertEquals(0, hbckReport.getOrphanRegionsOnRS().size());</span>
-<span class="source-line-no">127</span><span id="line-127"></span>
-<span class="source-line-no">128</span><span id="line-128">    HRegion region0 = hRegionServer0.getRegions().get(0);</span>
-<span class="source-line-no">129</span><span id="line-129">    // move all regions from server1 to server0</span>
-<span class="source-line-no">130</span><span id="line-130">    for (HRegion region : hRegionServer1.getRegions()) {</span>
-<span class="source-line-no">131</span><span id="line-131">      TEST_UTIL.getAdmin().move(region.getRegionInfo().getEncodedNameAsBytes(), rs0);</span>
-<span class="source-line-no">132</span><span id="line-132">    }</span>
-<span class="source-line-no">133</span><span id="line-133">    TEST_UTIL.getAdmin().move(region0.getRegionInfo().getEncodedNameAsBytes());</span>
-<span class="source-line-no">134</span><span id="line-134">    HMaster master = TEST_UTIL.getHBaseCluster().getMaster();</span>
-<span class="source-line-no">135</span><span id="line-135"></span>
-<span class="source-line-no">136</span><span id="line-136">    // Ensure:</span>
-<span class="source-line-no">137</span><span id="line-137">    // 1. num of regions before and after scheduling SCP remain same</span>
-<span class="source-line-no">138</span><span id="line-138">    // 2. all procedures including SCPs are successfully completed</span>
-<span class="source-line-no">139</span><span id="line-139">    // 3. two servers have SCPs scheduled</span>
-<span class="source-line-no">140</span><span id="line-140">    TEST_UTIL.waitFor(5000, 1000, () -&gt; {</span>
-<span class="source-line-no">141</span><span id="line-141">      LOG.info("numRegions0: {} , numRegions1: {} , numRegions2: {}", numRegions0, numRegions1,</span>
-<span class="source-line-no">142</span><span id="line-142">        numRegions2);</span>
-<span class="source-line-no">143</span><span id="line-143">      LOG.info("Online regions - server0 : {} , server1: {} , server2: {}",</span>
-<span class="source-line-no">144</span><span id="line-144">        cluster.getRegionServer(0).getNumberOfOnlineRegions(),</span>
-<span class="source-line-no">145</span><span id="line-145">        cluster.getRegionServer(1).getNumberOfOnlineRegions(),</span>
-<span class="source-line-no">146</span><span id="line-146">        cluster.getRegionServer(2).getNumberOfOnlineRegions());</span>
-<span class="source-line-no">147</span><span id="line-147">      LOG.info("Num of successfully completed procedures: {} , num of all procedures: {}",</span>
-<span class="source-line-no">148</span><span id="line-148">        master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">149</span><span id="line-149">          .filter(masterProcedureEnvProcedure -&gt; masterProcedureEnvProcedure.getState()</span>
-<span class="source-line-no">150</span><span id="line-150">              == ProcedureProtos.ProcedureState.SUCCESS)</span>
-<span class="source-line-no">151</span><span id="line-151">          .count(),</span>
-<span class="source-line-no">152</span><span id="line-152">        master.getMasterProcedureExecutor().getProcedures().size());</span>
-<span class="source-line-no">153</span><span id="line-153">      LOG.info("Num of SCPs: " + master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">154</span><span id="line-154">        .filter(proc -&gt; proc instanceof ServerCrashProcedure).count());</span>
-<span class="source-line-no">155</span><span id="line-155">      return (numRegions0 + numRegions1 + numRegions2)</span>
-<span class="source-line-no">156</span><span id="line-156">          == (cluster.getRegionServer(0).getNumberOfOnlineRegions()</span>
-<span class="source-line-no">157</span><span id="line-157">            + cluster.getRegionServer(1).getNumberOfOnlineRegions()</span>
-<span class="source-line-no">158</span><span id="line-158">            + cluster.getRegionServer(2).getNumberOfOnlineRegions())</span>
-<span class="source-line-no">159</span><span id="line-159">        &amp;&amp; master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">160</span><span id="line-160">          .filter(masterProcedureEnvProcedure -&gt; masterProcedureEnvProcedure.getState()</span>
-<span class="source-line-no">161</span><span id="line-161">              == ProcedureProtos.ProcedureState.SUCCESS)</span>
-<span class="source-line-no">162</span><span id="line-162">          .count() == master.getMasterProcedureExecutor().getProcedures().size()</span>
-<span class="source-line-no">163</span><span id="line-163">        &amp;&amp; master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">164</span><span id="line-164">          .anyMatch(proc -&gt; proc instanceof ServerCrashProcedure);</span>
-<span class="source-line-no">165</span><span id="line-165">    });</span>
-<span class="source-line-no">166</span><span id="line-166"></span>
-<span class="source-line-no">167</span><span id="line-167">    // Ensure we have no inconsistent regions</span>
-<span class="source-line-no">168</span><span id="line-168">    TEST_UTIL.waitFor(5000, 1000, () -&gt; {</span>
-<span class="source-line-no">169</span><span id="line-169">      hbckChore.choreForTesting();</span>
-<span class="source-line-no">170</span><span id="line-170">      HbckReport report = hbckChore.getLastReport();</span>
-<span class="source-line-no">171</span><span id="line-171">      return report.getInconsistentRegions().isEmpty() &amp;&amp; report.getOrphanRegionsOnFS().isEmpty()</span>
-<span class="source-line-no">172</span><span id="line-172">        &amp;&amp; report.getOrphanRegionsOnRS().isEmpty();</span>
-<span class="source-line-no">173</span><span id="line-173">    });</span>
-<span class="source-line-no">174</span><span id="line-174"></span>
-<span class="source-line-no">175</span><span id="line-175">  }</span>
-<span class="source-line-no">176</span><span id="line-176"></span>
-<span class="source-line-no">177</span><span id="line-177">}</span>
+<span class="source-line-no">080</span><span id="line-80">    TEST_UTIL.getConfiguration().setInt("hbase.master.rs.remote.proc.fail.fast.limit", 5);</span>
+<span class="source-line-no">081</span><span id="line-81">    TEST_UTIL.startMiniCluster(3);</span>
+<span class="source-line-no">082</span><span id="line-82">    SingleProcessHBaseCluster cluster = TEST_UTIL.getHBaseCluster();</span>
+<span class="source-line-no">083</span><span id="line-83">    rs0 = cluster.getRegionServer(0).getServerName();</span>
+<span class="source-line-no">084</span><span id="line-84">    TEST_UTIL.getAdmin().balancerSwitch(false, true);</span>
+<span class="source-line-no">085</span><span id="line-85">  }</span>
+<span class="source-line-no">086</span><span id="line-86"></span>
+<span class="source-line-no">087</span><span id="line-87">  @AfterClass</span>
+<span class="source-line-no">088</span><span id="line-88">  public static void tearDownAfterClass() throws Exception {</span>
+<span class="source-line-no">089</span><span id="line-89">    TEST_UTIL.shutdownMiniCluster();</span>
+<span class="source-line-no">090</span><span id="line-90">  }</span>
+<span class="source-line-no">091</span><span id="line-91"></span>
+<span class="source-line-no">092</span><span id="line-92">  @Before</span>
+<span class="source-line-no">093</span><span id="line-93">  public void setUp() throws Exception {</span>
+<span class="source-line-no">094</span><span id="line-94">    final TableName tableName = TableName.valueOf(name.getMethodName());</span>
+<span class="source-line-no">095</span><span id="line-95">    TableDescriptor tableDesc = TableDescriptorBuilder.newBuilder(tableName)</span>
+<span class="source-line-no">096</span><span id="line-96">      .setColumnFamily(ColumnFamilyDescriptorBuilder.of("fam1")).build();</span>
+<span class="source-line-no">097</span><span id="line-97">    int startKey = 0;</span>
+<span class="source-line-no">098</span><span id="line-98">    int endKey = 80000;</span>
+<span class="source-line-no">099</span><span id="line-99">    TEST_UTIL.getAdmin().createTable(tableDesc, Bytes.toBytes(startKey), Bytes.toBytes(endKey), 9);</span>
+<span class="source-line-no">100</span><span id="line-100">  }</span>
+<span class="source-line-no">101</span><span id="line-101"></span>
+<span class="source-line-no">102</span><span id="line-102">  @Test</span>
+<span class="source-line-no">103</span><span id="line-103">  public void testRetryLimitOnConnClosedErrors() throws Exception {</span>
+<span class="source-line-no">104</span><span id="line-104">    HbckChore hbckChore = new HbckChore(TEST_UTIL.getHBaseCluster().getMaster());</span>
+<span class="source-line-no">105</span><span id="line-105">    final TableName tableName = TableName.valueOf(name.getMethodName());</span>
+<span class="source-line-no">106</span><span id="line-106">    SingleProcessHBaseCluster cluster = TEST_UTIL.getHBaseCluster();</span>
+<span class="source-line-no">107</span><span id="line-107">    Admin admin = TEST_UTIL.getAdmin();</span>
+<span class="source-line-no">108</span><span id="line-108">    Table table = TEST_UTIL.getConnection().getTable(tableName);</span>
+<span class="source-line-no">109</span><span id="line-109">    List&lt;Put&gt; puts = IntStream.range(10, 50000).mapToObj(i -&gt; new Put(Bytes.toBytes(i))</span>
+<span class="source-line-no">110</span><span id="line-110">      .addColumn(Bytes.toBytes("fam1"), Bytes.toBytes("q1"), Bytes.toBytes("val_" + i)))</span>
+<span class="source-line-no">111</span><span id="line-111">      .collect(Collectors.toList());</span>
+<span class="source-line-no">112</span><span id="line-112">    table.put(puts);</span>
+<span class="source-line-no">113</span><span id="line-113">    admin.flush(tableName);</span>
+<span class="source-line-no">114</span><span id="line-114">    admin.compact(tableName);</span>
+<span class="source-line-no">115</span><span id="line-115">    Thread.sleep(3000);</span>
+<span class="source-line-no">116</span><span id="line-116">    HRegionServer hRegionServer0 = cluster.getRegionServer(0);</span>
+<span class="source-line-no">117</span><span id="line-117">    HRegionServer hRegionServer1 = cluster.getRegionServer(1);</span>
+<span class="source-line-no">118</span><span id="line-118">    HRegionServer hRegionServer2 = cluster.getRegionServer(2);</span>
+<span class="source-line-no">119</span><span id="line-119">    int numRegions0 = hRegionServer0.getNumberOfOnlineRegions();</span>
+<span class="source-line-no">120</span><span id="line-120">    int numRegions1 = hRegionServer1.getNumberOfOnlineRegions();</span>
+<span class="source-line-no">121</span><span id="line-121">    int numRegions2 = hRegionServer2.getNumberOfOnlineRegions();</span>
+<span class="source-line-no">122</span><span id="line-122"></span>
+<span class="source-line-no">123</span><span id="line-123">    hbckChore.choreForTesting();</span>
+<span class="source-line-no">124</span><span id="line-124">    HbckReport hbckReport = hbckChore.getLastReport();</span>
+<span class="source-line-no">125</span><span id="line-125">    Assert.assertEquals(0, hbckReport.getInconsistentRegions().size());</span>
+<span class="source-line-no">126</span><span id="line-126">    Assert.assertEquals(0, hbckReport.getOrphanRegionsOnFS().size());</span>
+<span class="source-line-no">127</span><span id="line-127">    Assert.assertEquals(0, hbckReport.getOrphanRegionsOnRS().size());</span>
+<span class="source-line-no">128</span><span id="line-128"></span>
+<span class="source-line-no">129</span><span id="line-129">    HRegion region0 = hRegionServer0.getRegions().get(0);</span>
+<span class="source-line-no">130</span><span id="line-130">    // move all regions from server1 to server0</span>
+<span class="source-line-no">131</span><span id="line-131">    for (HRegion region : hRegionServer1.getRegions()) {</span>
+<span class="source-line-no">132</span><span id="line-132">      TEST_UTIL.getAdmin().move(region.getRegionInfo().getEncodedNameAsBytes(), rs0);</span>
+<span class="source-line-no">133</span><span id="line-133">    }</span>
+<span class="source-line-no">134</span><span id="line-134">    TEST_UTIL.getAdmin().move(region0.getRegionInfo().getEncodedNameAsBytes());</span>
+<span class="source-line-no">135</span><span id="line-135">    HMaster master = TEST_UTIL.getHBaseCluster().getMaster();</span>
+<span class="source-line-no">136</span><span id="line-136"></span>
+<span class="source-line-no">137</span><span id="line-137">    // Ensure:</span>
+<span class="source-line-no">138</span><span id="line-138">    // 1. num of regions before and after scheduling SCP remain same</span>
+<span class="source-line-no">139</span><span id="line-139">    // 2. all procedures including SCPs are successfully completed</span>
+<span class="source-line-no">140</span><span id="line-140">    // 3. two servers have SCPs scheduled</span>
+<span class="source-line-no">141</span><span id="line-141">    TEST_UTIL.waitFor(5000, 1000, () -&gt; {</span>
+<span class="source-line-no">142</span><span id="line-142">      LOG.info("numRegions0: {} , numRegions1: {} , numRegions2: {}", numRegions0, numRegions1,</span>
+<span class="source-line-no">143</span><span id="line-143">        numRegions2);</span>
+<span class="source-line-no">144</span><span id="line-144">      LOG.info("Online regions - server0 : {} , server1: {} , server2: {}",</span>
+<span class="source-line-no">145</span><span id="line-145">        cluster.getRegionServer(0).getNumberOfOnlineRegions(),</span>
+<span class="source-line-no">146</span><span id="line-146">        cluster.getRegionServer(1).getNumberOfOnlineRegions(),</span>
+<span class="source-line-no">147</span><span id="line-147">        cluster.getRegionServer(2).getNumberOfOnlineRegions());</span>
+<span class="source-line-no">148</span><span id="line-148">      LOG.info("Num of successfully completed procedures: {} , num of all procedures: {}",</span>
+<span class="source-line-no">149</span><span id="line-149">        master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">150</span><span id="line-150">          .filter(masterProcedureEnvProcedure -&gt; masterProcedureEnvProcedure.getState()</span>
+<span class="source-line-no">151</span><span id="line-151">              == ProcedureProtos.ProcedureState.SUCCESS)</span>
+<span class="source-line-no">152</span><span id="line-152">          .count(),</span>
+<span class="source-line-no">153</span><span id="line-153">        master.getMasterProcedureExecutor().getProcedures().size());</span>
+<span class="source-line-no">154</span><span id="line-154">      LOG.info("Num of SCPs: " + master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">155</span><span id="line-155">        .filter(proc -&gt; proc instanceof ServerCrashProcedure).count());</span>
+<span class="source-line-no">156</span><span id="line-156">      return (numRegions0 + numRegions1 + numRegions2)</span>
+<span class="source-line-no">157</span><span id="line-157">          == (cluster.getRegionServer(0).getNumberOfOnlineRegions()</span>
+<span class="source-line-no">158</span><span id="line-158">            + cluster.getRegionServer(1).getNumberOfOnlineRegions()</span>
+<span class="source-line-no">159</span><span id="line-159">            + cluster.getRegionServer(2).getNumberOfOnlineRegions())</span>
+<span class="source-line-no">160</span><span id="line-160">        &amp;&amp; master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">161</span><span id="line-161">          .filter(masterProcedureEnvProcedure -&gt; masterProcedureEnvProcedure.getState()</span>
+<span class="source-line-no">162</span><span id="line-162">              == ProcedureProtos.ProcedureState.SUCCESS)</span>
+<span class="source-line-no">163</span><span id="line-163">          .count() == master.getMasterProcedureExecutor().getProcedures().size()</span>
+<span class="source-line-no">164</span><span id="line-164">        &amp;&amp; master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">165</span><span id="line-165">          .anyMatch(proc -&gt; proc instanceof ServerCrashProcedure);</span>
+<span class="source-line-no">166</span><span id="line-166">    });</span>
+<span class="source-line-no">167</span><span id="line-167"></span>
+<span class="source-line-no">168</span><span id="line-168">    // Ensure we have no inconsistent regions</span>
+<span class="source-line-no">169</span><span id="line-169">    TEST_UTIL.waitFor(5000, 1000, () -&gt; {</span>
+<span class="source-line-no">170</span><span id="line-170">      hbckChore.choreForTesting();</span>
+<span class="source-line-no">171</span><span id="line-171">      HbckReport report = hbckChore.getLastReport();</span>
+<span class="source-line-no">172</span><span id="line-172">      return report.getInconsistentRegions().isEmpty() &amp;&amp; report.getOrphanRegionsOnFS().isEmpty()</span>
+<span class="source-line-no">173</span><span id="line-173">        &amp;&amp; report.getOrphanRegionsOnRS().isEmpty();</span>
+<span class="source-line-no">174</span><span id="line-174">    });</span>
+<span class="source-line-no">175</span><span id="line-175"></span>
+<span class="source-line-no">176</span><span id="line-176">  }</span>
+<span class="source-line-no">177</span><span id="line-177"></span>
+<span class="source-line-no">178</span><span id="line-178">}</span>
 
 
 
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestProcDispatcher.html b/testdevapidocs/org/apache/hadoop/hbase/util/TestProcDispatcher.html
index 6a24d2c9b54..1c4024d0c5a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestProcDispatcher.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/TestProcDispatcher.html
@@ -229,7 +229,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="tearDownAfterClass()">
 <h3>tearDownAfterClass</h3>
-<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html#line-86">tearDownAfterClass</a></span>()
+<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html#line-87">tearDownAfterClass</a></span>()
                                throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
 <dl class="notes">
 <dt>Throws:</dt>
@@ -240,7 +240,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="setUp()">
 <h3>setUp</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html#line-91">setUp</a></span>()
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html#line-92">setUp</a></span>()
            throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
 <dl class="notes">
 <dt>Throws:</dt>
@@ -251,7 +251,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="testRetryLimitOnConnClosedErrors()">
 <h3>testRetryLimitOnConnClosedErrors</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html#line-101">testRetryLimitOnConnClosedErrors</a></span>()
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html#line-102">testRetryLimitOnConnClosedErrors</a></span>()
                                       throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
 <dl class="notes">
 <dt>Throws:</dt>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html
index 17b77035e8e..784c195ea96 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestProcDispatcher.html
@@ -90,104 +90,105 @@
 <span class="source-line-no">077</span><span id="line-77">  public static void setUpBeforeClass() throws Exception {</span>
 <span class="source-line-no">078</span><span id="line-78">    TEST_UTIL.getConfiguration().set(HBASE_MASTER_RSPROC_DISPATCHER_CLASS,</span>
 <span class="source-line-no">079</span><span id="line-79">      RSProcDispatcher.class.getName());</span>
-<span class="source-line-no">080</span><span id="line-80">    TEST_UTIL.startMiniCluster(3);</span>
-<span class="source-line-no">081</span><span id="line-81">    SingleProcessHBaseCluster cluster = TEST_UTIL.getHBaseCluster();</span>
-<span class="source-line-no">082</span><span id="line-82">    rs0 = cluster.getRegionServer(0).getServerName();</span>
-<span class="source-line-no">083</span><span id="line-83">    TEST_UTIL.getAdmin().balancerSwitch(false, true);</span>
-<span class="source-line-no">084</span><span id="line-84">  }</span>
-<span class="source-line-no">085</span><span id="line-85"></span>
-<span class="source-line-no">086</span><span id="line-86">  @AfterClass</span>
-<span class="source-line-no">087</span><span id="line-87">  public static void tearDownAfterClass() throws Exception {</span>
-<span class="source-line-no">088</span><span id="line-88">    TEST_UTIL.shutdownMiniCluster();</span>
-<span class="source-line-no">089</span><span id="line-89">  }</span>
-<span class="source-line-no">090</span><span id="line-90"></span>
-<span class="source-line-no">091</span><span id="line-91">  @Before</span>
-<span class="source-line-no">092</span><span id="line-92">  public void setUp() throws Exception {</span>
-<span class="source-line-no">093</span><span id="line-93">    final TableName tableName = TableName.valueOf(name.getMethodName());</span>
-<span class="source-line-no">094</span><span id="line-94">    TableDescriptor tableDesc = TableDescriptorBuilder.newBuilder(tableName)</span>
-<span class="source-line-no">095</span><span id="line-95">      .setColumnFamily(ColumnFamilyDescriptorBuilder.of("fam1")).build();</span>
-<span class="source-line-no">096</span><span id="line-96">    int startKey = 0;</span>
-<span class="source-line-no">097</span><span id="line-97">    int endKey = 80000;</span>
-<span class="source-line-no">098</span><span id="line-98">    TEST_UTIL.getAdmin().createTable(tableDesc, Bytes.toBytes(startKey), Bytes.toBytes(endKey), 9);</span>
-<span class="source-line-no">099</span><span id="line-99">  }</span>
-<span class="source-line-no">100</span><span id="line-100"></span>
-<span class="source-line-no">101</span><span id="line-101">  @Test</span>
-<span class="source-line-no">102</span><span id="line-102">  public void testRetryLimitOnConnClosedErrors() throws Exception {</span>
-<span class="source-line-no">103</span><span id="line-103">    HbckChore hbckChore = new HbckChore(TEST_UTIL.getHBaseCluster().getMaster());</span>
-<span class="source-line-no">104</span><span id="line-104">    final TableName tableName = TableName.valueOf(name.getMethodName());</span>
-<span class="source-line-no">105</span><span id="line-105">    SingleProcessHBaseCluster cluster = TEST_UTIL.getHBaseCluster();</span>
-<span class="source-line-no">106</span><span id="line-106">    Admin admin = TEST_UTIL.getAdmin();</span>
-<span class="source-line-no">107</span><span id="line-107">    Table table = TEST_UTIL.getConnection().getTable(tableName);</span>
-<span class="source-line-no">108</span><span id="line-108">    List&lt;Put&gt; puts = IntStream.range(10, 50000).mapToObj(i -&gt; new Put(Bytes.toBytes(i))</span>
-<span class="source-line-no">109</span><span id="line-109">      .addColumn(Bytes.toBytes("fam1"), Bytes.toBytes("q1"), Bytes.toBytes("val_" + i)))</span>
-<span class="source-line-no">110</span><span id="line-110">      .collect(Collectors.toList());</span>
-<span class="source-line-no">111</span><span id="line-111">    table.put(puts);</span>
-<span class="source-line-no">112</span><span id="line-112">    admin.flush(tableName);</span>
-<span class="source-line-no">113</span><span id="line-113">    admin.compact(tableName);</span>
-<span class="source-line-no">114</span><span id="line-114">    Thread.sleep(3000);</span>
-<span class="source-line-no">115</span><span id="line-115">    HRegionServer hRegionServer0 = cluster.getRegionServer(0);</span>
-<span class="source-line-no">116</span><span id="line-116">    HRegionServer hRegionServer1 = cluster.getRegionServer(1);</span>
-<span class="source-line-no">117</span><span id="line-117">    HRegionServer hRegionServer2 = cluster.getRegionServer(2);</span>
-<span class="source-line-no">118</span><span id="line-118">    int numRegions0 = hRegionServer0.getNumberOfOnlineRegions();</span>
-<span class="source-line-no">119</span><span id="line-119">    int numRegions1 = hRegionServer1.getNumberOfOnlineRegions();</span>
-<span class="source-line-no">120</span><span id="line-120">    int numRegions2 = hRegionServer2.getNumberOfOnlineRegions();</span>
-<span class="source-line-no">121</span><span id="line-121"></span>
-<span class="source-line-no">122</span><span id="line-122">    hbckChore.choreForTesting();</span>
-<span class="source-line-no">123</span><span id="line-123">    HbckReport hbckReport = hbckChore.getLastReport();</span>
-<span class="source-line-no">124</span><span id="line-124">    Assert.assertEquals(0, hbckReport.getInconsistentRegions().size());</span>
-<span class="source-line-no">125</span><span id="line-125">    Assert.assertEquals(0, hbckReport.getOrphanRegionsOnFS().size());</span>
-<span class="source-line-no">126</span><span id="line-126">    Assert.assertEquals(0, hbckReport.getOrphanRegionsOnRS().size());</span>
-<span class="source-line-no">127</span><span id="line-127"></span>
-<span class="source-line-no">128</span><span id="line-128">    HRegion region0 = hRegionServer0.getRegions().get(0);</span>
-<span class="source-line-no">129</span><span id="line-129">    // move all regions from server1 to server0</span>
-<span class="source-line-no">130</span><span id="line-130">    for (HRegion region : hRegionServer1.getRegions()) {</span>
-<span class="source-line-no">131</span><span id="line-131">      TEST_UTIL.getAdmin().move(region.getRegionInfo().getEncodedNameAsBytes(), rs0);</span>
-<span class="source-line-no">132</span><span id="line-132">    }</span>
-<span class="source-line-no">133</span><span id="line-133">    TEST_UTIL.getAdmin().move(region0.getRegionInfo().getEncodedNameAsBytes());</span>
-<span class="source-line-no">134</span><span id="line-134">    HMaster master = TEST_UTIL.getHBaseCluster().getMaster();</span>
-<span class="source-line-no">135</span><span id="line-135"></span>
-<span class="source-line-no">136</span><span id="line-136">    // Ensure:</span>
-<span class="source-line-no">137</span><span id="line-137">    // 1. num of regions before and after scheduling SCP remain same</span>
-<span class="source-line-no">138</span><span id="line-138">    // 2. all procedures including SCPs are successfully completed</span>
-<span class="source-line-no">139</span><span id="line-139">    // 3. two servers have SCPs scheduled</span>
-<span class="source-line-no">140</span><span id="line-140">    TEST_UTIL.waitFor(5000, 1000, () -&gt; {</span>
-<span class="source-line-no">141</span><span id="line-141">      LOG.info("numRegions0: {} , numRegions1: {} , numRegions2: {}", numRegions0, numRegions1,</span>
-<span class="source-line-no">142</span><span id="line-142">        numRegions2);</span>
-<span class="source-line-no">143</span><span id="line-143">      LOG.info("Online regions - server0 : {} , server1: {} , server2: {}",</span>
-<span class="source-line-no">144</span><span id="line-144">        cluster.getRegionServer(0).getNumberOfOnlineRegions(),</span>
-<span class="source-line-no">145</span><span id="line-145">        cluster.getRegionServer(1).getNumberOfOnlineRegions(),</span>
-<span class="source-line-no">146</span><span id="line-146">        cluster.getRegionServer(2).getNumberOfOnlineRegions());</span>
-<span class="source-line-no">147</span><span id="line-147">      LOG.info("Num of successfully completed procedures: {} , num of all procedures: {}",</span>
-<span class="source-line-no">148</span><span id="line-148">        master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">149</span><span id="line-149">          .filter(masterProcedureEnvProcedure -&gt; masterProcedureEnvProcedure.getState()</span>
-<span class="source-line-no">150</span><span id="line-150">              == ProcedureProtos.ProcedureState.SUCCESS)</span>
-<span class="source-line-no">151</span><span id="line-151">          .count(),</span>
-<span class="source-line-no">152</span><span id="line-152">        master.getMasterProcedureExecutor().getProcedures().size());</span>
-<span class="source-line-no">153</span><span id="line-153">      LOG.info("Num of SCPs: " + master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">154</span><span id="line-154">        .filter(proc -&gt; proc instanceof ServerCrashProcedure).count());</span>
-<span class="source-line-no">155</span><span id="line-155">      return (numRegions0 + numRegions1 + numRegions2)</span>
-<span class="source-line-no">156</span><span id="line-156">          == (cluster.getRegionServer(0).getNumberOfOnlineRegions()</span>
-<span class="source-line-no">157</span><span id="line-157">            + cluster.getRegionServer(1).getNumberOfOnlineRegions()</span>
-<span class="source-line-no">158</span><span id="line-158">            + cluster.getRegionServer(2).getNumberOfOnlineRegions())</span>
-<span class="source-line-no">159</span><span id="line-159">        &amp;&amp; master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">160</span><span id="line-160">          .filter(masterProcedureEnvProcedure -&gt; masterProcedureEnvProcedure.getState()</span>
-<span class="source-line-no">161</span><span id="line-161">              == ProcedureProtos.ProcedureState.SUCCESS)</span>
-<span class="source-line-no">162</span><span id="line-162">          .count() == master.getMasterProcedureExecutor().getProcedures().size()</span>
-<span class="source-line-no">163</span><span id="line-163">        &amp;&amp; master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">164</span><span id="line-164">          .anyMatch(proc -&gt; proc instanceof ServerCrashProcedure);</span>
-<span class="source-line-no">165</span><span id="line-165">    });</span>
-<span class="source-line-no">166</span><span id="line-166"></span>
-<span class="source-line-no">167</span><span id="line-167">    // Ensure we have no inconsistent regions</span>
-<span class="source-line-no">168</span><span id="line-168">    TEST_UTIL.waitFor(5000, 1000, () -&gt; {</span>
-<span class="source-line-no">169</span><span id="line-169">      hbckChore.choreForTesting();</span>
-<span class="source-line-no">170</span><span id="line-170">      HbckReport report = hbckChore.getLastReport();</span>
-<span class="source-line-no">171</span><span id="line-171">      return report.getInconsistentRegions().isEmpty() &amp;&amp; report.getOrphanRegionsOnFS().isEmpty()</span>
-<span class="source-line-no">172</span><span id="line-172">        &amp;&amp; report.getOrphanRegionsOnRS().isEmpty();</span>
-<span class="source-line-no">173</span><span id="line-173">    });</span>
-<span class="source-line-no">174</span><span id="line-174"></span>
-<span class="source-line-no">175</span><span id="line-175">  }</span>
-<span class="source-line-no">176</span><span id="line-176"></span>
-<span class="source-line-no">177</span><span id="line-177">}</span>
+<span class="source-line-no">080</span><span id="line-80">    TEST_UTIL.getConfiguration().setInt("hbase.master.rs.remote.proc.fail.fast.limit", 5);</span>
+<span class="source-line-no">081</span><span id="line-81">    TEST_UTIL.startMiniCluster(3);</span>
+<span class="source-line-no">082</span><span id="line-82">    SingleProcessHBaseCluster cluster = TEST_UTIL.getHBaseCluster();</span>
+<span class="source-line-no">083</span><span id="line-83">    rs0 = cluster.getRegionServer(0).getServerName();</span>
+<span class="source-line-no">084</span><span id="line-84">    TEST_UTIL.getAdmin().balancerSwitch(false, true);</span>
+<span class="source-line-no">085</span><span id="line-85">  }</span>
+<span class="source-line-no">086</span><span id="line-86"></span>
+<span class="source-line-no">087</span><span id="line-87">  @AfterClass</span>
+<span class="source-line-no">088</span><span id="line-88">  public static void tearDownAfterClass() throws Exception {</span>
+<span class="source-line-no">089</span><span id="line-89">    TEST_UTIL.shutdownMiniCluster();</span>
+<span class="source-line-no">090</span><span id="line-90">  }</span>
+<span class="source-line-no">091</span><span id="line-91"></span>
+<span class="source-line-no">092</span><span id="line-92">  @Before</span>
+<span class="source-line-no">093</span><span id="line-93">  public void setUp() throws Exception {</span>
+<span class="source-line-no">094</span><span id="line-94">    final TableName tableName = TableName.valueOf(name.getMethodName());</span>
+<span class="source-line-no">095</span><span id="line-95">    TableDescriptor tableDesc = TableDescriptorBuilder.newBuilder(tableName)</span>
+<span class="source-line-no">096</span><span id="line-96">      .setColumnFamily(ColumnFamilyDescriptorBuilder.of("fam1")).build();</span>
+<span class="source-line-no">097</span><span id="line-97">    int startKey = 0;</span>
+<span class="source-line-no">098</span><span id="line-98">    int endKey = 80000;</span>
+<span class="source-line-no">099</span><span id="line-99">    TEST_UTIL.getAdmin().createTable(tableDesc, Bytes.toBytes(startKey), Bytes.toBytes(endKey), 9);</span>
+<span class="source-line-no">100</span><span id="line-100">  }</span>
+<span class="source-line-no">101</span><span id="line-101"></span>
+<span class="source-line-no">102</span><span id="line-102">  @Test</span>
+<span class="source-line-no">103</span><span id="line-103">  public void testRetryLimitOnConnClosedErrors() throws Exception {</span>
+<span class="source-line-no">104</span><span id="line-104">    HbckChore hbckChore = new HbckChore(TEST_UTIL.getHBaseCluster().getMaster());</span>
+<span class="source-line-no">105</span><span id="line-105">    final TableName tableName = TableName.valueOf(name.getMethodName());</span>
+<span class="source-line-no">106</span><span id="line-106">    SingleProcessHBaseCluster cluster = TEST_UTIL.getHBaseCluster();</span>
+<span class="source-line-no">107</span><span id="line-107">    Admin admin = TEST_UTIL.getAdmin();</span>
+<span class="source-line-no">108</span><span id="line-108">    Table table = TEST_UTIL.getConnection().getTable(tableName);</span>
+<span class="source-line-no">109</span><span id="line-109">    List&lt;Put&gt; puts = IntStream.range(10, 50000).mapToObj(i -&gt; new Put(Bytes.toBytes(i))</span>
+<span class="source-line-no">110</span><span id="line-110">      .addColumn(Bytes.toBytes("fam1"), Bytes.toBytes("q1"), Bytes.toBytes("val_" + i)))</span>
+<span class="source-line-no">111</span><span id="line-111">      .collect(Collectors.toList());</span>
+<span class="source-line-no">112</span><span id="line-112">    table.put(puts);</span>
+<span class="source-line-no">113</span><span id="line-113">    admin.flush(tableName);</span>
+<span class="source-line-no">114</span><span id="line-114">    admin.compact(tableName);</span>
+<span class="source-line-no">115</span><span id="line-115">    Thread.sleep(3000);</span>
+<span class="source-line-no">116</span><span id="line-116">    HRegionServer hRegionServer0 = cluster.getRegionServer(0);</span>
+<span class="source-line-no">117</span><span id="line-117">    HRegionServer hRegionServer1 = cluster.getRegionServer(1);</span>
+<span class="source-line-no">118</span><span id="line-118">    HRegionServer hRegionServer2 = cluster.getRegionServer(2);</span>
+<span class="source-line-no">119</span><span id="line-119">    int numRegions0 = hRegionServer0.getNumberOfOnlineRegions();</span>
+<span class="source-line-no">120</span><span id="line-120">    int numRegions1 = hRegionServer1.getNumberOfOnlineRegions();</span>
+<span class="source-line-no">121</span><span id="line-121">    int numRegions2 = hRegionServer2.getNumberOfOnlineRegions();</span>
+<span class="source-line-no">122</span><span id="line-122"></span>
+<span class="source-line-no">123</span><span id="line-123">    hbckChore.choreForTesting();</span>
+<span class="source-line-no">124</span><span id="line-124">    HbckReport hbckReport = hbckChore.getLastReport();</span>
+<span class="source-line-no">125</span><span id="line-125">    Assert.assertEquals(0, hbckReport.getInconsistentRegions().size());</span>
+<span class="source-line-no">126</span><span id="line-126">    Assert.assertEquals(0, hbckReport.getOrphanRegionsOnFS().size());</span>
+<span class="source-line-no">127</span><span id="line-127">    Assert.assertEquals(0, hbckReport.getOrphanRegionsOnRS().size());</span>
+<span class="source-line-no">128</span><span id="line-128"></span>
+<span class="source-line-no">129</span><span id="line-129">    HRegion region0 = hRegionServer0.getRegions().get(0);</span>
+<span class="source-line-no">130</span><span id="line-130">    // move all regions from server1 to server0</span>
+<span class="source-line-no">131</span><span id="line-131">    for (HRegion region : hRegionServer1.getRegions()) {</span>
+<span class="source-line-no">132</span><span id="line-132">      TEST_UTIL.getAdmin().move(region.getRegionInfo().getEncodedNameAsBytes(), rs0);</span>
+<span class="source-line-no">133</span><span id="line-133">    }</span>
+<span class="source-line-no">134</span><span id="line-134">    TEST_UTIL.getAdmin().move(region0.getRegionInfo().getEncodedNameAsBytes());</span>
+<span class="source-line-no">135</span><span id="line-135">    HMaster master = TEST_UTIL.getHBaseCluster().getMaster();</span>
+<span class="source-line-no">136</span><span id="line-136"></span>
+<span class="source-line-no">137</span><span id="line-137">    // Ensure:</span>
+<span class="source-line-no">138</span><span id="line-138">    // 1. num of regions before and after scheduling SCP remain same</span>
+<span class="source-line-no">139</span><span id="line-139">    // 2. all procedures including SCPs are successfully completed</span>
+<span class="source-line-no">140</span><span id="line-140">    // 3. two servers have SCPs scheduled</span>
+<span class="source-line-no">141</span><span id="line-141">    TEST_UTIL.waitFor(5000, 1000, () -&gt; {</span>
+<span class="source-line-no">142</span><span id="line-142">      LOG.info("numRegions0: {} , numRegions1: {} , numRegions2: {}", numRegions0, numRegions1,</span>
+<span class="source-line-no">143</span><span id="line-143">        numRegions2);</span>
+<span class="source-line-no">144</span><span id="line-144">      LOG.info("Online regions - server0 : {} , server1: {} , server2: {}",</span>
+<span class="source-line-no">145</span><span id="line-145">        cluster.getRegionServer(0).getNumberOfOnlineRegions(),</span>
+<span class="source-line-no">146</span><span id="line-146">        cluster.getRegionServer(1).getNumberOfOnlineRegions(),</span>
+<span class="source-line-no">147</span><span id="line-147">        cluster.getRegionServer(2).getNumberOfOnlineRegions());</span>
+<span class="source-line-no">148</span><span id="line-148">      LOG.info("Num of successfully completed procedures: {} , num of all procedures: {}",</span>
+<span class="source-line-no">149</span><span id="line-149">        master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">150</span><span id="line-150">          .filter(masterProcedureEnvProcedure -&gt; masterProcedureEnvProcedure.getState()</span>
+<span class="source-line-no">151</span><span id="line-151">              == ProcedureProtos.ProcedureState.SUCCESS)</span>
+<span class="source-line-no">152</span><span id="line-152">          .count(),</span>
+<span class="source-line-no">153</span><span id="line-153">        master.getMasterProcedureExecutor().getProcedures().size());</span>
+<span class="source-line-no">154</span><span id="line-154">      LOG.info("Num of SCPs: " + master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">155</span><span id="line-155">        .filter(proc -&gt; proc instanceof ServerCrashProcedure).count());</span>
+<span class="source-line-no">156</span><span id="line-156">      return (numRegions0 + numRegions1 + numRegions2)</span>
+<span class="source-line-no">157</span><span id="line-157">          == (cluster.getRegionServer(0).getNumberOfOnlineRegions()</span>
+<span class="source-line-no">158</span><span id="line-158">            + cluster.getRegionServer(1).getNumberOfOnlineRegions()</span>
+<span class="source-line-no">159</span><span id="line-159">            + cluster.getRegionServer(2).getNumberOfOnlineRegions())</span>
+<span class="source-line-no">160</span><span id="line-160">        &amp;&amp; master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">161</span><span id="line-161">          .filter(masterProcedureEnvProcedure -&gt; masterProcedureEnvProcedure.getState()</span>
+<span class="source-line-no">162</span><span id="line-162">              == ProcedureProtos.ProcedureState.SUCCESS)</span>
+<span class="source-line-no">163</span><span id="line-163">          .count() == master.getMasterProcedureExecutor().getProcedures().size()</span>
+<span class="source-line-no">164</span><span id="line-164">        &amp;&amp; master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">165</span><span id="line-165">          .anyMatch(proc -&gt; proc instanceof ServerCrashProcedure);</span>
+<span class="source-line-no">166</span><span id="line-166">    });</span>
+<span class="source-line-no">167</span><span id="line-167"></span>
+<span class="source-line-no">168</span><span id="line-168">    // Ensure we have no inconsistent regions</span>
+<span class="source-line-no">169</span><span id="line-169">    TEST_UTIL.waitFor(5000, 1000, () -&gt; {</span>
+<span class="source-line-no">170</span><span id="line-170">      hbckChore.choreForTesting();</span>
+<span class="source-line-no">171</span><span id="line-171">      HbckReport report = hbckChore.getLastReport();</span>
+<span class="source-line-no">172</span><span id="line-172">      return report.getInconsistentRegions().isEmpty() &amp;&amp; report.getOrphanRegionsOnFS().isEmpty()</span>
+<span class="source-line-no">173</span><span id="line-173">        &amp;&amp; report.getOrphanRegionsOnRS().isEmpty();</span>
+<span class="source-line-no">174</span><span id="line-174">    });</span>
+<span class="source-line-no">175</span><span id="line-175"></span>
+<span class="source-line-no">176</span><span id="line-176">  }</span>
+<span class="source-line-no">177</span><span id="line-177"></span>
+<span class="source-line-no">178</span><span id="line-178">}</span>