Subject Firebird hungs
Author Marcin Olejarczyk - Produkcja

I am working as software architect for system called drEryk (, where it is based on Firebird database. Unfortunately, the last attempt to introduce increment backup functionality for drEryk has finished with fail due to problem which we met in Firebird - suspension of the database. Because our application exists on the Polish market for some time, we are forced to introduce this functionality ASAP. If we do not do it, we will be forced to move to another database system, but we do not want to do it because of the implementation cost. I would like to ask you about the possibility to support us in solving our problem:

Problem description
Not always but, in some circumstances frequently, our application (DrEryk) hangs forever after it runs nbackup.exe for DB backuping with following command line:

All connections (made from other instances of our application or from database management tools like IBExprert) to database after that hang forever too.

Call stack of client applications at that moment is always the same at its top, starting from the call to Firebird client library "isc_start_transaction" (see chapter "Technical information" below).

Most frequently this repeats just after our application has been installed (matter is Fireberd service has just been started by our installer). Then we log into our application and at that moment we experience temporary hanging with the same characteristics as it was described above (but temporary one, it wakes up in a while). And if after such a temporary hanging we start nbackup.exe we have described result (hanging forever).

Similar behavior (probable the same) was issued on Firebird bug tracker:

Technical information
OS: Windows XP SP3 32 bit
Firebird version: SuperServer
Database type: single file database
Transaction isolation level: concurrency (no wait)
Full memory dump of Firebird server at the moment of hanging is attached:

Call stack of a client application:
ntdll.dll!_KiFastSystemCallRet@0 () Unknown
ntdll.dll!_ZwWaitForSingleObject@12 () Unknown
mswsock.dll!_SockWaitForSingleObject@16 () Unknown
mswsock.dll!_WSPSelect@24 () Unknown
ws2_32.dll!_select@20 () Unknown
fbclient.dll!packet_receive(rem_port * port, unsigned char * buffer, short buffer_length, short * length) Line 3156 C++
fbclient.dll!inet_read(xdr_t * xdrs) Line 2873 C++
fbclient.dll!inet_getbytes(xdr_t * xdrs, char * buff, unsigned int count) Line 2664 C++
fbclient.dll!inet_getlong(xdr_t * xdrs, long * lp) Line 2689 C++
fbclient.dll!xdr_enum(xdr_t * xdrs, xdr_op * ip) Line 340 C++
fbclient.dll!xdr_protocol(xdr_t * xdrs, packet * p) Line 271 C++
fbclient.dll!receive(rem_port * main_port, packet * packet) Line 2098 C++
fbclient.dll!rem_port::receive(packet * pckt) Line 651 C++
fbclient.dll!receive_packet_noqueue(rem_port * port, packet * packet, int * user_status) Line 6223 C++
fbclient.dll!receive_packet(rem_port * port, packet * packet, int * user_status) Line 6110 C++
fbclient.dll!receive_response(Rdb * rdb, packet * packet) Line 6337 C++
fbclient.dll!send_and_receive(Rdb * rdb, packet * packet, int * user_status) Line 6778 C++
fbclient.dll!REM_start_transaction(int * user_status, Rtr * * rtr_handle, short __formal, Rdb * * db_handle, short tpb_length, const unsigned char * tpb) Line 4305 C++
fbclient.dll!isc_start_multiple(int * user_status, void * * tra_handle, short count, void * vec) Line 4888 C++
fbclient.dll!isc_start_transaction(int * user_status, void * * tra_handle, short count, ...) Line 4973 C++
dshared.dll!drEryk::domain::FBConnectionImpl::beginTransaction() Line 288 C++
dshared.dll!drEryk::domain::FBConnectionImpl::executeSQL(drEryk::domain::ExecutionStats * execStats, drEryk::QueryProfiler * profiler) Line 518 C++
dshared.dll!drEryk::domain::FBConnection::executeSQL(drEryk::domain::ExecutionStats * execStats) Line 244 C++
dshared.dll!drEryk::domain::UserRepository::getRoles(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) Unknown

Best regards,
Marcin Olejarczyk
Analyst Software Engineer 

Ericpol Sp. z o.o.
ul. Bobrzyńskiego 12, 30-348 Kraków, Polska
E-mail: Marcin.Olejarczyk@...

Tel.: + 48 12 295 4658
Kom.: + 48 663 426 616

NIP: 727-012-56-20, REGON: 470541772,
KRS: 0000002804 Sąd Rejonowy dla Łodzi-Śródmieścia, XX Wydział KRS
Kapitał zakładowy: 2 011 340 PLN