Informix - Problembeschreibung
Problem IT27579 | Status: Geschlossen |
ONCHECK -CI REPORTS INDEX CORRUPTION ON INDEX AFTER ALTER TABLE ADD PRIMARY KEY CONSTRAINT COMMAND RUN | |
Produkt: | |
INFORMIX SERVER / 5725A3900 / B70 - IDS 11.70 | |
Problembeschreibung: | |
This is a very specific issue. To encounter the problem, the instance needs to have done more then 1 in-place migration, likely including fairly specific server versions. The issue was reproduced using the following steps: 1) Initialize an instance using 7.31 2) Create the following simple table using the listed SQL commands create table t1 (c1 int, c2 int) lock mode row; create unique index t1_idx1 on t1(c1); insert into t1 values(1,1); 3) Do an in-place migration from 7.31 to 10 (this testing specifically used 10.00.FC9) 4) After upgrade completes run the following SQL command alter fragment on index t1_idx init in rootdbs (this should detach the index from being in table as the server created all indexes in 7.x but it also marks this index with a special old style flag indicating that this detached index is fully detached, meaning in the leaf pages the index key has the key value and then fragid/rowid/delete flag entries) 5) Do another in-place migration up to 11.70.FC7W2 6) After upgrade completes run the following SQL alter table t1 add constraint primary key(c1) constraint pk_t1; At this point, the alter table command to also mark the old unique index as a primary key, when it re-writes the partition page, it loses the special old style flag, so the server no long knows the index leaf pages should have fragid/rowid/delete flag entries, so when you run oncheck -cI, it will report errors trying to check the index. If the system was in this state and then upgraded to 12.10, and oncheck -cI was run, the server would then start throwing may assertions that would looks like the following. 03/24/17 12:45:26 Assert Failed: Code assertion at rsbtcs.c:308 03/24/17 12:45:26 IBM Informix Dynamic Server Version 12.10.FC8W1 03/24/17 12:45:26 Who: Session(7040, informix@server, 19955, 113f64c68) Thread(16085, oncheckm, 113f2b0b0, 9) File: rsdebug.c Line: 3882 03/24/17 12:45:26 Results: rowoff+BT_RIDL_FLAG_SIZE+sizeof(int4) bc_slotptr+cs->bc_slotlen With a stack like this: afhandler() affail_interface() rsam_assert() ridl_ld_elem() ckfnode() ckfnode() ckfnode() ischeck_idx() fm_indexcheck() fmoncheck() doidxcheck() chkarg4() sqmain() startup() At this point the index could be dropped and re-created which would get around the issue. | |
Problem-Zusammenfassung: | |
**************************************************************** * USERS AFFECTED: * * Users of IDS versions prior to 11.70.xC9W1 and 12.10.xC10. * **************************************************************** * PROBLEM DESCRIPTION: * * ONCHECK -CI REPORTS INDEX CORRUPTION ON INDEX AFTER ALTER * * TABLE ADD PRIMARY KEY CONSTRAINT COMMAND RUN * **************************************************************** * RECOMMENDATION: * * Upgrade to IDS 11.70.xC9W1 or 12.10.xC10. * **************************************************************** | |
Local-Fix: | |
Lösung | |
Workaround | |
keiner bekannt / siehe Local-Fix | |
Weitere Daten | |
Datum - Problem gemeldet : Datum - Problem geschlossen : Datum - der letzten Änderung: | 26.12.2018 26.10.2019 26.10.2019 |
Problem behoben ab folgender Versionen (IBM BugInfos) | |
11.70.xC9, 12.10.xC10 | |
Problem behoben lt. FixList in der Version |