Subject Engine crash after gds_free: pool corrupted
Author bl@wobe-systems.com
Hi,
I recently experienced an engine crash with FB 1.0.3 on Win2000 Server. Clients developed with IBO 4.3Aa and Delphi7. Clients and Server run on a Dell 2 Processor Xeon Server with HT enabled. DB is fixed to use 1 CPU only via configuration file.

The first symptom was that one of the clients attached to the DB threw the folowing error

SQL Error: -901
ISC ERROR CODE:335544485
ISC ERROR MESSAGE: invalid statement handle
Error Codes : 335544485
SQL ERROR MESSAGE: Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements

Semingly engine crash happend after all attached clients (total of 6) were disconnected from the db by using the Windows-Taskmannager because of being unresponsive.

The follwing is taken from the dblogfile arround crashtime:

DBSERVER1 (Client) Tue Jun 08 15:25:00 2004
gds__free: pool corrupted
DBSERVER1 (Server) Tue Jun 08 15:58:21 2004
gds__free: attempt to release bad block
DBSERVER1 (Server) Tue Jun 08 15:58:22 2004
gds__free: attempt to release bad block
DBSERVER1 (Server) Tue Jun 08 15:58:51 2004
INET/inet_error: send errno = 10054
DBSERVER1 (Server) Tue Jun 08 15:58:54 2004
INET/inet_error: send errno = 10054
DBSERVER1 (Server) Tue Jun 08 15:59:07 2004
INET/inet_error: send errno = 10054
DBSERVER1 (Server) Tue Jun 08 15:59:54 2004
INET/inet_error: read errno = 10054
DBSERVER1 (Server) Tue Jun 08 15:59:54 2004
INET/inet_error: read errno = 10054
DBSERVER1 (Server) Tue Jun 08 15:59:54 2004
INET/inet_error: send errno = 10054
DBSERVER1 (Server) Tue Jun 08 15:59:58 2004
INET/inet_error: send errno = 10054
DBSERVER1 (Client) Tue Jun 08 16:00:49 2004
C:\Program Files\Firebird\bin\ibserver.exe: terminated abnormally (-1)
DBSERVER1 (Client) Tue Jun 08 16:00:49 2004
INET/inet_error: read errno = 10054
[...]
DBSERVER1 (Client) Tue Jun 08 16:00:49 2004
INET/inet_error: send errno = 10054
DBSERVER1 (Client) Tue Jun 08 16:00:50 2004
Guardian starting: C:\Program Files\Firebird\bin\ibserver.exe
DBSERVER1 (Client) Tue Jun 08 16:00:51 2004
INET/inet_error: connect errno = 10061
DBSERVER1 (Client) Tue Jun 08 16:00:55 2004
INET/inet_error: send errno = 10054

Clould somebody please explain what may have caused the pool to corrupt. What is this errormessage and it's subsequent attempt "to release bad block" wanting to tell me?

DB file seems to be intact by what I take from gfix -validate.

Also what strikes me as strange is that I'm getting 10054 errors. DB and Clients are residing on the same machine. Connection string is IP:C:\dbpath\dbfile.fdb ? What might be the cause here. I expected to get these messages on "real wir connections" only.

Thanks for explaining.
Best Regards
Björn Latte