Firebird Embedded 2.1.2 crashed in garbage_collector, vio.cpp line 3996, relation->rel_gc_bitmap NULL? ------------------------------------------------------------------------------------------------------
Key: CORE-3581 URL: http://tracker.firebirdsql.org/browse/CORE-3581 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 2.1.2 Environment: Windows 7 x64 Reporter: Antti Nivala Attachments: minidump.mdmp We received a crash dump (minidump) from a client. Apparently, Firebird has crashed in garbage_collector, call stack below. Note that "fbclient.dll" in the call stack is actually ffbembed.dll, only renamed to fbclient.dll. fbclient.dll!garbage_collector(void * arg=0x0000000000000000) Line 3996 + 0x7 bytes C++ fbclient.dll!`anonymous namespace'::threadStart(void * arg=0x00000000012700b0) Line 282 + 0x5 bytes C++ msvcr80.dll!_callthreadstartex() Line 348 + 0xd bytes C msvcr80.dll!_threadstartex(void * ptd=0x0000000000000000) Line 326 + 0x5 bytes C kernel32.dll!BaseThreadInitThunk() + 0xd bytes ntdll.dll!RtlUserThreadStart() + 0x21 bytes Examining the dump file and the disassembly seems to indicate that the relation->rel_gc_bitmap is NULL and thus relation->rel_gc_bitmap->getFirst() crashes when trying to dereference relation->rel_gc_bitmap. Accessed address is 0x40, which is probably 0x0 + 0x40, 0x40 being the offset of the data member that the getFirst function would access. if (relation->rel_gc_bitmap) while (relation->rel_gc_bitmap->getFirst()) <=== relation->rel_gc_bitmap is apparently NULL here! { .... } Since the if test should guarantee that relation->rel_gc_bitmap is initially not NULL, perhaps something goes wrong in the while loop and relation->rel_gc_bitmap becomes NULL. Or, could there be concurrency involved? I don't really know anything about Firebird code so this is just thinking aloud. The minidump is attached. If you need any binaries or symbols, just let me know the names of the modules and I should be able to post them. The crash occurred with Firebird 2.1.2. It was a one-time crash that is not reproducible so I cannot test if it occurs with other Firebird versions. We have switched to Firebird 2.1.4 in our latest releases, but some customers are still running versions that include Firebird 2.1.2. We would like this to be fixed in the next Firebird 2.1.x release, if not already fixed in 2.1.4. -- 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 ------------------------------------------------------------------------------ uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel