You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Shunsuke Nakamura (JIRA)" <ji...@apache.org> on 2014/10/25 08:19:34 UTC

[jira] [Commented] (PHOENIX-1381) NPE in CellUtil.matchingFamily() for IndexedKeyValue

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

Shunsuke Nakamura commented on PHOENIX-1381:
--------------------------------------------

I tried your patch + my another one, PHOENIX-1379. I checked it works well in the following scenario:

# Start HBase-0.98.7 in standalone mode
# Create phoenix table & the local index  and upsert a few rows 
# Kill HBase process without flushing the table
# Restart HBase
# Region recovered and reopened successfully
# Check stored rows by phoenix query

Thank you for patch.

> NPE in CellUtil.matchingFamily() for IndexedKeyValue
> ----------------------------------------------------
>
>                 Key: PHOENIX-1381
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1381
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.1
>         Environment: hbase 0.98.4+
>            Reporter: Shunsuke Nakamura
>            Priority: Critical
>         Attachments: PHOENIX-1381.patch
>
>
> NPE in replayRecoveredEdits of phoenix table with local index:
> {code}
> 2014-10-16 10:54:29,871 ERROR [RS_OPEN_REGION-XX.XX.XX.XX:53489-1] handler.OpenRegionHandler: Failed open of region=USERTABLE,,1413366337840.f170ee16e795c42b607b962a557a8c2c., starting to roll back the global memstore size.
> java.lang.NullPointerException
>         at org.apache.hadoop.hbase.util.Bytes.toShort(Bytes.java:845)
>         at org.apache.hadoop.hbase.util.Bytes.toShort(Bytes.java:832)
>         at org.apache.hadoop.hbase.KeyValue.getRowLength(KeyValue.java:1303)
>         at org.apache.hadoop.hbase.KeyValue.getFamilyOffset(KeyValue.java:1319)
>         at org.apache.hadoop.hbase.CellUtil.matchingFamily(CellUtil.java:329)
>         at org.apache.hadoop.hbase.CellUtil.matchingColumn(CellUtil.java:344)
>         at org.apache.hadoop.hbase.regionserver.wal.WALEdit.getCompaction(WALEdit.java:285)
>         at org.apache.hadoop.hbase.regionserver.HRegion.replayRecoveredEdits(HRegion.java:3271)
>         at org.apache.hadoop.hbase.regionserver.HRegion.replayRecoveredEditsIfAny(HRegion.java:3135)
> {code}
> IndexedKeyValue is an incomplete Cell implementation. Then a part of CellUtil methods such as matchingFamily don't work well for the IndexedKeyValue. 
> With HBase-0.98.4+, this issue can be caused because the matching by kv.matchingColumn in WALEdit.getCompaction was replaced with CellUtils's one at HBASE-11475. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)