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