hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mingjui Ray Liao (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HBASE-1912) When adding a secondary index to an existing table, it will cause NPE during re-indexing.
Date Fri, 16 Oct 2009 10:19:31 GMT

     [ https://issues.apache.org/jira/browse/HBASE-1912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Mingjui Ray Liao updated HBASE-1912:

    Attachment: IndexSpecification.patch

IndexedTableTest.java is the application for triggering the problem.
hbase-site.xml is the configuration used.

The cause of the NPE is that inside IndexMaintenanceUtils.createIndexUpdate function, 
it attempts to iterate through IndexSpecification's additionalColumns without first
    checking for null assignment. 
    for (byte[] col : indexSpec.getAdditionalColumns()) 
    { /* will NPE if additionalColumns = null }
    There are many places that will attempts to get additionalColumns from the IndexSpecification.
    It is best to assign a zero length byte[][] inside the constructor, if the additionalColumns
is null.

> When adding a secondary index to an existing table, it will cause NPE during re-indexing.

> ------------------------------------------------------------------------------------------
>                 Key: HBASE-1912
>                 URL: https://issues.apache.org/jira/browse/HBASE-1912
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: contrib
>    Affects Versions: 0.20.0, 0.20.1
>            Reporter: Mingjui Ray Liao
>            Priority: Minor
>         Attachments: hbase-site.xml, IndexedTableTest.java, IndexSpecification.patch
> When adding a secondary index to an existing table, an IndexSpecification must be constructed.
> If we construct a simple index using the following constructor: IndexSpecification(String
indexId, byte[] indexedColumn), then the program will cause NPE during re-indexing. 
> Exception in thread "main" java.lang.NullPointerException
>         at org.apache.hadoop.hbase.regionserver.tableindexed.IndexMaintenanceUtils.createIndexUpdate(IndexMaintenanceUtils.java:57)
>         at org.apache.hadoop.hbase.client.tableindexed.IndexedTableAdmin.reIndexTable(IndexedTableAdmin.java:144)
>         at org.apache.hadoop.hbase.client.tableindexed.IndexedTableAdmin.addIndex(IndexedTableAdmin.java:132)
>         at MyIndexedTable.addSecondaryIndexToExistingTable(MyIndexedTable.java:256)
>         at MyIndexedTable.main(MyIndexedTable.java:276)

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

View raw message