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

Reply via email to