Что может вызвать такой «двойной» стек? - PullRequest
0 голосов
/ 06 ноября 2019

Пользователь сообщил о сбое с драйвером ODBC, созданным с помощью нашего SDK, и предоставил два дампа памяти. Ниже я приведу трассировку стека:

Первый сбой:

    RDFODBC_sb64.dll!_wassert(const wchar_t * expr, const wchar_t * filename, unsigned int lineno) Line 369 C
    RDFODBC_sb64.dll!Simba::ODBC::ODBCTaskContainer::SetTask(Simba::ODBC::IODBCTask * in_taskPointer) Line 61   C++
    RDFODBC_sb64.dll!Simba::ODBC::Statement::~Statement() Line 413  C++
    RDFODBC_sb64.dll!Simba::ODBC::Statement::`scalar deleting destructor'(unsigned int) C++
    RDFODBC_sb64.dll!`anonymous namespace'::DeleteAndRemove<std::vector<Simba::ODBC::Statement * __ptr64,std::allocator<Simba::ODBC::Statement * __ptr64> > >(std::vector<Simba::ODBC::Statement *,std::allocator<Simba::ODBC::Statement *> > & in_vector, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<Simba::ODBC::Statement *> > > in_toDeleteAndRemove) Line 429   C++
    RDFODBC_sb64.dll!Simba::ODBC::Connection::DeleteStatement(Simba::ODBC::Statement * in_statement) Line 846   C++
    RDFODBC_sb64.dll!Simba::ODBC::ConnectionState::SQLFreeHandle(Simba::ODBC::Connection * in_connection, short HandleType, void * Handle) Line 179 C++
    RDFODBC_sb64.dll!Simba::ODBC::Connection::SQLFreeHandle(short HandleType, void * Handle) Line 1592  C++
    RDFODBC_sb64.dll!SQLFreeHandle::__l346::<lambda>() Line 1931    C++
    RDFODBC_sb64.dll!std::_Callable_obj<short <lambda>(void),0>::_ApplyX<short>() Line 284  C++
    RDFODBC_sb64.dll!std::_Func_impl<std::_Callable_obj<short <lambda>(void),0>,std::allocator<std::_Func_class<short> >,short>::_Do_call() Line 229    C++
    RDFODBC_sb64.dll!std::_Func_class<short>::operator()() Line 316 C++
    RDFODBC_sb64.dll!_default_sen_odbc_api_function_wrapper_(std::function<short __cdecl(void)> & apiFunction) Line 773 C++
    RDFODBC_sb64.dll!SQLFreeHandle(short HandleType, void * Handle) Line 2014   C++
    MPAPlugin.dll!SQLFreeHandle(short HandleType, void * Handle) Line 1786  C++
    odbc32.dll!FreeStmt()  Unknown
    odbc32.dll!SQLFreeHandle()  Unknown
    sasodb.dll!00000000064d7187()   Unknown
    sasodb.dll!00000000064c1b26()   Unknown
    sasioodb.dll!000000000638d6a6() Unknown
    sasxdbi.dll!0000000006456fe3()  Unknown
    sasxdbi.dll!0000000006417fdf()  Unknown
    sasyh.dll!00000000053cec60()    Unknown
    sasyh.dll!00000000053c157a()    Unknown
    sasxkern.dll!0000000005155a2c() Unknown
    sashost.dll!000000000383e9b2()  Unknown
    sashost.dll!000000000383b877()  Unknown
    sashost.dll!000000000383b375()  Unknown
    sashost.dll!000000000383d962()  Unknown
    sashost.dll!000000000384081f()  Unknown
    sashost.dll!000000000383c4e3()  Unknown
    sashost.dll!00000000038322c4()  Unknown
    sashost.dll!000000000384628f()  Unknown
    sashost.dll!0000000003849d10()  Unknown
    sashost.dll!000000000383d509()  Unknown
    sashost.dll!00000000038506f0()  Unknown
    sashost.dll!000000000384f649()  Unknown
    0000000004846610()  Unknown
    fe48daea1d7f4cf6()  Unknown
    cccccccccccccccc()  Unknown
    000000000d3683d0()  Unknown
>   RDFODBC_sb64.dll!Simba::Support::AutoPtr<sbicu_58::GregorianCalendar,Simba::Support::AutoPtr_DefaultDeallocator<sbicu_58::GregorianCalendar> >::operator->() Line 142   C++
    RDFODBC_sb64.dll!`anonymous namespace'::CreateEmptyCalendar(Simba::Support::ILogger * in_logger) Line 118   C++
    RDFODBC_sb64.dll!Simba::Support::TimestampTzConverter::TimestampTzConverter(const Simba::Support::simba_wstring & in_format, Simba::Support::ILogger * in_logger) Line 395  C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSAbstractTable::RSAbstractTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 538   C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSTableT<Simba::RestSQL::RSJsonTable>::RSTableT<Simba::RestSQL::RSJsonTable>(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 807   C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSJsonTable::RSJsonTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 54    C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSTableFactory::CreateRSTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection * in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 72   C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSDataEngine::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 200 C++
    RDFODBC_sb64.dll!Simba::ViewSupport::ViewManagedDataEngine<Simba::RestSQL::RSDataEngine>::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 276  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AETableNameBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 70    C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 77 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefListBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 48 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEQuerySpecBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 85    C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::BuildSelectStatement(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 132   C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 65   C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEQueryBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 66    C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::BuildQuery(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 146  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 60    C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEAetBuilder::Build(Simba::SQLEngine::PSParseNode * in_node, Simba::SQLEngine::DSIExtSqlDataEngine * in_dataEngine) Line 22  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::DSIExtSqlDataEngine::Prepare(const Simba::Support::simba_wstring & in_sqlStatement) Line 170 C++
    RDFODBC_sb64.dll!Simba::ODBC::StatementState::InternalPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 1492   C++
    RDFODBC_sb64.dll!Simba::ODBC::StatementState::DoPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 877  C++
    RDFODBC_sb64.dll!Simba::ODBC::StatementState::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 742    C++
    RDFODBC_sb64.dll!Simba::ODBC::StatementState1::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 43    C++
    RDFODBC_sb64.dll!Simba::ODBC::Statement::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 1253    C++
    RDFODBC_sb64.dll!Simba::ODBC::SQLPrepareTask<1>::DoSynchronously(Simba::ODBC::Statement & in_stmt, const Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_params) Line 211   C++
    RDFODBC_sb64.dll!DoTask<Simba::ODBC::SQLPrepareTask<1> >(const char * in_functionName, void * in_handle, Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_parameters) Line 685   C++
    RDFODBC_sb64.dll!SQLPrepareW::__l3::<lambda>() Line 4061    C++
    RDFODBC_sb64.dll!std::_Callable_obj<short <lambda>(void),0>::_ApplyX<short>() Line 284  C++
    RDFODBC_sb64.dll!std::_Func_impl<std::_Callable_obj<short <lambda>(void),0>,std::allocator<std::_Func_class<short> >,short>::_Do_call() Line 229    C++
    RDFODBC_sb64.dll!std::_Func_class<short>::operator()() Line 316 C++
    RDFODBC_sb64.dll!_default_sen_odbc_api_function_wrapper_(std::function<short __cdecl(void)> & apiFunction) Line 773 C++
    RDFODBC_sb64.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 4061    C++
    MPAPlugin.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 2251   C++
    odbc32.dll!SQLPrepareCover()    Unknown
    odbc32.dll!SQLPrepare()    Unknown
    sasodb.dll!00000000064d7ab9()   Unknown
    sasodb.dll!00000000064c3e06()   Unknown
    sasioodb.dll!00000000063c17a4() Unknown
    sasxdbi.dll!000000000644e0fa()  Unknown
    sasxdbi.dll!0000000006415abb()  Unknown
    sasyoio.dll!000000000bdaad5f()  Unknown
    sasyoio.dll!000000000bda7597()  Unknown
    sassqlp.dll!000000000ba4a787()  Unknown
    sassqlp.dll!000000000ba49d8e()  Unknown
    sassqlp.dll!000000000ba36853()  Unknown
    sassqlp.dll!000000000ba30cd2()  Unknown
    sassqx.dll!000000000b8a54b3()   Unknown
    sassqx.dll!000000000b8a4c0e()   Unknown
    sassql.dll!00000000092c147c()   Unknown
    sashost.dll!000000000384a366()  Unknown
    sashost.dll!0000000003850574()  Unknown
    kernel32.dll!BaseThreadInitThunk() Unknown
    ntdll.dll!RtlUserThreadStart() Unknown

Второй сбой:

>   kernel32.dll!IsBadReadPtr() Unknown
    tkmk.dll!0000000010051baa() Unknown
    tkmk.dll!000000001005383d() Unknown
    tkmk.dll!0000000010053587() Unknown
    tkmk.dll!0000000010054f63() Unknown
    tkmk.dll!0000000010055713() Unknown
    tkmk.dll!0000000010056894() Unknown
    tkmk.dll!0000000010056715() Unknown
    tkmk.dll!000000001005692b() Unknown
    tkmk.dll!00000000100566f9() Unknown
    tkmk.dll!000000001004aaaa() Unknown
    sashost.dll!0000000003761589()  Unknown
    sashost.dll!00000000037521c4()  Unknown
    sashost.dll!000000000376628f()  Unknown
    sashost.dll!0000000003769d10()  Unknown
    sashost.dll!000000000375d509()  Unknown
    sashost.dll!00000000037706f0()  Unknown
    sashost.dll!000000000376f649()  Unknown
    0000000004844e40()  Unknown
    fe48daea1d7f4cf6()  Unknown
    cccccccccccccccc()  Unknown
    000000000cbd83d0()  Unknown
    RDFODBC_sb64.dll!Simba::Support::AutoPtr<sbicu_58::GregorianCalendar,Simba::Support::AutoPtr_DefaultDeallocator<sbicu_58::GregorianCalendar> >::operator->() Line 142   C++
    RDFODBC_sb64.dll!`anonymous namespace'::CreateEmptyCalendar(Simba::Support::ILogger * in_logger) Line 118   C++
    RDFODBC_sb64.dll!Simba::Support::TimestampTzConverter::TimestampTzConverter(const Simba::Support::simba_wstring & in_format, Simba::Support::ILogger * in_logger) Line 395  C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSAbstractTable::RSAbstractTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 538   C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSTableT<Simba::RestSQL::RSJsonTable>::RSTableT<Simba::RestSQL::RSJsonTable>(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 807   C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSJsonTable::RSJsonTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection & in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 54    C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSTableFactory::CreateRSTable(Simba::Support::ILogger * in_log, Simba::RestSQL::Settings & in_settings, Simba::RestSQL::RSConnection * in_connection, Simba::RestSQL::RestAPI & in_api, const Simba::RestSQL::_TableInfo & in_tableInfo, Simba::Support::IWarningListener * in_errorsListener, Simba::DriverSupport::HandlePool<void *,Simba::WebServiceSupport::CurlHandleManager,std::vector<void *,std::allocator<void *> > > & in_curlPool, Simba::RestSQL::MPAWrapper & in_mpa, Simba::Support::AutoPtr<Simba::RestSQL::EndpointParameterInfo,Simba::Support::AutoPtr_DefaultDeallocator<Simba::RestSQL::EndpointParameterInfo> > in_executionEndpoint) Line 72   C++
    RDFODBC_sb64.dll!Simba::RestSQL::RSDataEngine::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 200 C++
    RDFODBC_sb64.dll!Simba::ViewSupport::ViewManagedDataEngine<Simba::RestSQL::RSDataEngine>::OpenTable(const Simba::Support::simba_wstring & in_catalogName, const Simba::Support::simba_wstring & in_schemaName, const Simba::Support::simba_wstring & in_tableName, Simba::SQLEngine::DSIExtTableOpenType in_openType) Line 276  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AETableNameBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 70    C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 77 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AETableRefListBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 48 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEQuerySpecBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 85    C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::BuildSelectStatement(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 132   C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AERelationalExprBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 65   C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr<Simba::SQLEngine::AERelationalExpr,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AERelationalExpr> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEQueryBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 66    C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::BuildQuery(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 146  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEStatementBuilder::VisitNonTerminalParseNode(Simba::SQLEngine::PSNonTerminalParseNode * in_node) Line 60    C++
    RDFODBC_sb64.dll!Simba::SQLEngine::PSNonTerminalParseNode::AcceptVisitor(Simba::SQLEngine::IParseTreeVisitor & in_visitor) Line 486 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEBuilderBaseT<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr<Simba::SQLEngine::AEStatement,Simba::Support::AutoPtr_DefaultDeallocator<Simba::SQLEngine::AEStatement> > >::Build(Simba::SQLEngine::PSParseNode * in_node) Line 70 C++
    RDFODBC_sb64.dll!Simba::SQLEngine::AEAetBuilder::Build(Simba::SQLEngine::PSParseNode * in_node, Simba::SQLEngine::DSIExtSqlDataEngine * in_dataEngine) Line 22  C++
    RDFODBC_sb64.dll!Simba::SQLEngine::DSIExtSqlDataEngine::Prepare(const Simba::Support::simba_wstring & in_sqlStatement) Line 170 C++
    RDFODBC_sb64.dll!Simba::ODBC::StatementState::InternalPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 1492   C++
    RDFODBC_sb64.dll!Simba::ODBC::StatementState::DoPrepare(wchar_t * in_sqlText, int in_textLength, bool in_isDirectExecute) Line 877  C++
    RDFODBC_sb64.dll!Simba::ODBC::StatementState::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 742    C++
    RDFODBC_sb64.dll!Simba::ODBC::StatementState1::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 43    C++
    RDFODBC_sb64.dll!Simba::ODBC::Statement::SQLPrepareW(wchar_t * StatementText, long TextLength) Line 1253    C++
    RDFODBC_sb64.dll!Simba::ODBC::SQLPrepareTask<1>::DoSynchronously(Simba::ODBC::Statement & in_stmt, const Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_params) Line 211   C++
    RDFODBC_sb64.dll!DoTask<Simba::ODBC::SQLPrepareTask<1> >(const char * in_functionName, void * in_handle, Simba::ODBC::SQLPrepareTask<1>::TaskParameters & in_parameters) Line 685   C++
    RDFODBC_sb64.dll!SQLPrepareW::__l3::<lambda>() Line 4061    C++
    RDFODBC_sb64.dll!std::_Callable_obj<short <lambda>(void),0>::_ApplyX<short>() Line 284  C++
    RDFODBC_sb64.dll!std::_Func_impl<std::_Callable_obj<short <lambda>(void),0>,std::allocator<std::_Func_class<short> >,short>::_Do_call() Line 229    C++
    RDFODBC_sb64.dll!std::_Func_class<short>::operator()() Line 316 C++
    RDFODBC_sb64.dll!_default_sen_odbc_api_function_wrapper_(std::function<short __cdecl(void)> & apiFunction) Line 773 C++
    RDFODBC_sb64.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 4061    C++
    MPAPlugin.dll!SQLPrepareW(void * StatementHandle, wchar_t * StatementText, long TextLength) Line 2251   C++
    odbc32.dll!SQLPrepareCover()    Unknown
    odbc32.dll!SQLPrepare()    Unknown
    sasodb.dll!00000000064a7ab9()   Unknown
    sasodb.dll!0000000006493e06()   Unknown
    sasioodb.dll!00000000063917a4() Unknown
    sasxdbi.dll!000000000641e0fa()  Unknown
    sasxdbi.dll!00000000063e5abb()  Unknown
    sasyoio.dll!000000000a22ad5f()  Unknown
    sasyoio.dll!000000000a227597()  Unknown
    sassqlp.dll!000000000a18a787()  Unknown
    sassqlp.dll!000000000a189d8e()  Unknown
    sassqlp.dll!000000000a176853()  Unknown
    sassqlp.dll!000000000a170cd2()  Unknown
    sassqx.dll!0000000009fd54b3()   Unknown
    sassqx.dll!0000000009fd4c0e()   Unknown
    sassql.dll!0000000009f8147c()   Unknown
    sashost.dll!000000000376a366()  Unknown
    sashost.dll!0000000003770574()  Unknown
    kernel32.dll!BaseThreadInitThunk() Unknown
    ntdll.dll!RtlUserThreadStart() Unknown

Они используют драйвер с SAS, ив обеих трассировках стека похоже, что он собирается вызывать в ICU (мы строим его сами и добавляем префикс 'sb'), но вместо этого каким-то образом (через эти 4 кадра мусора [я предполагаю, что отладчик не корректен)разматывать стек ???]) вызывает обратно в SAS?

Я бы подумал, что стек просто поврежден или что-то в этом роде, но в первом случае сбой вызван утверждением, что данный оператор не являетсяв настоящее время используется (утверждение, которое никогда не должно завершиться ошибкой), но, глядя в отладчике, это тот же дескриптор, который передается в odbc32.dll! SQLPrepareCover () «ниже», как в odbc32.dll! FreeStmt () «выше»,поэтому имеет смысл, что утверждение потерпит неудачу, так как мы сможем снова заблокировать наши мьютексы (они рекурсивные) и вернуться туда, где это было бы невозможно.

Я не могупридумать что-нибудьЭто что, кроме, может быть, SAS с использованием волокон или какого-то другого вида зеленых нитей? Или обработчик сигнала? (но я думал, что это работает по-другому на окнах, и я думаю, что он будет отображаться в стеке). Не повреждена ли какая-то таблица указателей на функции для ICU, указывающая на SAS? ICU & SAS ничего не должны знать друг о друге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...