[ https://issues.apache.org/jira/browse/HBASE-10533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13903834#comment-13903834 ]
rajeshbabu commented on HBASE-10533: ------------------------------------ [~lhofhansl] bq. Why would the server retry if the CF is unknown? That in itself is a bug. In case of unknown column we are not retrying. Any exceptions in batch operation will be added to RetriesExhaustedWithDetailsException and thrown out. So its not a problem. {code} public class NoSuchColumnFamilyException extends DoNotRetryIOException { {code} [~jerryhe] The first part is fixed as part of HBASE-8798 but reverted as part of HBASE-9211. It seems there is some problem with ruby when we use message method. Thanks for reminding. I have upgraded Jruby to 1.7.0 and tried then getting below exception. {code} 2014-02-18 12:43:02,544 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available NoMethodError: undefined method `getTerminal' for Java::Jline::Terminal:Module refresh_width at /home/rajeshbabu/98/hbase-0.98.0/bin/../lib/ruby/shell/formatter.rb:33 initialize at /home/rajeshbabu/98/hbase-0.98.0/bin/../lib/ruby/shell/formatter.rb:46 (root) at /home/rajeshbabu/98/hbase-0.98.0/bin/../bin/hirb.rb:110 {code} > commands.rb is giving wrong error messages on exceptions > -------------------------------------------------------- > > Key: HBASE-10533 > URL: https://issues.apache.org/jira/browse/HBASE-10533 > Project: HBase > Issue Type: Bug > Components: shell > Reporter: rajeshbabu > Assignee: rajeshbabu > Fix For: 0.96.2, 0.98.1, 0.99.0, 0.94.18 > > Attachments: HBASE-10533_trunk.patch > > > 1) Clone into existing table name is printing snapshot name instead of table > name. > {code} > hbase(main):004:0> clone_snapshot 'myTableSnapshot-122112','table' > ERROR: Table already exists: myTableSnapshot-122112! > {code} > The reason for this is we are printing first argument instead of exception > message. > {code} > if cause.kind_of?(org.apache.hadoop.hbase.TableExistsException) then > raise "Table already exists: #{args.first}!" > end > {code} > 2) If we give wrong column family in put or delete. Expectation is to print > actual column families in the table but instead throwing the exception. > {code} > hbase(main):002:0> put 't1','r','unkwown_cf','value' > 2014-02-14 15:51:10,037 WARN [main] util.NativeCodeLoader: Unable to load > native-hadoop library for your platform... using builtin-java classes where > applicable > 2014-02-14 15:51:10,640 INFO [main] hdfs.PeerCache: SocketCache disabled. > ERROR: Failed 1 action: > org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column > family unkwown_cf does not exist in region > t1,eeeeeeee,1392118273512.c7230b923c58f1af406a6d84930e40c1. in table 't1', > {NAME => 'f1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', > REPLICATION_SCOPE => '0', COMPRESSION => 'NONE', VERSIONS => '6', TTL => > '2147483647', MIN_VERSIONS => '0', KEEP_DELETED_CELLS => 'false', BLOCKSIZE > => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'} > at > org.apache.hadoop.hbase.regionserver.HRegionServer.doBatchOp(HRegionServer.java:4206) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.doNonAtomicRegionMutation(HRegionServer.java:3441) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.multi(HRegionServer.java:3345) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:28460) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2008) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:92) > at > org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.consumerLoop(SimpleRpcScheduler.java:160) > at > org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.access$000(SimpleRpcScheduler.java:38) > at > org.apache.hadoop.hbase.ipc.SimpleRpcScheduler$1.run(SimpleRpcScheduler.java:110) > at java.lang.Thread.run(Thread.java:662) > : 1 time, > {code} > The reason for this is server will not throw NoSuchColumnFamilyException > directly, instead RetriesExhaustedWithDetailsException will be thrown. -- This message was sent by Atlassian JIRA (v6.1.5#6160)