[
https://issues.apache.org/jira/browse/TRAFODION-2783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16219964#comment-16219964
]
Selvaganesan Govindarajan commented on TRAFODION-2783:
------------------------------------------------------
In case of Type 2 JDBC driver, the Trafodion SQL engine is a library that is
dynamic loaded into the process. Initialization of C++ static objects in the
dynamic loaded libraries are supposed to be done before dlopen returns. But the
behavior seems to be nondeterministic when there are multiple threads or when
there are e dependent static objects (An static object expects another to be
initialized before it). I think, the order of the initialization is not
guaranteed by the standard.
> jdbc_test_cdh fails at times with type 2 JDBC driver dumping core
> -----------------------------------------------------------------
>
> Key: TRAFODION-2783
> URL: https://issues.apache.org/jira/browse/TRAFODION-2783
> Project: Apache Trafodion
> Issue Type: Bug
> Components: sql-general
> Affects Versions: any
> Reporter: Selvaganesan Govindarajan
> Assignee: Selvaganesan Govindarajan
> Fix For: 2.3-incubating
>
>
> The stack trace of the core is
> Thread 1 (Thread 0x7fad11e95700 (LWP 38697)):
> #0 0x00007fad110a95f7 in raise () from /lib64/libc.so.6
> #1 0x00007fad110aace8 in abort () from /lib64/libc.so.6
> 2 0x00007fad0fecb9d5 in __gnu_cxx::__verbose_terminate_handler() () from
> /lib64/libstdc++.so.6
> #3 0x00007fad0fec9946 in ?? () from /lib64/libstdc++.so.6
> #4 0x00007fad0fec9973 in std::terminate() () from /lib64/libstdc++.so.6
> #5 0x00007fad0feca4df in __cxa_pure_virtual () from /lib64/libstdc++.so.6
> #6 0x00007fad109ebc76 in outputStream::print_cr(char const*, ...) () from
> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/amd64/server/libjvm.so
> #7 0x00007fad10b7ca07 in VMError::report(outputStream*) () from
> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/amd64/server/libjvm.so
> #8 0x00007fad10b7e69f in VMError::report_and_die() () from
> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/amd64/server/libjvm.so
> #9 0x00007fad109e85c7 in JVM_handle_linux_signal () from
> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/amd64/server/libjvm.so
> #10 0x00007fad109dc848 in signalHandler(int, siginfo_t*, void*) () from
> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/amd64/server/libjvm.so
> #11 <signal handler called>
> #12 0x00007facf1afbfad in NACollection<CollationInfo const*>::constEntry
> (this=0x7facf1f25440 <CharInfo::builtinCollationDB_>, ix=0) at
> ../common/Collections.h:410
> #13 0x00007facf1afb786 in NAList<CollationInfo const*>::operator[]
> (this=0x7facf1f25440 <CharInfo::builtinCollationDB_>, i=0) at
> ../common/Collections.cpp:924
> #14 0x00007facf1afb014 in NAList<CollationInfo const*>::at
> (this=0x7facf1f25440 <CharInfo::builtinCollationDB_>, i=0) at
> ../common/Collections.h:2058
> #15 0x00007facf1afa2be in CollationDB::getCollationInfo (this=0x7facf1f25440
> <CharInfo::builtinCollationDB_>, co=CharInfo::DefaultCollation) at
> ../common/charinfo.cpp:455
> #16 0x00007facf1afa34f in CollationDB::getCollationName (this=0x7facf1f25440
> <CharInfo::builtinCollationDB_>, co=CharInfo::DefaultCollation,
> retUnknownAsBlank=0) at ../common/charinfo.cpp:466
> #17 0x00007facf1afa649 in CharInfo::getCollationName
> (co=CharInfo::DefaultCollation, retUnknownAsBlank=0) at
> ../common/charinfo.cpp:584
> #18 0x00007facf1b7ecad in NAType::convertTypeToText (text=0x7fad11e8e6c0 "INT
> UNSIGNED", fs_datatype=0, length=60, precision=0, scale=0,
> datetimestart=REC_DATE_UNKNOWN, datetimeend=REC_DATE_UNKNOWN,
> datetimefractprec=0, intervalleadingprec=0, upshift=0, caseinsensitive=0,
> charSet=CharInfo::ISO88591, collation=CharInfo::DefaultCollation,
> displaydatatype=0x0, displayCaseSpecific=0) at ../common/NAType.cpp:693
> #19 0x00007face933bc7a in Generator::createColDescs (tableName=0x7facea48af18
> "EXPLAIN__", columnInfo=0x7face97d4c00 <explainVirtTableColumnInfo>,
> numCols=14, offset=@0x7fad11e8e8c4: 66, space=0x0) at
> ../generator/Generator.cpp:1444
> #20 0x00007face93784ff in ExplainFunc::createVirtualTableDesc
> (this=0x7fad11e8ec90) at ../generator/GenExplain.cpp:2233
> #21 0x00007face944b484 in RelRoot::codeGen (this=0x7facd61a7a50,
> generator=0x7fad11e90c60) at ../generator/GenRelMisc.cpp:1226
> #22 0x00007face9339d6b in Generator::genCode (this=0x7fad11e90c60,
> source=0x7facd9cebd08 "select object_name from \"_MD_\".OBJECTS where
> CATALOG_NAME = 'TRAFODION' and SCHEMA_NAME = '_MD_'\n and OBJECT_NAME =
> 'OBJECTS' and OBJECT_TYPE = 'BT' for browse access",
> expr_node=0x7facd61a7a50) at ../generator/Generator.cpp:577
> #23 0x00007facebe6763b in CmpMain::compile (this=0x7fad11e92d60,
> input_str=0x7facd9cebd08 "select object_name from \"_MD_\".OBJECTS where
> CATALOG_NAME = 'TRAFODION' and SCHEMA_NAME = '_MD_'\n and OBJECT_NAME =
> 'OBJECTS' and OBJECT_TYPE = 'BT' for browse access", charset=15,
> queryExpr=@0x7fad11e92bb8: 0x7facd61a7a50, gen_code=0x7facd9cda718,
> gen_code_len=0x7facd9cda710, heap=0x7facdfab40b8, phase=CmpMain::END,
> fragmentDir=0x7fad11e92df0, op=3004, useQueryCache=CmpMain::NORMAL,
> cacheable=0x7fad11e92ba4, begTime=0x7fad11e92bc0, shouldLog=0) at
> ../sqlcomp/CmpMain.cpp:2453
> #24 0x00007facebe65170 in CmpMain::sqlcomp (this=0x7fad11e92d60,
> input_str=0x7facd9cebd08 "select object_name from \"_MD_\".OBJECTS where
> CATALOG_NAME = 'TRAFODION' and SCHEMA_NAME = '_MD_'\n and OBJECT_NAME =
> 'OBJECTS' and OBJECT_TYPE = 'BT' for browse access", charset=15,
> queryExpr=@0x7fad11e92bb8: 0x7facd61a7a50, gen_code=0x7facd9cda718,
> gen_code_len=0x7facd9cda710, heap=0x7facdfab40b8, phase=CmpMain::END,
> fragmentDir=0x7fad11e92df0, op=3004, useQueryCache=CmpMain::NORMAL,
> cacheable=0x7fad11e92ba4, begTime=0x7fad11e92bc0, shouldLog=0) at
> ../sqlcomp/CmpMain.cpp:1730
> #25 0x00007facebe629e1 in CmpMain::sqlcomp (this=0x7fad11e92d60, input=...,
> gen_code=0x7facd9cda718, gen_code_len=0x7facd9cda710, heap=0x7facdfab40b8,
> phase=CmpMain::END, fragmentDir=0x7fad11e92df0, op=3004,
> useQueryCache=CmpMain::NORMAL) at ../sqlcomp/CmpMain.cpp:826
> #26 0x00007facf1fac799 in CmpStatement::process (this=0x7facd9cd1f88,
> sqltext=...) at ../arkcmp/CmpStatement.cpp:511
> #27 0x00007facf1f9c1b0 in CmpContext::compileDirect (this=0x7facdf19c090,
> data=0x7facdfad15d8 "p", data_len=280, outHeap=0x7facdfca6db8, charset=15,
> op=CmpMessageObj::SQLTEXT_COMPILE, gen_code=@0x7fad11e932a0: 0x0,
> gen_code_len=@0x7fad11e932ac: 0, parserFlags=0, parentQid=0x0,
> parentQidLen=0, diagsArea=0x7facdfad16f8) at ../arkcmp/CmpContext.cpp:905
> #28 0x00007facf0671277 in CliStatement::prepare2 (this=0x7facdfac17d0,
> source=0x7facdfab70e0 "select object_name from \"_MD_\".OBJECTS where
> CATALOG_NAME = 'TRAFODION' and SCHEMA_NAME = '_MD_'\n and OBJECT_NAME =
> 'OBJECTS' and OBJECT_TYPE = 'BT' for browse access", diagsArea=...,
> passed_gen_code=0x0, passed_gen_code_len=0, charset=15, unpackTdbs=1,
> cliFlags=144) at ../cli/Statement.cpp:1803
> #29 0x00007facf0670368 in CliStatement::prepare (this=0x7facdfac17d0,
> source=0x7facdfab70e0 "select object_name from \"_MD_\".OBJECTS where
> CATALOG_NAME = 'TRAFODION' and SCHEMA_NAME = '_MD_'\n and OBJECT_NAME =
> 'OBJECTS' and OBJECT_TYPE = 'BT' for browse access", diagsArea=...,
> passed_gen_code=0x0, passed_gen_code_len=0, charset=15, unpackTdbs=1,
> cliFlags=144) at ../cli/Statement.cpp:1451
> #30 0x00007facf05e6723 in SQLCLI_Prepare (cliGlobals=0x4770970,
> statement_id=0x4df4ef0, sql_source=0x7fad11e93540) at ../cli/Cli.cpp:5746
> #31 0x00007facf0690e22 in SQL_EXEC_Prepare (statement_id=0x4df4ef0,
> sql_source=0x7fad11e93540) at ../cli/CliExtern.cpp:5151
> #32 0x00007facf2fa1950 in PREPARE (pSrvrStmt=0x4df48e0) at
> native/SqlInterface.cpp:1490
> #33 0x00007facf2f9ba29 in SRVR_STMT_HDL::Prepare (this=0x4df48e0,
> inSqlString=0x7fad11e93800, inStmtType=0, inHoldability=2, inQueryTimeout=0,
> isISUD=false) at native/CSrvrStmt.cpp:186
> #34 0x00007facf2f9c2f6 in SRVR_STMT_HDL::ExecDirect (this=0x4df48e0,
> inCursorName=0x0, inSqlString=0x7fad11e93800, inStmtType=0, inSqlStmtType=1,
> inHoldability=2, inQueryTimeout=0) at native/CSrvrStmt.cpp:411
> #35 0x00007facf2fbce53 in odbc_SQLSvc_ExecDirect_sme_ (objtag_=0x0,
> call_id_=0x0, exception_=0x7fad11e937e0, dialogueId=65190064,
> stmtLabel=0x4ab2a80 "STMT1", cursorName=0x0, stmtExplainLabel=0x7facf2fcf394
> "", stmtType=0, sqlStmtType=1, sqlString=0x7fad11e93800, holdability=2,
> queryTimeout=0, resultSet=140381306567080, estimatedCost=0x7fad11e93868,
> outputDesc=0x7fad11e93840, rowsAffected=0x7fad11e93860,
> sqlWarning=0x7fad11e93850, stmtId=0x7fad11e93830, currentStmtId=0) at
> native/SrvrOthers.cpp:677
> #36 0x00007facf2fb657e in
> Java_org_apache_trafodion_jdbc_t2_SQLMXStatement_executeDirect
> (jenv=0x221d1e0, jobj=0x7fad11e93a10, server=0x0, dialogueId=65190064,
> txid=0, autoCommit=1 '\001', txnMode=2, stmtLabel=0x7fad11e939d8,
> cursorName=0x0, sql=0x7fad11e939c8, isSelect=1 '\001', queryTimeout=0,
> holdability=2, resultSet=0x7fad11e939a8, currentStmtId=0) at
> native/SQLMXStatement.cpp:144
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)