hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Huned Lokhandwala (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5837) hbase shell deleteall to .META. allows insertion of malformed rowkey
Date Mon, 12 Aug 2013 22:09:49 GMT

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

Huned Lokhandwala commented on HBASE-5837:
------------------------------------------


Hi,

On HBase 0.95 build, trying to add a delete command with a future timestamp for a row fails
with errors as below. But on HBase 0.94 this works with no problems. This seems like a loss
of backward compatibility with HBase 0.94.

Commands below:

[]$ hbase version
2013-08-12 20:26:33,468 INFO main util.VersionInfo: HBase 0.95.2.2.0.5.0-27

[]$ hbase shell
2013-08-12 20:26:41,054 WARN main conf.Configuration: hadoop.native.lib is deprecated. Instead,
use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.95.2.2.0.5.0-27, rUnknown, Sun Aug 11 07:31:44 PDT 2013

hbase(main):003:0* create 'testtable', 'f1'
0 row(s) in 1.8670 seconds
=> Hbase::Table - testtable

hbase(main):004:0> exists 'testtable'
Table testtable does exist 
0 row(s) in 0.0580 seconds

hbase(main):006:0* put 'testtable', '1', 'f1:q1', 'value-1', 20
0 row(s) in 0.0660 seconds

hbase(main):007:0> delete 'testtable', '2', 'f1:q1', 9223372036854775806
ERROR: Row Not Found
Here is some help for this command:
Put a delete cell value at specified table/row/column and optionally
timestamp coordinates. Deletes must match the deleted cell's
coordinates exactly. When scanning, a delete cell suppresses older
versions. To delete a cell from 't1' at row 'r1' under column 'c1'
marked with the time 'ts1', do:
hbase> delete 't1', 'r1', 'c1', ts1
The same command can also be run on a table reference. Suppose you had a reference
t to table 't1', the corresponding command would be:
hbase> t.delete 'r1', 'c1', ts1


                
> hbase shell deleteall to .META. allows insertion of malformed rowkey
> --------------------------------------------------------------------
>
>                 Key: HBASE-5837
>                 URL: https://issues.apache.org/jira/browse/HBASE-5837
>             Project: HBase
>          Issue Type: Bug
>          Components: master, shell
>    Affects Versions: 0.90.6, 0.95.2
>            Reporter: Jonathan Hsieh
>            Assignee: Ricky Saltzer
>             Fix For: 0.95.0
>
>         Attachments: HBASE-5837.patch
>
>
> When using the hbase shell to manipulate meta entries, one is allowed to 'delete' malformed
rows (entries with less than 2 ascii 44 ',' chars).  When this happens HBase servers may go
down and the cluster will not be restartable without manual intervention.  
> The delete results in a durable malformed rowkey in .META.'s memstore, .META.'s HLog,
and eventually .META.'s HFiles.  Subsequent scans to meta (such as when a HMaster starts)
fail in the scanner because the comparator fails.  In the case of an HMaster startup, it causes
an abort that kills the HMaster process.
> {code}
> 12/04/18 22:07:34 FATAL master.HMaster: Unhandled exception. Starting shutdown.
> org.apache.hadoop.ipc.RemoteException: java.io.IOException: java.lang.IllegalArgumentException:
No 44 in <blah,1334744821162.81f2df35c332dd2d3bb966fb5b419568.>, length=47, offset=54
> at org.apache.hadoop.hbase.regionserver.HRegionServer.convertThrowableToIOE(HRegionServer.java:990)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.convertThrowableToIOE(HRegionServer.java:979)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.next(HRegionServer.java:1894)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.next(HRegionServer.java:1834)
> at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:570)
> at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1039)
> Caused by: java.lang.IllegalArgumentException: No 44 in <blah,1334744821162.81f2df35c332dd2d3bb966fb5b419568.>,
length=47, offset=54
> at org.apache.hadoop.hbase.KeyValue.getRequiredDelimiterInReverse(KeyValue.java:1300)
> at org.apache.hadoop.hbase.KeyValue$MetaKeyComparator.compareRows(KeyValue.java:1846)
> at org.apache.hadoop.hbase.regionserver.ScanQueryMatcher.match(ScanQueryMatcher.java:130)
> at org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:257)
> at org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:114)
> at org.apache.hadoop.hbase.regionserver.HRegion$RegionScanner.nextInternal(HRegion.java:2435)
> at org.apache.hadoop.hbase.regionserver.HRegion$RegionScanner.next(HRegion.java:2391)
> at org.apache.hadoop.hbase.regionserver.HRegion$RegionScanner.next(HRegion.java:2408)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.next(HRegionServer.java:1870)
> ... 6 more
> at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:771)
> at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257)
> at $Proxy9.next(Unknown Source)
> at org.apache.hadoop.hbase.catalog.MetaReader.fullScan(MetaReader.java:264)
> at org.apache.hadoop.hbase.catalog.MetaReader.fullScan(MetaReader.java:237)
> at org.apache.hadoop.hbase.catalog.MetaReader.fullScanOfResults(MetaReader.java:220)
> at org.apache.hadoop.hbase.master.AssignmentManager.rebuildUserRegions(AssignmentManager.java:1580)
> at org.apache.hadoop.hbase.master.AssignmentManager.processFailover(AssignmentManager.java:221)
> at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:422)
> at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:295)
> 12/04/18 22:07:34 INFO master.HMaster: Aborting 
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message