Subject Re: [firebird-support] corrupt database killing fbServer.exe when runing gfix
Author Thomas Steinmaurer
> Never seen this before. When I call gfix -validate in a certain database here, it kill fbserver.exe (Firebird 2.1.4 SS) no matter options I chose (-no_update, -ignore, -full, -mend). This database was generated by FB 2.0.x SS server, and this error is shown there too. I take it to my machine running 2.1.4 to test and see if the error was specific on 2.0.x.
> gfix return only "connection lost to database"
> Any suggestions would be welcome. TIA
> Here is the Firebird.log when attempting to run gfix:
>
> PROGRAMADOR2 (Client) Thu Aug 18 10:19:26 2011
> Guardian starting: "C:\Arquivos de programas\Firebird\Firebird_2_1\bin\fbserver.exe"
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 3 is corrupt on page 45972 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1674
> in table ITENSVENDAS (150)
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 3 is corrupt on page 43933 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1538
> in table ITENSVENDAS (150)
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 3 is corrupt on page 43933 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1538
> in table ITENSVENDAS (150)
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 3 is corrupt on page 43933 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1538
> in table ITENSVENDAS (150)
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 3 is corrupt on page 43933 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1674
> in table ITENSVENDAS (150)
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 3 is corrupt on page 45040 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1538
> in table ITENSVENDAS (150)
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 3 is corrupt on page 45040 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1674
> in table ITENSVENDAS (150)
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 3 is corrupt on page 45613 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1538
> in table SAIDANOTAS (160)
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 3 is corrupt on page 45613 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1674
> in table SAIDANOTAS (160)
>
> PROGRAMADOR2 (Server) Thu Aug 18 10:21:39 2011
> Database: C:\TEMP\CORRUPT.FDB
> Index 4 is corrupt on page 46149 level 0. File: ..\..\..\src\jrd\validation.cpp, line: 1674
> in table SAIDAPRODUTOS (161)
>
> PROGRAMADOR2 (Client) Thu Aug 18 10:21:40 2011
> "C:\Arquivos de programas\Firebird\Firebird_2_1\bin\fbserver.exe": terminated abnormally (4294967295)
>
> PROGRAMADOR2 (Client) Thu Aug 18 10:21:40 2011
> XNET error: Server shutdown detected
>
> PROGRAMADOR2 (Client) Thu Aug 18 10:21:40 2011
> Guardian starting: "C:\Arquivos de programas\Firebird\Firebird_2_1\bin\fbserver.exe"
>

The log tells you that an index in various tables (ITENSVENDAS,
SAIDANOTAS) are corrupt.

If you query the system table RDB$INDICES with a WHERE clause on
RDB$RELATION_NAME, you can get a list of indices. The result set also
includes a RDB$INDEX_ID field, although I can't recall if e.g. "Index 3
..." on a particular table is the index with a value of 3 in this field
or 4 (starting at index 0 or 1).

Try to drop the indices in question and re-run a validation. As Firebird
2.1.4 has some index corruption issues fixed, I would also run a
backup/restore cycle with 2.1.4.

Hope this helps.


--
With regards,

Thomas Steinmaurer
Upscene Productions
http://www.upscene.com
http://blog.upscene.com/thomas/

Download LogManager Series, FB TraceManager today!
Continuous Database Monitoring Solutions supporting
Firebird, InterBase, Advantage Database, MS SQL Server
and NexusDB!