suche 36x36
  • Admin-Scout-small-Banner
           

    CURSOR Admin-Scout

    get the ultimate tool for Informix

    pfeil  
Latest versionsfixlist
14.10.xC10 FixList
12.10.xC16.X5 FixList
11.70.xC9.XB FixList
11.50.xC9.X2 FixList
11.10.xC3.W5 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

Informix - Problem description

Problem IT21014 Status: Closed

ONCHECK -CI REPORTS INDEX CORRUPTION ON INDEX AFTER ALTER TABLE ADD
PRIMARY KEY CONSTRAINT COMMAND RUN

product:
INFORMIX SERVER / 5725A3900 / C10 - IDS 12.10
Problem description:
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 reproduce 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 Summary:
Local Fix:
Solution
Workaround
not known / see Local fix
Comment
This APAR is a duplicate of IT27579
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
13.06.2017
25.09.2019
26.10.2019
Problem solved at the following versions (IBM BugInfos)
Problem solved according to the fixlist(s) of the following version(s)
Informix EditionsInformix Editions
Informix Editions
DocumentationDocumentation
Documentation
IBM NewsletterIBM Newsletter
IBM Newsletter
Current BugsCurrent Bugs
Current Bugs
Bug ResearchBug Research
Bug Research
Bug FixlistsBug Fixlists
Bug Fixlists
Release NotesRelease Notes
Release Notes
Machine NotesMachine Notes
Machine Notes
Release NewsRelease News
Release News
Product LifecycleProduct Lifecycle
Lifecycle
Media DownloadMedia Download
Media Download