hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Toby White (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-657) InvalidColumnNameException not passed through to Thrift interface
Date Thu, 14 Aug 2008 18:43:44 GMT

    [ https://issues.apache.org/jira/browse/HBASE-657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12622635#action_12622635
] 

Toby White commented on HBASE-657:
----------------------------------

There is a related issue which occurs when a Mutation is passed in with no column name - a
rather opaque
thrift.transport.TTransport.TTransportException: None
is generated instead of a useful message. 

The patch attached fixes this in ThriftServer.java by checking that the column name is not
null before use.

(The patch is to be applied on top of Tim Sell's patch in HBASE-697)

> InvalidColumnNameException not passed through to Thrift interface
> -----------------------------------------------------------------
>
>                 Key: HBASE-657
>                 URL: https://issues.apache.org/jira/browse/HBASE-657
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: thrift
>    Affects Versions: 0.1.2
>            Reporter: Todd Lipcon
>            Assignee: Bryan Duxbury
>            Priority: Minor
>
> If an invalid column name is passed to the Thrift server, the InvalidColumnNameException
is not caught and turned into a Thrift exception. Debug output:
> 08/05/29 20:34:30 DEBUG thrift.ThriftServer$HBaseHandler: get: table=test_table, row=todd,
col=foobar
> 08/05/29 20:34:30 DEBUG hbase.HTable: reloading table servers because: org.apache.hadoop.hbase.InvalidColumnNameException:
foobar is missing the colon family/qualifier separator
>         at org.apache.hadoop.hbase.HStoreKey.getColonOffset(HStoreKey.java:335)
>         at org.apache.hadoop.hbase.HStoreKey.extractFamily(HStoreKey.java:295)
>         at org.apache.hadoop.hbase.HRegion.checkColumn(HRegion.java:1676)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1191)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1154)
>         at org.apache.hadoop.hbase.HRegionServer.get(HRegionServer.java:1402)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:413)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:901)
> 08/05/29 20:34:40 DEBUG hbase.HTable: reloading table servers because: org.apache.hadoop.hbase.InvalidColumnNameException:
foobar is missing the colon family/qualifier separator
>         at org.apache.hadoop.hbase.HStoreKey.getColonOffset(HStoreKey.java:335)
>         at org.apache.hadoop.hbase.HStoreKey.extractFamily(HStoreKey.java:295)
>         at org.apache.hadoop.hbase.HRegion.checkColumn(HRegion.java:1676)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1191)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1154)
>         at org.apache.hadoop.hbase.HRegionServer.get(HRegionServer.java:1402)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:413)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:901)
> 08/05/29 20:34:50 DEBUG hbase.HTable: reloading table servers because: org.apache.hadoop.hbase.InvalidColumnNameException:
foobar is missing the colon family/qualifier separator
>         at org.apache.hadoop.hbase.HStoreKey.getColonOffset(HStoreKey.java:335)
>         at org.apache.hadoop.hbase.HStoreKey.extractFamily(HStoreKey.java:295)
>         at org.apache.hadoop.hbase.HRegion.checkColumn(HRegion.java:1676)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1191)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1154)
>         at org.apache.hadoop.hbase.HRegionServer.get(HRegionServer.java:1402)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:413)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:901)
> 08/05/29 20:35:00 DEBUG hbase.HTable: reloading table servers because: org.apache.hadoop.hbase.InvalidColumnNameException:
foobar is missing the colon family/qualifier separator
>         at org.apache.hadoop.hbase.HStoreKey.getColonOffset(HStoreKey.java:335)
>         at org.apache.hadoop.hbase.HStoreKey.extractFamily(HStoreKey.java:295)
>         at org.apache.hadoop.hbase.HRegion.checkColumn(HRegion.java:1676)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1191)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1154)
>         at org.apache.hadoop.hbase.HRegionServer.get(HRegionServer.java:1402)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:413)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:901)
> 08/05/29 20:35:10 DEBUG hbase.HTable: Trying to contact region server for row 'todd',
but failed after 5 attempts.
> Exception 1:
> org.apache.hadoop.hbase.InvalidColumnNameException: org.apache.hadoop.hbase.InvalidColumnNameException:
foobar is missing the colon family/qualifier separator
>         at org.apache.hadoop.hbase.HStoreKey.getColonOffset(HStoreKey.java:335)
>         at org.apache.hadoop.hbase.HStoreKey.extractFamily(HStoreKey.java:295)
>         at org.apache.hadoop.hbase.HRegion.checkColumn(HRegion.java:1676)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1191)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1154)
>         at org.apache.hadoop.hbase.HRegionServer.get(HRegionServer.java:1402)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:413)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:901)
> Exception 1:
> org.apache.hadoop.hbase.InvalidColumnNameException: org.apache.hadoop.hbase.InvalidColumnNameException:
foobar is missing the colon family/qualifier separator
>         at org.apache.hadoop.hbase.HStoreKey.getColonOffset(HStoreKey.java:335)
>         at org.apache.hadoop.hbase.HStoreKey.extractFamily(HStoreKey.java:295)
>         at org.apache.hadoop.hbase.HRegion.checkColumn(HRegion.java:1676)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1191)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1154)
>         at org.apache.hadoop.hbase.HRegionServer.get(HRegionServer.java:1402)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:413)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:901)
> Exception 1:
> org.apache.hadoop.hbase.InvalidColumnNameException: org.apache.hadoop.hbase.InvalidColumnNameException:
foobar is missing the colon family/qualifier separator
>         at org.apache.hadoop.hbase.HStoreKey.getColonOffset(HStoreKey.java:335)
>         at org.apache.hadoop.hbase.HStoreKey.extractFamily(HStoreKey.java:295)
>         at org.apache.hadoop.hbase.HRegion.checkColumn(HRegion.java:1676)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1191)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1154)
>         at org.apache.hadoop.hbase.HRegionServer.get(HRegionServer.java:1402)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:413)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:901)
> Exception 1:
> org.apache.hadoop.hbase.InvalidColumnNameException: org.apache.hadoop.hbase.InvalidColumnNameException:
foobar is missing the colon family/qualifier separator
>         at org.apache.hadoop.hbase.HStoreKey.getColonOffset(HStoreKey.java:335)
>         at org.apache.hadoop.hbase.HStoreKey.extractFamily(HStoreKey.java:295)
>         at org.apache.hadoop.hbase.HRegion.checkColumn(HRegion.java:1676)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1191)
>         at org.apache.hadoop.hbase.HRegion.get(HRegion.java:1154)
>         at org.apache.hadoop.hbase.HRegionServer.get(HRegionServer.java:1402)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.hadoop.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:413)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:901)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message