Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gfix may report false errors when using in-memory metadata [CORE1481] #1897

Closed
firebird-automations opened this issue Sep 27, 2007 · 9 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: fabianobonin (fabianobonin)

I'm pasting here some parts of a support list thread on 09/26/2007

- I did shut down the database in single user mode
- Before connect to the database, I noticed fbserver is still using the database file
- I did run a large set of DDL and DML instructions to upgrade the database (including dropping 4 tables), using a update application. This application commits after each instruction.
- I closed the upgrade application
- I did run "gfix -v -full" in the database and got the erros:

http://server.domain.com (Server) Wed Sep 26 08:38:46 2007
Database: /database.fdb
Pointer page (sequence 0) lost in table (213)
http://server.domain.com (Server) Wed Sep 26 08:38:52 2007
Database: /database.fdb
Pointer page (sequence 0) lost in table (224)
http://server.domain.com (Server) Wed Sep 26 08:38:52 2007
Database: /database.fdb
Pointer page (sequence 0) lost in table (226)
http://server.domain.com (Server) Wed Sep 26 08:38:52 2007
Database: /database.fdb
Pointer page (sequence 0) lost in table (228)

- The table ID's belongs to the removed tables
- In the next day, i did run gfix again, and there were no errors reported

Commits: 3819575 3af7586

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

assignee: Vlad Khorsun [ hvlad ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

status: Open [ 1 ] => In Progress [ 3 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Reproduced :

1st concole>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'test.fdb';
SQL> create table t (f int);
SQL> insert into t values (1);
SQL> commit;
SQL> drop table t;
SQL> create view t as select 1 as f from rdb$database;
SQL> select * from t;

       F

============
1

2nd console>gfix -shut single -force 0 test.fdb

2nd console>gfix -v -f test.fdb
Summary of validation errors
Number of pointer page errors : 1

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

Version: 2.1 Beta 2 [ 10190 ]

Fix Version: 2.1 RC1 [ 10201 ]

Fix Version: 2.0.4 [ 10211 ]

summary: gfix using in-memory metadata => gfix may report false errors when using in-memory metadata

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Validation code used metadata (jrd_rel) and usually scanned it by himself as validation always performed in exclusive attachment.
But if database was shutdown by administrator and some attachment was left (it is legal as shutdown don't disconnect user attachments) then validation code will use existing metadata.
Error is that validation code didn't check for deleted objects which may left in metadata cache.

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

status: In Progress [ 3 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

Workflow: jira [ 13180 ] => Firebird [ 15376 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

QA Status: No test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants