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

                 Key: CORE-4467
                 URL: http://tracker.firebirdsql.org/browse/CORE-4467
             Project: Firebird Core
          Issue Type: Bug
          Components: Engine
    Affects Versions: 2.5.2 Update 1
         Environment: Linux x64, 24GB RAM, i5-2400 CPU, SSD Corsair Force3, FB 
SC
            Reporter: Ivan Arabadzhiev


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.

-- 
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

        

------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to