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

David Wayne Birdsall closed TRAFODION-2635.
-------------------------------------------

I have verified that the issue is fixed.

> Core on select count(*) using hbase cell access on a salted Trafodion table
> ---------------------------------------------------------------------------
>
>                 Key: TRAFODION-2635
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-2635
>             Project: Apache Trafodion
>          Issue Type: Bug
>          Components: sql-cmp
>    Affects Versions: 2.2-incubating
>         Environment: All
>            Reporter: David Wayne Birdsall
>            Assignee: David Wayne Birdsall
>             Fix For: 2.2-incubating
>
>
> The following sqlci script demonstrates the problem:
> set schema sch;
> create table t1 
> ( a int not null, b int, primary key (a) )
> salt using 4 partitions;
> prepare s1 from select count(*) from hbase."_CELL_"."TRAFODION.SCH.T1";
> When doing the prepare, sqlci cores. The stack trace is as follows:
> (gdb) bt
> #0  0x00007f2c6036a625 in raise () from /lib64/libc.so.6
> #1  0x00007f2c6036bd8d in abort () from /lib64/libc.so.6
> #2  0x00007f2c62145165 in ?? ()
>    from /usr/lib/jvm/java-1.7.0-openjdk.x86_64/jre/lib/amd64/server/libjvm.so
> #3  0x00007f2c622b985f in ?? ()
>    from /usr/lib/jvm/java-1.7.0-openjdk.x86_64/jre/lib/amd64/server/libjvm.so
> #4  0x00007f2c62149d02 in JVM_handle_linux_signal ()
>    from /usr/lib/jvm/java-1.7.0-openjdk.x86_64/jre/lib/amd64/server/libjvm.so
> #5  <signal handler called>
> #6  0x00000000004028ba in folly::fbstring_core<char>::category (this=0x10)
>     at ../export/FBString.h:1001
> #7  0x0000000000402890 in folly::fbstring_core<char>::size (this=0x10)
>     at ../export/FBString.h:803
> #8  0x000000000040285c in folly::basic_fbstring<char, std::char_traits<char>, 
> std::allocator<char>, folly::fbstring_core<char> >::size (this=0x10)
>     at ../export/FBString.h:1388
> #9  0x00007f2c5fd92318 in folly::basic_fbstring<char, std::char_traits<char>, 
> std::allocator<char>, folly::fbstring_core<char> >::find (this=0x10, 
>     needle=0x7f2c5898d71e "_ISO88591", pos=0, nsize=9)
>     at ../export/FBString.h:1960
> #10 0x00007f2c5fd8f899 in NAString::index (this=0x0, 
>     pattern=0x7f2c5898d71e "_ISO88591", plen=9, startIndex=0, 
>     cmp=NAString::exact) at ../export/NAStringDef.cpp:316
> #11 0x00007f2c629e89ac in NAString::index (this=0x0, 
>     s=0x7f2c5898d71e "_ISO88591", i=0, cmp=NAString::exact)
>     at ../export/NAStringDef.h:581
> #12 0x00007f2c588174e8 in ValueIdList::computeEncodedKey 
> (this=0x7f2c3c5886c0, 
>     tDesc=0x7f2c3e4dffd8, isMaxKey=0, encodedKeyBuffer=@0x7ffd8cf4cc80, 
>     keyBufLen=@0x7ffd8cf4cc7c) at ../optimizer/ValueDesc.cpp:6802
> #13 0x00007f2c5861df90 in 
> RangePartitioningFunction::computeNumOfActivePartitions (this=0x7f2c3e4e3300, 
> skey=0x7f2c3c5885b8, tDesc=0x7f2c3e4dffd8)
>     at ../optimizer/PartFunc.cpp:5110
> #14 0x00007f2c586a7d16 in FileScan::FileScan (this=0x7f2c3c587a10, 
>     tableName=..., tableDescPtr=0x7f2c3e4dffd8, indexDescPtr=0x7f2c3e4e17e0, 
>     isReverseScan=0, baseCardinality=@0x7ffd8cf4cf3c, accessOpts=..., 
>     groupAttributesPtr=0x7f2c3e4bd508, selectionPredicates=..., 
> disjuncts=..., 
>     generatedCCPreds=..., otype=REL_HBASE_ACCESS)
>     at ../optimizer/RelExpr.cpp:9671
> #15 0x00007f2c586a9fe2 in HbaseAccess::HbaseAccess (this=0x7f2c3c587a10, 
>     corrName=..., tableDesc=0x7f2c3e4dffd8, idx=0x7f2c3e4e17e0, 
>     isReverseScan=0, baseCardinality=@0x7ffd8cf4cf3c, accessOptions=..., 
>     groupAttributesPtr=0x7f2c3e4bd508, selectionPredicates=..., 
> disjuncts=..., 
>     generatedCCPreds=..., otype=REL_HBASE_ACCESS, oHeap=0x7f2c3e4d4b90)
>     at ../optimizer/RelExpr.cpp:10139
> #16 0x00007f2c5837b897 in createAndInsertHbaseScan (idesc=0x7f2c3e4e17e0, bef=
>     0x7f2c3e4bcd70, memory=@0x7ffd8cf4d460, disjunctsPtr=0x7f2c3c586ef8, 
>     generatedCCPreds=..., oc=SAME_ORDER, ixMdamFlag=MDAM_OFF)
>     at ../optimizer/ImplRule.cpp:1083
> #17 0x00007f2c5837ba99 in createAndInsertScan (idesc=0x7f2c3e4e17e0, 
>     bef=0x7f2c3e4bcd70, memory=@0x7ffd8cf4d460, disjunctsPtr=0x7f2c3c586ef8, 
>     generatedCCPreds=..., oc=SAME_ORDER, ixMdamFlag=MDAM_OFF, isHbase=1)
>     at ../optimizer/ImplRule.cpp:1122
> #18 0x00007f2c5837c0d0 in generateScanSubstitutes (before=0x7f2c3e4bcd70, 
>     context=0x7f2c3c5877e8, memory=@0x7ffd8cf4d460, isHbase=1)
>     at ../optimizer/ImplRule.cpp:1257
> #19 0x00007f2c5837d677 in HbaseScanRule::nextSubstitute (this=0x7f2c4d888d68, 
>     before=0x7f2c3e4bcd70, context=0x7f2c3c5877e8, memory=@0x7ffd8cf4d460)
>     at ../optimizer/ImplRule.cpp:1662
> #20 0x00007f2c587c2251 in ApplyRuleTask::perform (this=0x7f2c3c586920, 
>     taskId=11) at ../optimizer/tasks.cpp:1188
> #21 0x00007f2c5857d06d in QueryOptimizerDriver::optimizeAPassHelper (
>     this=0x7ffd8cf519b0, context=0x7f2c3c583c08) at ../optimizer/opt.cpp:7084
> #22 0x00007f2c5857cc00 in QueryOptimizerDriver::optimizeAPass (
>     this=0x7ffd8cf519b0, context=0x7f2c3c583c08) at ../optimizer/opt.cpp:7017
> #23 0x00007f2c5857c824 in QueryOptimizerDriver::doPass2PerhapsPass1 (
>     this=0x7ffd8cf519b0, relExpr=0x7f2c3e4bd868, context=0x7f2c3c583c08, 
>     original=0x7f2c3c57c530) at ../optimizer/opt.cpp:6944
> #24 0x00007f2c5857b80c in RelExpr::optimize2 (this=0x7f2c3e4bd868)
>     at ../optimizer/opt.cpp:6640
> #25 0x00007f2c585a5b6c in RelExpr::optimizeNode (this=0x7f2c3e4bd868)
>     at ../optimizer/OptLogRelExpr.cpp:76
> #26 0x00007f2c5a09cf27 in CmpMain::compile (this=0x7ffd8cf55370, 
>     input_str=0x7f2c3e4c3148 "select count(*) from 
> hbase.\"_CELL_\".\"TRAFODION.SCH.T1\";", charset=15, 
> queryExpr=@0x7ffd8cf55258, gen_code=0x7f2c3e4d6f10, 
>     gen_code_len=0x7f2c3e4d6f08, heap=0x7f2c630e26d0, phase=CmpMain::END, 
>     fragmentDir=0x7ffd8cf554c0, op=3004, useQueryCache=CmpMain::NORMAL, 
>     cacheable=0x7ffd8cf55244, begTime=0x7ffd8cf55260, shouldLog=0)
>     at ../sqlcomp/CmpMain.cpp:2319
> #27 0x00007f2c5a09ad05 in CmpMain::sqlcomp (this=0x7ffd8cf55370, 
>     input_str=0x7f2c3e4c3148 "select count(*) from 
> hbase.\"_CELL_\".\"TRAFODION.SCH.T1\";", charset=15, 
> queryExpr=@0x7ffd8cf55258, gen_code=0x7f2c3e4d6f10, 
>     gen_code_len=0x7f2c3e4d6f08, heap=0x7f2c630e26d0, phase=CmpMain::END, 
>     fragmentDir=0x7ffd8cf554c0, op=3004, useQueryCache=CmpMain::NORMAL, 
>     cacheable=0x7ffd8cf55244, begTime=0x7ffd8cf55260, shouldLog=0)
>     at ../sqlcomp/CmpMain.cpp:1701
> #28 0x00007f2c5a0985f5 in CmpMain::sqlcomp (this=0x7ffd8cf55370, input=..., 
>     gen_code=0x7f2c3e4d6f10, gen_code_len=0x7f2c3e4d6f08, 
> heap=0x7f2c630e26d0, 
>     phase=CmpMain::END, fragmentDir=0x7ffd8cf554c0, op=3004, 
>     useQueryCache=CmpMain::NORMAL) at ../sqlcomp/CmpMain.cpp:817
> #29 0x00007f2c5f5fbae0 in CmpStatement::process (this=0x7f2c3e4c2fb8, 
>     sqltext=...) at ../arkcmp/CmpStatement.cpp:507
> #30 0x00007f2c5f5eb0b1 in CmpContext::compileDirect (this=0x7f2c4d852090, 
> ---Type <return> to continue, or q <return> to quit---
>     data=0x7f2c630ef5e8 "p", data_len=168, outHeap=0x7f2c631510b8, 
> charset=15, 
>     op=CmpMessageObj::SQLTEXT_COMPILE, gen_code=@0x7ffd8cf55a00, 
>     gen_code_len=@0x7ffd8cf55a0c, parserFlags=0, parentQid=0x0, 
>     parentQidLen=0, diagsArea=0x7f2c630ef698) at ../arkcmp/CmpContext.cpp:906
> #31 0x00007f2c600a6435 in CliStatement::prepare2 (this=0x7f2c630e1f30, 
>     source=0x7f2c631242c8 "select count(*) from 
> hbase.\"_CELL_\".\"TRAFODION.SCH.T1\";", diagsArea=..., passed_gen_code=0x0, 
> passed_gen_code_len=0, 
>     charset=15, unpackTdbs=1, cliFlags=144) at ../cli/Statement.cpp:1752
> #32 0x00007f2c600a54e4 in CliStatement::prepare (this=0x7f2c630e1f30, 
>     source=0x7f2c631242c8 "select count(*) from 
> hbase.\"_CELL_\".\"TRAFODION.SCH.T1\";", diagsArea=..., passed_gen_code=0x0, 
> passed_gen_code_len=0, 
>     charset=15, unpackTdbs=1, cliFlags=144) at ../cli/Statement.cpp:1405
> #33 0x00007f2c60025960 in SQLCLI_Prepare2 (cliGlobals=0x1939b70, 
>     statement_id=0x41ca5d0, sql_source=0x5491ff0, gencode_ptr=0x0, 
>     gencode_len=0, ret_gencode_len=0x0, query_cost_info=0x7ffd8cf57090, 
>     query_comp_stats_info=0x7ffd8cf55e00, uniqueStmtId=0x7ffd8cf56f00 "    ", 
>     uniqueStmtIdLen=0x7ffd8cf57150, flags=128) at ../cli/Cli.cpp:5840
> #34 0x00007f2c600c535a in SQL_EXEC_Prepare2 (statement_id=0x41ca5d0, 
>     sql_source=0x5491ff0, gencode_ptr=0x0, gencode_len=0, 
> ret_gencode_len=0x0, 
>     query_cost_info=0x7ffd8cf57090, comp_stats_info=0x7ffd8cf55e00, 
>     uniqueStmtId=0x7ffd8cf56f00 "    ", uniqueStmtIdLen=0x7ffd8cf57150, 
>     flags=128) at ../cli/CliExtern.cpp:5132
> #35 0x00007f2c629eb806 in SqlCmd::do_prepare (sqlci_env=0x1922240, 
>     prep_stmt=0x486b8e0, 
>     sqlStmt=0x486bc00 "select count(*) from 
> hbase.\"_CELL_\".\"TRAFODION.SCH.T1\";", resetLastExecStmt=1, rsIndex=0, 
> prepcode=0x0, statisticsType=0x0)
>     at ../sqlci/SqlCmd.cpp:998
> #36 0x00007f2c629f19e8 in Prepare::process (this=0x44648d0, 
>     sqlci_env=0x1922240) at ../sqlci/SqlCmd.cpp:3066
> #37 0x00007f2c629d1e44 in Obey::process (this=0x5467b20, sqlci_env=0x1922240)
>     at ../sqlci/Obey.cpp:267
> #38 0x00007f2c629db008 in SqlciEnv::executeCommands (this=0x1922240, 
>     input_stmt=@0x7ffd8cf57448) at ../sqlci/SqlciEnv.cpp:841
> #39 0x00007f2c629da749 in SqlciEnv::run (this=0x1922240)
>     at ../sqlci/SqlciEnv.cpp:650
> #40 0x00000000004026d8 in main (argc=1, argv=0x7ffd8cf57608)
>     at ../bin/SqlciMain.cpp:328
> (gdb) 
> The problem is that ValueIdList::computeEncodedKey attempts to dereference a 
> null pointer.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to