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

Improve validation and fix of lost data pages [CORE4978] #5269

Closed
firebird-automations opened this issue Oct 26, 2015 · 5 comments
Closed

Improve validation and fix of lost data pages [CORE4978] #5269

firebird-automations opened this issue Oct 26, 2015 · 5 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @romansimakov

I investigated one corrupted database and find that it has very many orphan backversions but few in-use ones. That's because of
return corrupt(tdbb, VAL_REL_CHAIN_ORPHANS, relation, vdr_rel_backversion_counter - vdr_rel_chain_counter, vdr_rel_chain_counter);
Then I find that there are data pages with backversions but they are absent in pointer page. I found that it may happen if server crashed before flushing PP. Carefulwrite work correctly in this case.
Improvement can be to build map of visited datapages directly while walking relation and map of visited data pages by reference to backversions. In such way we can find real data pages and even return them into pointer page and page inventary page.

Commits: ce8d458 e7171b3 FirebirdSQL/fbt-repository@7eb9d4c FirebirdSQL/fbt-repository@6ab14d6

@firebird-automations
Copy link
Collaborator Author

Modified by: @romansimakov

assignee: Roman Simakov [ roman-simakov ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @romansimakov

Thanks to Vlad for his help with patch.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Fix Version: 2.5.5 [ 10670 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @romansimakov

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 3.0 RC2 [ 10048 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

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

QA Status: No test => Cannot be tested

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