Select on empty database generate: internal Firebird consistency check (cannot
find tip page (165), file: tra.cpp line: 2369
----------------------------------------------------------------------------------------------------------------------------
Key: CORE-4734
URL: http://tracker.firebirdsql.org/browse/CORE-4734
Project: Firebird Core
Issue Type: Bug
Affects Versions: 2.5.4
Environment: Visual Studio 2013, Windows 8.1, Firebird 2.5.4 and
Firebird ADO.NET Data provider. 4.5.0.0
Reporter: Carl-Johan Wik
Priority: Blocker
Hi
Below you will find the code for the connection information object that the
test program.
This done in Visual Studio 2013, Windows 8.1, Firebird 2.5.4 and Firebird
ADO.NET Data provider. 4.5.0.0
The thing I find is that if the database is empty and I do select, then it goes
into a failed state that I cannot resolve and have to recreate the database.
Procedure to reproduce:
Run the program, the program will pass con.Open and throw exception on the
cmd.ExecuteScalar and the exception says table unknown. I.e. an expected
exception.
Re-run the program, now the con.Open will throw an exception with the
information: internal Firebird consistency check (cannot find tip page (165),
file: tra.cpp line: 2369
If I try to re-run the program again the same exception happen on the con.Open
statement. I cannot get pass this and have to recreate the database. I.e. the
database in failed state.
New test run.
I run the program but this time execute the create table statement. No
exception.
Re-run the program but with the select statement on a table that do not exist.
Program will pass con.Open and throw exception on the cmd.ExecuteScalar and the
exception says table unknown. I.e. an expected exception.
I can now re-run the program several times and the con.Open will always work
and I get the expected exception of table unknown.
It seems that if I do a Select on at table on an empty database then this error
happen, otherwise not.
Was not sure to report this as blocker, but it is a blocker for me as I cannot
use Firebird with such a error in a production environment.
*************************************************************
class ConnectionInformation
{
public ConnectionInformation()
{
this.User = "SYSDBA";
this.Password = "masterkey";
this.ServerType = FbServerType.Embedded;
this.DatabaseFileName = "TaragonTrader.fdb";
this.CharacterSet = "UTF8";
this.ClientLibraryPath = @"fbembed.dll";
this.Dialect = 3;
****************************************************************************************
class Program
{
static void Main(string[] args)
{
var connectionInformation = new ConnectionInformation();
if (File.Exists(connectionInformation.DatabaseFileName) == false)
FbConnection.CreateDatabase(connectionInformation.ConnectionString);
var con = new FbConnection(connectionInformation.ConnectionString);
try
{
con.Open();
}
catch (Exception ex)
{
throw ex;
}
//string sqlStatement = @"CREATE TABLE QuoteDataProvider (" +
// "Id INT Not Null Primary Key, " +
// "MyCol1 VarChar(15), " +
// "MyCol2 VarChar(80) " +
// ")";
string sqlStatement = "Select Count(*) From QuoteDataProvider2";
FbCommand cmd = new FbCommand();
cmd.CommandText = sqlStatement;
cmd.Connection = con;
try
{
var e = cmd.ExecuteScalar();
}
catch (Exception ex)
{
//this.Close();
throw ex;
}
}
}
--
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
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel