IBM Support

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

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as duplicate of another APAR.

Error 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) <=
    cs->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.
    

Local fix

Problem summary

Problem conclusion

Temporary fix

Comments

  • This APAR is a duplicate of IT27579
    

APAR Information

  • APAR number

    IT21014

  • Reported component name

    INFORMIX SERVER

  • Reported component ID

    5725A3900

  • Reported release

    C10

  • Status

    CLOSED DUB

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-06-13

  • Closed date

    2019-09-25

  • Last modified date

    2019-10-26

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSGU8G","label":"Informix Servers"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"C10","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
26 October 2019