ntdll.dll!NtWaitForSingleObject() Unknown
KernelBase.dll!WaitForSingleObjectEx() Unknown
> engine13.dll!Firebird::SharedMemoryBase::eventWait(Firebird::event_t * event=0x000000000473dfa8, const long value=2, const long micro_seconds=10000000) Line 746 C++
engine13.dll!Jrd::LockManager::wait_for_request(Jrd::thread_db * tdbb=0x0000000000148d90, lrq * request=0x0000000004741850, short lck_wait=1) Line 3838 C++
engine13.dll!Jrd::LockManager::grant_or_que(Jrd::thread_db * tdbb=0x0000000000148d90, lrq * request=0x0000000004741850, lbl * lock=0x0000000004733710, short lck_wait=1) Line 2223 C++
engine13.dll!Jrd::LockManager::enqueue(Jrd::thread_db * tdbb=0x0000000000148d90, Firebird::CheckStatusWrapper * statusVector=0x0000000000145f18, long prior_request=0, const unsigned short series=19, const unsigned char * value=0x0000000000146318, const unsigned short length=8, unsigned char type='\x2', int(*)(void *) ast_routine=0x0000000000000000, void * ast_argument=0x0000000000000000, __int64 data=0, short lck_wait=1, long owner_offset=122712) Line 549 C++
engine13.dll!enqueue(Jrd::thread_db * tdbb=0x0000000000148d90, Firebird::CheckStatusWrapper * statusVector=0x0000000000145f18, Jrd::Lock * lock=0x00000000001462a0, unsigned short level=2, short wait=1) Line 949 C++
engine13.dll!ENQUEUE(Jrd::thread_db * tdbb=0x0000000000148d90, Firebird::CheckStatusWrapper * statusVector=0x0000000000145f18, Jrd::Lock * lock=0x00000000001462a0, unsigned short level=2, short wait=1) Line 149 C++
engine13.dll!LCK_lock(Jrd::thread_db * tdbb=0x0000000000148d90, Jrd::Lock * lock=0x00000000001462a0, unsigned short level=2, short wait=1) Line 676 C++
engine13.dll!Jrd::MonitoringSnapshot::MonitoringSnapshot(Jrd::thread_db * tdbb=0x0000000000148d90, Firebird::MemoryPool & pool={...}) Line 519 C++
engine13.dll!Jrd::MonitoringSnapshot::create(Jrd::thread_db * tdbb=0x0000000000148d90) Line 437 C++
engine13.dll!Jrd::MonitoringTableScan::getFormat(Jrd::thread_db * tdbb=0x0000000000148d90, Jrd::jrd_rel * relation=0x00000000056c76a0) Line 111 C++
engine13.dll!Jrd::VirtualTableScan::internalOpen(Jrd::thread_db * tdbb=0x0000000000148d90) Line 57 C++
engine13.dll!Jrd::RecordSource::open(Jrd::thread_db * tdbb=0x0000000000148d90) Line 71 C++
engine13.dll!Jrd::FilteredStream::internalOpen(Jrd::thread_db * tdbb=0x0000000000148d90) Line 81 C++
engine13.dll!Jrd::RecordSource::open(Jrd::thread_db * tdbb=0x0000000000148d90) Line 71 C++
engine13.dll!Jrd::SingularStream::internalOpen(Jrd::thread_db * tdbb=0x0000000000148d90) Line 56 C++
engine13.dll!Jrd::RecordSource::open(Jrd::thread_db * tdbb=0x0000000000148d90) Line 71 C++
engine13.dll!Jrd::Cursor::open(Jrd::thread_db * tdbb=0x0000000000148d90) Line 217 C++
engine13.dll!Jrd::ForNode::execute(Jrd::thread_db * tdbb=0x0000000000148d90, Jrd::Request * request=0x0000000006008720, Jrd::StmtNode::ExeState * __formal=0x0000000000147838) Line 5214 C++
engine13.dll!EXE_looper(Jrd::thread_db * tdbb=0x0000000000148d90, Jrd::Request * request=0x0000000006008720, const Jrd::StmtNode * node=0x0000000005f644e0) Line 1473 C++
engine13.dll!looper_seh(Jrd::thread_db * tdbb=0x0000000000148d90, Jrd::Request * request=0x0000000006008720, const Jrd::StmtNode * node=0x0000000005f64140) Line 1605 C++
engine13.dll!execute_looper(Jrd::thread_db * tdbb=0x0000000000148d90, Jrd::Request * request=0x0000000006008720, Jrd::jrd_tra * transaction=0x0000000005f52850, const Jrd::StmtNode * node=0x0000000005f64140, Jrd::Request::req_s next_state=req_evaluate) Line 1057 C++
engine13.dll!EXE_start(Jrd::thread_db * tdbb=0x0000000000148d90, Jrd::Request * request=0x0000000006008720, Jrd::jrd_tra * transaction=0x0000000005f52850) Line 910 C++
engine13.dll!EXE_execute_triggers(Jrd::thread_db * tdbb=0x0000000000148d90, Jrd::TrigVector * * triggers=0x00000000056918e0, Jrd::record_param * old_rpb=0x0000000000000000, Jrd::record_param * new_rpb=0x0000000000000000, TriggerAction trigger_action=TRIGGER_CONNECT, Jrd::StmtNode::WhichTrigger which_trig=ALL_TRIGS, int ddl_action=0) Line 1255 C++
engine13.dll!EXE_execute_db_triggers(Jrd::thread_db * tdbb=0x0000000000148d90, Jrd::jrd_tra * transaction=0x0000000005f52850, TriggerAction trigger_action=TRIGGER_CONNECT) Line 539 C++
engine13.dll!Jrd::JProvider::internalAttach(Firebird::CheckStatusWrapper * user_status=0x000000000014a258, const char * const filename=0x000000000014a4fc, unsigned int dpb_length=47, const unsigned char * dpb=0x000000000014a3d8, const Jrd::UserId * existingId=0x0000000000000000) Line 2269 C++
engine13.dll!Jrd::JProvider::attachDatabase(Firebird::CheckStatusWrapper * user_status=0x000000000014a258, const char * filename=0x000000000014a4fc, unsigned int dpb_length=47, const unsigned char * dpb=0x000000000014a3d8) Line 1624 C++
engine13.dll!Firebird::IProviderBaseImpl<Jrd::JProvider,Firebird::CheckStatusWrapper,Firebird::IPluginBaseImpl<Jrd::JProvider,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IReferenceCountedImpl<Jrd::JProvider,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JProvider,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IProvider>>>>>>>::cloopattachDatabaseDispatcher(Firebird::IProvider * self=0x00000000043d1ff8, Firebird::IStatus * status=0x000000000014ac70, const char * fileName=0x000000000014a4fc, unsigned int dpbLength=47, const unsigned char * dpb=0x000000000014a3d8) Line 12497 C++
fbclient.dll!Firebird::IProvider::attachDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper * status=0x000000000014ac68, const char * fileName=0x000000000014a4fc, unsigned int dpbLength=47, const unsigned char * dpb=0x000000000014a3d8) Line 3001 C++
fbclient.dll!Why::Dispatcher::attachOrCreateDatabase(Firebird::CheckStatusWrapper * status=0x000000000014ac68, bool createFlag=false, const char * filename=0x0000000000555fd0, unsigned int dpbLength=45, const unsigned char * dpb=0x000000000014add8) Line 6575 C++
fbclient.dll!Why::Dispatcher::attachDatabase(Firebird::CheckStatusWrapper * status=0x000000000014ac68, const char * filename=0x0000000000555fd0, unsigned int dpbLength=45, const unsigned char * dpb=0x000000000014add8) Line 6489 C++
fbclient.dll!Firebird::IProviderBaseImpl<Why::Dispatcher,Firebird::CheckStatusWrapper,Firebird::IPluginBaseImpl<Why::Dispatcher,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IReferenceCountedImpl<Why::Dispatcher,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IVersionedImpl<Why::Dispatcher,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IProvider>>>>>>>::cloopattachDatabaseDispatcher(Firebird::IProvider * self=0x00000000001ca908, Firebird::IStatus * status=0x000000000014b290, const char * fileName=0x0000000000555fd0, unsigned int dpbLength=45, const unsigned char * dpb=0x000000000014add8) Line 12497 C++
srp.dll!Firebird::IProvider::attachDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper * status=0x000000000014b288, const char * fileName=0x0000000000555fd0, unsigned int dpbLength=45, const unsigned char * dpb=0x000000000014add8) Line 3001 C++
srp.dll!Auth::SrpManagement::start(Firebird::CheckStatusWrapper * status=0x000000000014b288, Firebird::ILogonInfo * logonInfo=0x000000000014b490) Line 279 C++
srp.dll!Firebird::IManagementBaseImpl<Auth::SrpManagement,Firebird::CheckStatusWrapper,Firebird::IPluginBaseImpl<Auth::SrpManagement,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IReferenceCountedImpl<Auth::SrpManagement,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IVersionedImpl<Auth::SrpManagement,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IManagement>>>>>>>::cloopstartDispatcher(Firebird::IManagement * self=0x00000000056209d8, Firebird::IStatus * status=0x000000000014b450, Firebird::ILogonInfo * logonInfo=0x000000000014b490) Line 14218 C++
engine13.dll!Firebird::IManagement::start<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper * status=0x000000000014b448, Firebird::ILogonInfo * logonInfo=0x000000000014b490) Line 3794 C++
engine13.dll!Jrd::UserManagement::registerManager(Auth::Get & getPlugin={...}, const char * plugName=0x000000000014b56c) Line 197 C++
engine13.dll!Jrd::UserManagement::getManager(const char * name=0x0000000004cf2280) Line 240 C++
engine13.dll!Jrd::UserManagement::execute(unsigned short id=0) Line 370 C++
engine13.dll!user_management(Jrd::thread_db * __formal=0x000000000014d260, short phase=3, Jrd::DeferredWork * work=0x0000000005204740, Jrd::jrd_tra * transaction=0x00000000051f1dd0) Line 6430 C++
engine13.dll!DFW_perform_work(Jrd::thread_db * tdbb=0x000000000014d260, Jrd::jrd_tra * transaction=0x00000000051f1dd0) Line 5016 C++
engine13.dll!TRA_commit(Jrd::thread_db * tdbb=0x000000000014d260, Jrd::jrd_tra * transaction=0x00000000051f1dd0, const bool retaining_flag=false) Line 487 C++
engine13.dll!commit(Jrd::thread_db * tdbb=0x000000000014d260, Jrd::jrd_tra * transaction=0x00000000051f1dd0, const bool retaining_flag=false) Line 6816 C++
engine13.dll!JRD_commit_transaction(Jrd::thread_db * tdbb=0x000000000014d260, Jrd::jrd_tra * transaction=0x00000000051f1dd0) Line 9487 C++
engine13.dll!Jrd::JTransaction::internalCommit(Firebird::CheckStatusWrapper * user_status=0x000000000014d498) Line 2600 C++
engine13.dll!Jrd::JTransaction::commit(Firebird::CheckStatusWrapper * user_status=0x000000000014d498) Line 2569 C++
engine13.dll!Firebird::ITransactionBaseImpl<Jrd::JTransaction,Firebird::CheckStatusWrapper,Firebird::IReferenceCountedImpl<Jrd::JTransaction,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JTransaction,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::ITransaction>>>>>::cloopcommitDispatcher(Firebird::ITransaction * self=0x00000000043d1e08, Firebird::IStatus * status=0x000000000014d800) Line 9628 C++
fbclient.dll!Firebird::ITransaction::commit<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper * status=0x000000000014d7f8) Line 1328 C++
fbclient.dll!Why::YTransaction::commit::__l3::<lambda>() Line 5374 C++
The bug was reported privately.
To reproduce, all conditions below must be met:
First user connection run user-management statement (CREATE USER or a like) and commits it.
Second user connection establish connection.
It is possible that second user connection's creates monitoring snapshot at the moment when first user connection commits and executed user-management statement.
Stack of the main thread of the 1st process
Stack of the AST thread of the 1st process