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

MODIFY RDB$INDICES failed internal Firebird consistency check (CCH_precedence: block marked (212), file: cch.cpp line: 4390) ---> unsuccessful metadata update [CORE4467] #4787

Closed
firebird-automations opened this issue Jun 20, 2014 · 3 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Ivan Arabadzhiev (intelrullz)

Recently (last month or so) started getting this error on a relatively big database (18 GB, personally I don`t have anything else even close).
Unfortunately, I cannot produce a test case. I have backup/restored the database a few times since the error started appearing and it produces no errors.

There are rarely more than 10-20 active connections to the database (some of the users have extra connections but they mostly perform small read-only transactions).

Under normal workload I have no issues, but there are times when some workstations need to do some relatively heavy synchronizations with the main database - At the time I get the error, there is at least one connection going through a few thousand records (updating them, possibly a few times each) - the transaction could take 5-20 minutes, depending on many factors. During that time, the other connections periodically try to insert/update records and (as expected) get a "lock time-out on wait transaction" when there is a conflict.

Looking at the logs from one of the station - it got the "block marked" error on each retry for about 15 minutes. After that work resumed normally.

I cannot yet say if it is related but the database has a trigger to maintain index statistics, which runs every 1000 records on one of the tables. (it is not new - it has existed since the creation of the database):

DECLARE VARIABLE S VARCHAR(200);
BEGIN
FOR SELECT
RDB$INDEX_NAME
FROM
RDB$INDICES
INTO
:S
DO BEGIN
EXECUTE STATEMENT 'SET STATISTICS INDEX ' || :S || ';';
END
END

Apart from the database size - the environment has not changed much for the past few years. A few new indexes have been added to the mostly used tables due to performance issues with huge volumes.

@firebird-automations
Copy link
Collaborator Author

Commented by: Sean Leyne (seanleyne)

At the moment, given the available details. This is a support issue which should be discussed/posted to the support mailing list (http://groups.yahoo.com/group/firebird-support/join). Only if a specific issue is found which requires developer intervention is it appropriate for this case to be opened.

@firebird-automations
Copy link
Collaborator Author

Modified by: Sean Leyne (seanleyne)

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

resolution: Won't Fix [ 2 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

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

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

1 participant