diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
index a43a0b2dc0f..08b44c93015 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
@@ -1737,11 +1737,14 @@ public interface Admin extends Abortable, Closeable {
/**
* Abort a procedure.
+ * Do not use. Usually it is ignored but if not, it can do more damage than good. See hbck2.
* @param procId ID of the procedure to abort
* @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?
* @return true
if aborted, false
if procedure already completed or does not exist
* @throws IOException
+ * @deprecated Since 2.1.1 -- to be removed.
*/
+ @Deprecated
boolean abortProcedure(
long procId,
boolean mayInterruptIfRunning) throws IOException;
@@ -1752,12 +1755,15 @@ public interface Admin extends Abortable, Closeable {
* It may throw ExecutionException if there was an error while executing the operation
* or TimeoutException in case the wait timeout was not long enough to allow the
* operation to complete.
+ * Do not use. Usually it is ignored but if not, it can do more damage than good. See hbck2.
*
* @param procId ID of the procedure to abort
* @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?
* @return true
if aborted, false
if procedure already completed or does not exist
* @throws IOException
+ * @deprecated Since 2.1.1 -- to be removed.
*/
+ @Deprecated
Future abortProcedureAsync(
long procId,
boolean mayInterruptIfRunning) throws IOException;
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java
index 739c78a46dd..6bb253a20ab 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java
@@ -877,12 +877,15 @@ public interface AsyncAdmin {
Map props);
/**
- * abort a procedure
+ * Abort a procedure
+ * Do not use. Usually it is ignored but if not, it can do more damage than good. See hbck2.
* @param procId ID of the procedure to abort
* @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?
* @return true if aborted, false if procedure already completed or does not exist. the value is
* wrapped by {@link CompletableFuture}
+ * @deprecated Since 2.1.1 -- to be removed.
*/
+ @Deprecated
CompletableFuture abortProcedure(long procId, boolean mayInterruptIfRunning);
/**
diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb
index 2be059dadc3..e4efab04cc6 100644
--- a/hbase-shell/src/main/ruby/hbase/admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/admin.rb
@@ -1224,15 +1224,6 @@ module Hbase
@admin.getSecurityCapabilities
end
- # Abort a procedure
- def abort_procedure?(proc_id, may_interrupt_if_running = nil)
- if may_interrupt_if_running.nil?
- @admin.abortProcedure(proc_id, true)
- else
- @admin.abortProcedure(proc_id, may_interrupt_if_running)
- end
- end
-
# List all procedures
def list_procedures
@admin.getProcedures
diff --git a/hbase-shell/src/main/ruby/shell.rb b/hbase-shell/src/main/ruby/shell.rb
index 17563d3cec6..ddec4d48483 100644
--- a/hbase-shell/src/main/ruby/shell.rb
+++ b/hbase-shell/src/main/ruby/shell.rb
@@ -451,7 +451,6 @@ Shell.load_command_group(
'procedures',
full_name: 'PROCEDURES & LOCKS MANAGEMENT',
commands: %w[
- abort_procedure
list_procedures
list_locks
]
diff --git a/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb b/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb
deleted file mode 100644
index 28c7d8525d6..00000000000
--- a/hbase-shell/src/main/ruby/shell/commands/abort_procedure.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-module Shell
- module Commands
- class AbortProcedure < Command
- def help
- <<-EOF
-Given a procedure Id (and optional boolean may_interrupt_if_running parameter,
-default is true), abort a procedure in hbase. Use with caution. Some procedures
-might not be abortable. For experts only.
-
-If this command is accepted and the procedure is in the process of aborting,
-it will return true; if the procedure could not be aborted (eg. procedure
-does not exist, or procedure already completed or abort will cause corruption),
-this command will return false.
-
-Examples:
-
- hbase> abort_procedure proc_id
- hbase> abort_procedure proc_id, true
- hbase> abort_procedure proc_id, false
-EOF
- end
-
- def command(proc_id, may_interrupt_if_running = nil)
- formatter.row([admin.abort_procedure?(proc_id, may_interrupt_if_running).to_s])
- end
- end
- end
-end