[ https://issues.apache.org/jira/browse/HBASE-26741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17488807#comment-17488807 ]
Peter Somogyi commented on HBASE-26741: --------------------------------------- The thrown exception is not caught in the [exception_handler|https://github.com/apache/hbase/blob/branch-2.4/hbase-shell/src/main/ruby/shell.rb#L329-L351] method when the commands are called via [IRB::HBaseLoader.file_for_load(script2run)).run|#L212]]. I think that is the expected behavior of the run command and I'm not able to find any option to force the exception to be thrown. [~busbey], [~mdrob]: Do you have any idea how this could be solved? > Incorrect exception handling in shell > ------------------------------------- > > Key: HBASE-26741 > URL: https://issues.apache.org/jira/browse/HBASE-26741 > Project: HBase > Issue Type: Bug > Components: shell > Affects Versions: 2.5.0, 3.0.0-alpha-2, 2.4.10 > Reporter: Peter Somogyi > Priority: Critical > > The exception handling changed in the shell compared to 2.2. > {noformat} > ➜ hbase-upstream git:(branch-2.4) ✗ cat commands.txt > scan 'foo' > exit > ➜ hbase-upstream git:(branch-2.4) ✗ bin/hbase shell -n commands.txt > 2022-02-07 16:21:33,654 WARN [main] util.NativeCodeLoader: Unable to load > native-hadoop library for your platform... using builtin-java classes where > applicable > hbase:001:0> scan 'foo' > ROW COLUMN+CELL > Took 0.3890 seconds > Traceback (most > recent call last): > RuntimeError (Unknown table foo!) > hbase:002:0> exit > ➜ hbase-upstream git:(branch-2.4) ✗ echo $? > 0 {noformat} > The execution continues even after an exception is thrown. In 2.2.7 the > execution stops when an exception is thrown and the shell exits with error > code. > {noformat} > ➜ hbase-2.2.7 bin/hbase shell -n commands.txt > 2022-02-07 16:33:54,930 WARN [main] util.NativeCodeLoader: Unable to load > native-hadoop library for your platform... using builtin-java classes where > applicable > ROW COLUMN+CELL > Took 0.3082 seconds > RuntimeError: > Unknown table foo! > translate_hbase_exceptions at > /Users/petersomogyi/tmp/hbase-2.2.7/lib/ruby/shell/commands.rb:130 > command_safe at > /Users/petersomogyi/tmp/hbase-2.2.7/lib/ruby/shell/commands.rb:49 > internal_command at > /Users/petersomogyi/tmp/hbase-2.2.7/lib/ruby/shell.rb:148 > command at > /Users/petersomogyi/tmp/hbase-2.2.7/lib/ruby/shell.rb:140 > scan at (eval):2 > <main> at commands.txt:1 > load at org/jruby/RubyKernel.java:973 > <main> at > /Users/petersomogyi/tmp/hbase-2.2.7/bin/../bin/hirb.rb:186 > ➜ hbase-2.2.7 echo $? > 1 {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)