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 static final 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 static final 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> <span class="return-type">int</span> <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<Put> puts = IntStream.range(10, 50000).mapToObj(i -> 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, () -> {</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 -> 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 -> 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"> && master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">160</span><span id="line-160"> .filter(masterProcedureEnvProcedure -> 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"> && master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">164</span><span id="line-164"> .anyMatch(proc -> 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, () -> {</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() && report.getOrphanRegionsOnFS().isEmpty()</span>
-<span class="source-line-no">172</span><span id="line-172"> && 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<Put> puts = IntStream.range(10, 50000).mapToObj(i -> 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, () -> {</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 -> 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 -> 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"> && master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">161</span><span id="line-161"> .filter(masterProcedureEnvProcedure -> 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"> && master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">165</span><span id="line-165"> .anyMatch(proc -> 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, () -> {</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() && report.getOrphanRegionsOnFS().isEmpty()</span>
+<span class="source-line-no">173</span><span id="line-173"> && 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> <span class="return-type">void</span> <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> <span class="return-type">void</span> <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> <span class="return-type">void</span> <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> <span class="return-type">void</span> <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> <span class="return-type">void</span> <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> <span class="return-type">void</span> <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<Put> puts = IntStream.range(10, 50000).mapToObj(i -> 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, () -> {</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 -> 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 -> 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"> && master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">160</span><span id="line-160"> .filter(masterProcedureEnvProcedure -> 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"> && master.getMasterProcedureExecutor().getProcedures().stream()</span>
-<span class="source-line-no">164</span><span id="line-164"> .anyMatch(proc -> 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, () -> {</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() && report.getOrphanRegionsOnFS().isEmpty()</span>
-<span class="source-line-no">172</span><span id="line-172"> && 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<Put> puts = IntStream.range(10, 50000).mapToObj(i -> 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, () -> {</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 -> 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 -> 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"> && master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">161</span><span id="line-161"> .filter(masterProcedureEnvProcedure -> 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"> && master.getMasterProcedureExecutor().getProcedures().stream()</span>
+<span class="source-line-no">165</span><span id="line-165"> .anyMatch(proc -> 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, () -> {</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() && report.getOrphanRegionsOnFS().isEmpty()</span>
+<span class="source-line-no">173</span><span id="line-173"> && 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>