|
[
Permalink
| « Hide
]
alainsegura added a comment - 09/Jul/11 05:45 AM
The database seem to be in a correct state while the initial connection is active. When the connection is closed, impossible to reconnect to the database, the engine return the error page X is of wrong type expected 4 found 7.
Reproducible test case required.
I'am investigating this problem, at this time a have found this:
*without the usage of global temporary table ... on commit preserve rows -> no database corrution *with the usage of command recreate table xxxx global temporary on commit preserve rows --> after hundred of transactions --> the database get corrupted. reproductible case coming soon... Sorry, i have created a new issue (core 3550) for a new problem, but in fact, it's the same issue, see core-3550 for detail and a reproductible case
To reproduce:
1. Create GTT ON COMMIT PRESERVE ROWS and index on it in the same transaction : set autoddl off; create global temporary table test (x int) on commit preserve rows; create index xtest on test (x); commit; 2. Make engine write record into RDB$PAGES with RDB$RELATION_ID = 0. It happens when new TIP or generator page is created. For example, start page_size * 4 transactions to create new TIP page: execute block as declare variable i integer = 0; begin while (i < 32800) do -- i have page size 8KB begin in autonomous transaction do execute statement 'insert into test values (1)'; i = i + 1; end end 3. Disconnect and connect again. Error page XXX is of wrong type expected 4 found YYY or Error while trying to read from file Reached the end of the file. will be raised. |
|||||||||||||||||||||||||||||||||||||||||||||||||||