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
                hbase-site.xml
                IndexedTableTest.java

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. 
    i.e. 
    for (byte[] col : indexSpec.getAdditionalColumns()) 
    { /* will NPE if additionalColumns = null }
    
Solution:
    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.


Mime
View raw message