Qifan Chen created TRAFODION-1431:
-------------------------------------

             Summary: Compiler dumps core when compiling load transform query 
with ESP colocation feature is on
                 Key: TRAFODION-1431
                 URL: https://issues.apache.org/jira/browse/TRAFODION-1431
             Project: Apache Trafodion
          Issue Type: Bug
          Components: sql-cmp
    Affects Versions: 1.1 (pre-incubation)
            Reporter: Qifan Chen


Conditions. 

1.  The query loads data into a salted HBase table. 
2. The ESP colocation feature is turned on (via CQD TRAF_ALLOW_ESP_COLOCATION 
'ON')


The stack trace is as follows. 

#7  NAHeap::unlinkLargeFragment (this=0x7fca76a004c8, treeFrag=0x7fca70350ea0)
    at ../common/NAMemory.cpp:1869
#8  0x00007fca95a4d463 in unlinkFragment (this=0x7fca76a004c8, addr=<value 
optimized out>)
    at ../common/NAMemory.cpp:1957
#9  NAHeap::deallocateHeapMemory (this=0x7fca76a004c8, addr=<value optimized 
out>)
    at ../common/NAMemory.cpp:3625
#10 0x00007fca90b17aba in NodeMap::getPopularNodeNumber (this=0x7fca73b73de8, 
    beginPos=<value optimized out>, endPos=5) at ../optimizer/NodeMap.cpp:1305
#11 0x00007fca90bef2eb in FileScan::synthHbaseScanPhysicalProperty 
(this=0x7fca7034e0b8, 
    context=0x7fca7034a700, planNumber=<value optimized out>, sortOrderVEG=...)
    at ../optimizer/OptPhysRelExpr.cpp:15046
#12 0x00007fca90bf2f70 in FileScan::synthPhysicalProperty (this=0x7fca7034e0b8, 
    myContext=0x7fca7034a700, planNumber=-1, pws=<value optimized out>)


Root cause analysis.  During compilation for the load transform query, the 
partition function for scans is range partitioned. The node ID field in the 
node map for a range partitioning function is always -1.   In the method to 
find out the most populate node for an ESP, the node Id value of -1 is used to 
access the -1th entry in the frequency array. Hence the crash. 

Repair: the Node Id population logic is moved to createNodeMapForHbase() and 
all code paths to create a node map for HBase table will go through the 
function.  In addition, a check is added to prevent writing to the -1th entry 
in the array. 

Workaround: turn off the CQD (set to 'off'). 



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

Reply via email to