T2 Phoenix tests creating cores at CliStatement::doOltExecute

Bug #1440941 reported by Aruna Sadashiva on 2015-04-07
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Trafodion
Fix Committed
High
Weiqing Xu

Bug Description

These T2 phoenix tests are dumping core from 3/29 build. Stack trace is below.

ProductMetricsTest
QueryExecTest
VariableLengthPKTest

We are also seeing errors such as this from other tests (which are not coring), which are also date/time related:

java.sql.SQLException: *** ERROR[8415] The provided DATE, TIME, or TIMESTAMP is not valid and cannot be converted.
        at org.trafodion.jdbc.t2.SQLMXPreparedStatement.execute(Native Method)
        at org.trafodion.jdbc.t2.SQLMXPreparedStatement.execute(SQLMXPreparedStatement.java:523)
        at test.java.com.hp.phoenix.end2end.ToNumberFunctionTest.initTable(ToNumberFunctionTest.java:141)
        at test.java.com.hp.phoenix.end2end.ToNumberFunctionTest.testTimeFilterWithoutPattern(ToNumberFunctionTest.java:350)
test.java.com.hp.phoenix.end2end.ToNumberFunctionTest
*** ERROR[20123] A user-defined transaction has been started. This DDL operation cannot be performed.
Invalid Statement/Connection handle

Stack:
#0 0x00007ffff703f625 in raise () from /lib64/libc.so.6
#1 0x00007ffff7040d8d in abort () from /lib64/libc.so.6
#2 0x00007ffff6222c55 in os::abort(bool) ()
   from /usr/java/jdk1.7.0_75/jre/lib/amd64/server/libjvm.so
#3 0x00007ffff63a4cd7 in VMError::report_and_die() ()
   from /usr/java/jdk1.7.0_75/jre/lib/amd64/server/libjvm.so
#4 0x00007ffff6227b6f in JVM_handle_linux_signal ()
   from /usr/java/jdk1.7.0_75/jre/lib/amd64/server/libjvm.so
#5 <signal handler called>
#6 ExpDatetime::convAsciiToDatetime (this=0x7ffff7fd6380,
    srcData=0x7b4800 "\027", srcLen=808583191, dstData=0x7fff9d5e7c67 "",
    dstLen=11, heap=0x7fff9d584258, diagsArea=0x7ffff7fd6900, flags=0)
    at ../exp/exp_datetime.cpp:1916
#7 0x00007ffface10ba2 in convAsciiToDatetime (target=0x7fff9d5e7c67 "",
    targetLen=11, code=REC_DTCODE_TIMESTAMP,
    fractionPrecision=<optimized out>, source=0x7b4800 "\027",
    sourceLen=<optimized out>, heap=0x7fff9d584258, diagsArea=0x7ffff7fd6900,
    flags=0) at ../exp/exp_conv.cpp:1362
#8 0x00007ffface147b1 in convDoIt (source=0x7b4800 "\027",
    sourceLen=808583191, sourceType=64, sourcePrecision=0, sourceScale=1,
    target=0x7fff9d5e7c67 "", targetLen=11, targetType=192, targetPrecision=3,
    targetScale=6, varCharLen=0x0, varCharLenSize=0, heap=0x7fff9d584258,
    diagsArea=0x7ffff7fd6900, index=CONV_ASCII_DATETIME,
---Type <return> to continue, or q <return> to quit---
    dataConversionErrorFlag=0x0, flags=0) at ../exp/exp_conv.cpp:9161
#9 0x00007fffae36e935 in InputOutputExpr::inputValues (this=0x7fff9d5ac8a0,
    atp=<optimized out>, inputDesc_=<optimized out>, tolerateNonFatalError=0,
    heap=0x7fff9d584258, flags=<optimized out>)
    at ../cli/CliExpExchange.cpp:4202
#10 0x00007fffaea05881 in ex_root_tcb::oltExecute (this=0x7fff9d5e7a20, glob=
    0x7fff9d5a8ed8, input_desc=0x7fff9d585638, output_desc=0x0, diagsArea=
    @0x7ffff7fd6af0: 0x0) at ../executor/ex_root.cpp:2114
#11 0x00007fffae3aec65 in CliStatement::doOltExecute (this=0x7fff9d584198,
    cliGlobals=<optimized out>, input_desc=0x7fff9d585638, output_desc=0x0,
    diagsArea=..., doNormalExecute=@0x7ffff7fd6c0c: 0,
    reExecute=@0x7ffff7fd6c08: 0) at ../cli/Statement.cpp:5537
#12 0x00007fffae35baeb in SQLCLI_PerformTasks(CliGlobals *, ULng32, SQLSTMT_ID *, SQLDESC_ID *, SQLDESC_ID *, Lng32, Lng32, typedef __va_list_tag __va_list_tag *, SQLCLI_PTR_PAIRS *, SQLCLI_PTR_PAIRS *) (cliGlobals=0x180a090, tasks=8063,
    statement_id=0xe98770, input_descriptor=0xe987a0, output_descriptor=0x0,
    num_input_ptr_pairs=0, num_output_ptr_pairs=0, ap=0x7ffff7fd6c90,
    input_ptr_pairs=0x0, output_ptr_pairs=0x0) at ../cli/Cli.cpp:3245
#13 0x00007fffae3c1599 in SQL_EXEC_ClearExecFetchClose (statement_id=0xe98770,
    input_descriptor=0xe987a0, output_descriptor=0x0, num_input_ptr_pairs=0,
    num_output_ptr_pairs=0, num_total_ptr_pairs=0) at ../cli/CliExtern.cpp:2627
#14 0x00007fffb0471cdc in EXECUTE (pSrvrStmt=0xe98160)
    at native/SqlInterface.cpp:1126
---Type <return> to continue, or q <return> to quit---
#15 0x00007fffb046cf2e in SRVR_STMT_HDL::Execute (this=0xe98160,
    inCursorName=0x0, totalRowCount=<optimized out>, inSqlStmtType=0,
    inValueList=0x7ffff7fd7130, inSqlAsyncEnable=<optimized out>,
    inQueryTimeout=0, outValueList=0x7ffff7fd7140) at native/CSrvrStmt.cpp:238
#16 0x00007fffb04828bc in odbc_SQLSvc_ExecuteN_sme_ (objtag_=<optimized out>,
    call_id_=<optimized out>, exception_=0x7ffff7fd7100,
    dialogueId=<optimized out>, stmtId=<optimized out>, cursorName=0x0,
    sqlStmtType=0, totalRowCount=1, inputValueList=0x7ffff7fd7130,
    sqlAsyncEnable=0, queryTimeout=0, outputValueList=0x7ffff7fd7140,
    sqlWarning=0x7ffff7fd7150) at native/SrvrOthers.cpp:302
#17 0x00007fffb047b7ac in Java_org_trafodion_jdbc_t2_SQLMXPreparedStatement_execute (jenv=<optimized out>, jobj=0x7ffff7fd7340, server=<optimized out>,
    dialogueId=17711088, txid=0, autoCommit=1 '\001', txnMode=2,
    stmtId=15303008, cursorName=0x0, isSelect=0 '\000', paramRowCount=1,
    paramCount=9, paramValues=0x7ffff7fd72d8, queryTimeout=0,
    isAnyLob=0 '\000', iso88591Encoding=0x0, resultSet=0x0,
    contBatchOnError=0 '\000') at native/SQLMXPreparedStatement.cpp:362
#18 0x00007ffff21b37f8 in ?? ()
#19 0x0000000000000002 in ?? ()
#20 0x0000000000e98160 in ?? ()
#21 0x0000000000000000 in ?? ()
(gdb)

Changed in trafodion:
assignee: nobody → Pavani Puppala (pavani-puppala)
Pavani Puppala (pavani-puppala) wrote :

The problem is because the source length is too big. This pointed back to where we get the source length. For varchars the length is stored either in first two or first four bytes. That is checked by reading var indicator length to decide if the length is in the first two or four bytes. However T2 and T4 are not setting var indicator length for varchar types in input descriptors in T2 and T4. This need to be fixed.

tags: added: client-jdbc-t2
removed: sql-exe
Changed in trafodion:
assignee: Pavani Puppala (pavani-puppala) → nobody
tags: added: connectivity-mxosrvr
Changed in trafodion:
assignee: nobody → Kevin Xu (kai-hua-xu)
Chen-Yun Fan (chen-yun-fan) wrote :

Wei-Qing is taking care of this bug and doing the fixing, so I assigned to Wei-Qing.

Changed in trafodion:
assignee: Kevin Xu (kai-hua-xu) → Weiqing Xu (wei-qing-xu)
Weiqing Xu (wei-qing-xu) wrote :

The cores created because we treat Datetime type as VCHAR , but we didn't set VC_IND_LENGTH . It was fixed by setting the VC_IND_LENGTH with sizeof(short).

Changed in trafodion:
status: New → Fix Committed
Alice Chen (alchen) wrote :

Which review fixes this problem?

Weiqing Xu (wei-qing-xu) wrote :

Here is the code review for this problem : https://review.trafodion.org/#/c/1515/

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers