Embedded Firebird crashes inside of Jrd::LockManager::blocking_action_thread() ------------------------------------------------------------------------------
Key: CORE-3767 URL: http://tracker.firebirdsql.org/browse/CORE-3767 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 2.5.1, 2.5.0 Environment: Windows Reporter: Petr Silar Priority: Critical We have several dumps of our application indicating crash inside of Firebird's embedded engine as follows (release 2.5.1.26351): > .ecxr eax=02a04924 ebx=76e31136 ecx=765b0ac4 edx=00000000 esi=ffffffff edi=02a04924 eip=039519c0 esp=08f4f7c4 ebp=00000001 iopl=0 nv up ei pl zr na pe nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246 fbembed!event_blocked: 039519c0 8b4808 mov ecx,dword ptr [eax+8] ds:002b:02a0492c=???????? >kb ChildEBP RetAddr Args to Child 08f4f7c0 03951b06 00000001 0403491c 009ac044 fbembed!event_blocked [c:\..\firebird\src\jrd\isc_sync.cpp @ 717] 08f4f7d8 03a8d708 02a04924 00000001 00000000 fbembed!ISC_event_wait+0x66 [c:\..\firebird\src\jrd\isc_sync.cpp @ 1418] 08f4f848 03a8ded9 0392ed45 009ac044 3af780b6 fbembed!Jrd::LockManager::blocking_action_thread+0x178 [c:\..\firebird\src\lock\lock.cpp @ 1568] 08f4f84c 0392ed45 009ac044 3af780b6 00000000 fbembed!Jrd::LockManager::blocking_action_thread+0x9 [c:..\firebird\src\lock\lock_proto.h @ 403] 08f4f874 71fe29bb 009ad5e0 3afca5c2 00000000 fbembed!`anonymous namespace'::threadStart+0x55 [c:\..\firebird\src\jrd\threadstart.cpp @ 140] WARNING: Stack unwind information not available. Following frames may be wrong. 08f4f8ac 71fe2a47 00000000 76e3339a 0a9b69f0 msvcr80+0x29bb 08f4f8c0 77c09ef2 0a9b69f0 76c1b716 00000000 msvcr80+0x2a47 08f4f900 77c09ec5 71fe29e1 0a9b69f0 00000000 ntdll!__RtlUserThreadStart+0x70 08f4f918 00000000 71fe29e1 0a9b69f0 00000000 ntdll!_RtlUserThreadStart+0x1b Most of the crashes are from the moment when computer is waking up from hibernation. [Guess:] It seems to me as insufficient fix of http://tracker.firebirdsql.org/browse/CORE-2064. If I understand the code well, during LockManager's instance destruction, when the single turn of blocking_action_thread's loop takes too long, LockManager's destructor simply lefts the thread alone and frees itself which finally leads to access violation in the thread. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel