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