Hi,

I can, although in pretty elaborate setup, trigger unhandled exception in Why 
(see below). It's 99% related to something that external engine is doing, 
because removing one external engine function call from PSQL function makes it 
not crash. What would be a best way to pin point what's happening? Or at least 
some pointers what to look for?

Using snapshot Firebird-3.0.8.33501-0_x64.

```
Unhandled exception at 0x00007FF9C9516C9C (fbclient.dll) in firebird.exe: 
0xC0000005: Access violation reading location 0x0000000000000008.

fbclient.dll!Why::YAttachment::YAttachment(Firebird::IProvider * aProvider, 
Firebird::IAttachment * aNext, const 
Firebird::StringBase<Firebird::PathNameComparator> & aDbPath) Line 4980
        at c:\snapshots\firebird\src\yvalve\why.cpp(4980)
fbclient.dll!Why::MasterImplementation::registerAttachment(Firebird::IProvider 
* provider, Firebird::IAttachment * attachment) Line 3729
        at c:\snapshots\firebird\src\yvalve\why.cpp(3729)
fbclient.dll!Firebird::IMasterBaseImpl<Why::MasterImplementation,Firebird::CheckStatusWrapper,Firebird::IVersionedImpl<Why::MasterImplementation,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IMaster>>>::cloopregisterAttachmentDispatcher(Firebird::IMaster
 * self, Firebird::IProvider * provider, Firebird::IAttachment * attachment) 
Line 5728
        at c:\snapshots\firebird\src\include\firebird\idlfbinterfaces.h(5728)
engine12.dll!Jrd::ExtEngineManager::ExternalContextImpl::ExternalContextImpl(Jrd::thread_db
 * tdbb, Firebird::IExternalEngine * aEngine) Line 605
        at c:\snapshots\firebird\src\jrd\extenginemanager.cpp(605)
engine12.dll!Jrd::ExtEngineManager::getEngineAttachment(Jrd::thread_db * tdbb, 
Firebird::IExternalEngine * engine, bool closing) Line 1621
        at c:\snapshots\firebird\src\jrd\extenginemanager.cpp(1621)
engine12.dll!Jrd::ExtEngineManager::makeFunction(Jrd::thread_db * tdbb, 
Jrd::CompilerScratch * csb, Jrd::Function * udf, const Firebird::MetaName & 
engine, const Firebird::StringBase<Firebird::StringComparator> & entryPoint, 
const Firebird::StringBase<Firebird::StringComparator> & body) Line 1182
        at c:\snapshots\firebird\src\jrd\extenginemanager.cpp(1182)
engine12.dll!Jrd::Function::loadMetadata(Jrd::thread_db * tdbb, unsigned short 
id, bool noscan, unsigned short flags) Line 1107
        at c:\snapshots\firebird\gen\jrd\function.cpp(1107)
engine12.dll!Jrd::Function::lookup(Jrd::thread_db * tdbb, const 
Firebird::QualifiedName & name, bool noscan) Line 646
        at c:\snapshots\firebird\gen\jrd\function.cpp(646)
engine12.dll!Jrd::UdfCallNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
blrOp) Line 11061
        at c:\snapshots\firebird\src\dsql\exprnodes.cpp(11061)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_value(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1585
        at c:\snapshots\firebird\src\jrd\par.cpp(1585)
engine12.dll!Jrd::AssignmentNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 280
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(280)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::CompoundStmtNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 773
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(773)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::CompoundStmtNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 773
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(773)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::LabelNode::parse(Jrd::thread_db * tdbb, Firebird::MemoryPool 
& pool, Jrd::CompilerScratch * csb, const unsigned char __formal) Line 4875
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(4875)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::CompoundStmtNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 773
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(773)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::ReceiveNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 6416
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(6416)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::CompoundStmtNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 773
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(773)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_blr(Jrd::thread_db * tdbb, Jrd::jrd_rel * relation, const 
unsigned char * blr, unsigned long blr_length, Jrd::CompilerScratch * view_csb, 
Jrd::CompilerScratch * * csb_ptr, Jrd::JrdStatement * * statementPtr, const 
bool trigger, unsigned short flags) Line 235
        at c:\snapshots\firebird\src\jrd\par.cpp(235)
engine12.dll!Jrd::Routine::parseBlr(Jrd::thread_db * tdbb, Jrd::CompilerScratch 
* csb, Jrd::bid * blob_id, Jrd::bid * blobDbg) Line 175
        at c:\snapshots\firebird\src\jrd\routine.cpp(175)
engine12.dll!Jrd::Function::loadMetadata(Jrd::thread_db * tdbb, unsigned short 
id, bool noscan, unsigned short flags) Line 1121
        at c:\snapshots\firebird\gen\jrd\function.cpp(1121)
engine12.dll!Jrd::Function::lookup(Jrd::thread_db * tdbb, const 
Firebird::QualifiedName & name, bool noscan) Line 646
        at c:\snapshots\firebird\gen\jrd\function.cpp(646)
engine12.dll!Jrd::UdfCallNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
blrOp) Line 11061
        at c:\snapshots\firebird\src\dsql\exprnodes.cpp(11061)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_value(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1585
        at c:\snapshots\firebird\src\jrd\par.cpp(1585)
engine12.dll!Jrd::AssignmentNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 280
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(280)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::CompoundStmtNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 773
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(773)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::CompoundStmtNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 773
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(773)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::LabelNode::parse(Jrd::thread_db * tdbb, Firebird::MemoryPool 
& pool, Jrd::CompilerScratch * csb, const unsigned char __formal) Line 4875
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(4875)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::CompoundStmtNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 773
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(773)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::ReceiveNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 6416
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(6416)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_stmt(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1596
        at c:\snapshots\firebird\src\jrd\par.cpp(1596)
engine12.dll!Jrd::CompoundStmtNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 773
        at c:\snapshots\firebird\src\dsql\stmtnodes.cpp(773)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_blr(Jrd::thread_db * tdbb, Jrd::jrd_rel * relation, const 
unsigned char * blr, unsigned long blr_length, Jrd::CompilerScratch * view_csb, 
Jrd::CompilerScratch * * csb_ptr, Jrd::JrdStatement * * statementPtr, const 
bool trigger, unsigned short flags) Line 235
        at c:\snapshots\firebird\src\jrd\par.cpp(235)
engine12.dll!Jrd::Routine::parseBlr(Jrd::thread_db * tdbb, Jrd::CompilerScratch 
* csb, Jrd::bid * blob_id, Jrd::bid * blobDbg) Line 175
        at c:\snapshots\firebird\src\jrd\routine.cpp(175)
engine12.dll!Jrd::Function::loadMetadata(Jrd::thread_db * tdbb, unsigned short 
id, bool noscan, unsigned short flags) Line 1121
        at c:\snapshots\firebird\gen\jrd\function.cpp(1121)
engine12.dll!Jrd::Function::lookup(Jrd::thread_db * tdbb, const 
Firebird::QualifiedName & name, bool noscan) Line 646
        at c:\snapshots\firebird\gen\jrd\function.cpp(646)
engine12.dll!Jrd::UdfCallNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
blrOp) Line 11061
        at c:\snapshots\firebird\src\dsql\exprnodes.cpp(11061)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_value(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1585
        at c:\snapshots\firebird\src\jrd\par.cpp(1585)
engine12.dll!Jrd::ComparativeBoolNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
blrOp) Line 328
        at c:\snapshots\firebird\src\dsql\boolnodes.cpp(328)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_boolean(Jrd::thread_db * tdbb, Jrd::CompilerScratch * 
csb) Line 1574
        at c:\snapshots\firebird\src\jrd\par.cpp(1574)
engine12.dll!Jrd::BinaryBoolNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
blrOp) Line 114
        at c:\snapshots\firebird\src\dsql\boolnodes.cpp(114)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_boolean(Jrd::thread_db * tdbb, Jrd::CompilerScratch * 
csb) Line 1574
        at c:\snapshots\firebird\src\jrd\par.cpp(1574)
engine12.dll!Jrd::BinaryBoolNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
blrOp) Line 114
        at c:\snapshots\firebird\src\dsql\boolnodes.cpp(114)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_boolean(Jrd::thread_db * tdbb, Jrd::CompilerScratch * 
csb) Line 1574
        at c:\snapshots\firebird\src\jrd\par.cpp(1574)
engine12.dll!Jrd::BinaryBoolNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
blrOp) Line 114
        at c:\snapshots\firebird\src\dsql\boolnodes.cpp(114)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_parse_boolean(Jrd::thread_db * tdbb, Jrd::CompilerScratch * 
csb) Line 1574
        at c:\snapshots\firebird\src\jrd\par.cpp(1574)
engine12.dll!Jrd::BoolAsValueNode::parse(Jrd::thread_db * tdbb, 
Firebird::MemoryPool & pool, Jrd::CompilerScratch * csb, const unsigned char 
__formal) Line 2567
        at c:\snapshots\firebird\src\dsql\exprnodes.cpp(2567)
engine12.dll!PAR_parse_node(Jrd::thread_db * tdbb, Jrd::CompilerScratch * csb) 
Line 1650
        at c:\snapshots\firebird\src\jrd\par.cpp(1650)
engine12.dll!PAR_blr(Jrd::thread_db * tdbb, Jrd::jrd_rel * relation, const 
unsigned char * blr, unsigned long blr_length, Jrd::CompilerScratch * view_csb, 
Jrd::CompilerScratch * * csb_ptr, Jrd::JrdStatement * * statementPtr, const 
bool trigger, unsigned short flags) Line 235
        at c:\snapshots\firebird\src\jrd\par.cpp(235)
engine12.dll!MET_scan_relation(Jrd::thread_db * tdbb, Jrd::jrd_rel * relation) 
Line 9085
        at c:\snapshots\firebird\gen\jrd\met.cpp(9085)
engine12.dll!MET_lookup_index_expression(Jrd::thread_db * tdbb, Jrd::jrd_rel * 
relation, Jrd::index_desc * idx) Line 7161
        at c:\snapshots\firebird\gen\jrd\met.cpp(7161)
engine12.dll!BTR_description(Jrd::thread_db * tdbb, Jrd::jrd_rel * relation, 
Ods::index_root_page * root, Jrd::index_desc * idx, unsigned short id) Line 518
        at c:\snapshots\firebird\src\jrd\btr.cpp(518)
engine12.dll!IDX_garbage_collect(Jrd::thread_db * tdbb, Jrd::record_param * 
rpb, Firebird::Stack<Jrd::Record *,16> & going, Firebird::Stack<Jrd::Record 
*,16> & staying) Line 738
        at c:\snapshots\firebird\src\jrd\idx.cpp(738)
engine12.dll!garbage_collect(Jrd::thread_db * tdbb, Jrd::record_param * rpb, 
unsigned long prior_page, Firebird::Stack<Jrd::Record *,16> & staying) Line 4803
        at c:\snapshots\firebird\src\jrd\vio.cpp(4803)
engine12.dll!purge(Jrd::thread_db * tdbb, Jrd::record_param * rpb) Line 6101
        at c:\snapshots\firebird\src\jrd\vio.cpp(6101)
engine12.dll!VIO_chase_record_version(Jrd::thread_db * tdbb, Jrd::record_param 
* rpb, Jrd::jrd_tra * transaction, Firebird::MemoryPool * pool, bool writelock, 
bool noundo) Line 1257
        at c:\snapshots\firebird\src\jrd\vio.cpp(1257)
engine12.dll!VIO_next_record(Jrd::thread_db * tdbb, Jrd::record_param * rpb, 
Jrd::jrd_tra * transaction, Firebird::MemoryPool * pool, bool onepage) Line 3094
        at c:\snapshots\firebird\src\jrd\vio.cpp(3094)
engine12.dll!Jrd::Database::garbage_collector(Jrd::Database * dbb) Line 5008
        at c:\snapshots\firebird\src\jrd\vio.cpp(5008)
engine12.dll!ThreadFinishSync<Jrd::Database * __ptr64>::internalRun() Line 189
        at c:\snapshots\firebird\src\common\threadstart.h(189)
engine12.dll!ThreadFinishSync<Jrd::Database * __ptr64>::internalRun(void * arg) 
Line 182
        at c:\snapshots\firebird\src\common\threadstart.h(182)
engine12.dll!threadStart(void * arg) Line 97
        at c:\snapshots\firebird\src\common\threadstart.cpp(97)
msvcr100.dll!_callthreadstartex() Line 314
        at f:\dd\vctools\crt_bld\self_64_amd64\crt\src\threadex.c(314)
msvcr100.dll!_threadstartex(void * ptd) Line 292
        at f:\dd\vctools\crt_bld\self_64_amd64\crt\src\threadex.c(292)
kernel32.dll!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()
```

-- 
Mgr. Jiří Činčura
https://www.tabsoverspaces.com/


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to