Sergey Soldatov created PHOENIX-3015:
----------------------------------------

             Summary: Any metadata changes may cause unpredictable result when 
local indexes are using
                 Key: PHOENIX-3015
                 URL: https://issues.apache.org/jira/browse/PHOENIX-3015
             Project: Phoenix
          Issue Type: Bug
            Reporter: Sergey Soldatov
            Priority: Critical


The problem code is in IndexHalfStoreFileReaderGenerator#preStoreFileReaderOpen:
{noformat}
                conn = 
QueryUtil.getConnection(ctx.getEnvironment().getConfiguration()).unwrap(
                            PhoenixConnection.class);
                PTable dataTable = PhoenixRuntime.getTable(conn, 
tableName.getNameAsString());
{noformat}
Use case:
1. create table & local index. Load some data.
2. Call split. 
3a. Add new local index. 
3b. Drop local index and recreate it.
4. Call split.
When the earlier mentioned code is executed during (2) it caches table into 
ConnectionQueryServicesImpl#latestMetaData . When it is executed during (4)  
dataTable is getting from cache and doesn't reflect information after (3a) or 
(3b). As the result the data for last created index will be lost during the 
split because of absence of index maintainer.

After looking into ConnectionQueryServicesImpl I don't understand how the cache 
was supposed to be updated, so any suggestions/comments are really appreciated. 
[~jamestaylor], [~rajeshbabu] FYI



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

Reply via email to