IBM Support

IT09490: DB2 CRASH CAUSED BY PACKED DESCRIPTOR INCONSISTENCY AFTER ALTER TABLE SET TYPE DBCLOB

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Altering DBCLOB column type to the same type and size as it is
    currently e.g.:
    
    $ db2 "CREATE TABLE T1 (ONE INT, TWO DBCLOB(1000000) INLINE
    LENGTH 1000)"
    $ db2 "ALTER TABLE T1 ALTER TWO SET DATA TYPE DBCLOB(1000000)"
    
    may result in column length not being re-calculated properly if
    given column has INLINE LENGTH specified. That may lead to
    runtime crash because of detected memory corruption while
    executing a query containing that column.
    
    Possible stack (may differ)
    
    FUNCTION: DB2 UDB, SQO Memory Management,
    sqloDiagnoseFreeBlockFailure, probe:10
    MESSAGE : Possible memory corruption detected.
    [...]
    pdLog + 0xE4
    @78@sqloDiagnoseFreeBlockFailure__FP8SMemFBlkCb + 0x158
    sqlofmblkEx + 0xC
    sqlra_sqlC_mem_free_block__FP8sqlrr_cbUlPv + 0x4C
    sqlra_sqlC_mem_free_block__FP8sqlrr_cbUlPv@glue887 + 0x74
    sqlra_fp_dealloc__FP15sqlra_func_path + 0x184
    sqlra_fp_dealloc__FP15sqlra_func_path@glue886 + 0x74
    sqlra_free_section__FP8sqlrr_cbP25sqlra_sql_context_siblingiN23+
    0x324
    sqlra_sqlC_free_section__FP8sqlrr_cbP25sqlra_sql_context_sibling
    i + 0xA0
    sqlra_sqlC_get_stmt__FP8sqlrr_cbPUcUiUciP17sqlra_cached_stmtPi +
    0x8C
    
    
    Query, that was being executed should also be dumped to the
    db2diag.log:
    
    FUNCTION: DB2 UDB, relation data serv, sqlrr_dump_sibling,
    probe:140
    MESSAGE : section stmt
    DATA #1 : Hexdump, 180 bytes
    0x0A000200B1F3F300 : 0A20 2020 2020 2020 2020 2020 2020 2020 .
    0x0A000200B1F3F310 : 2053 454C 4543 5420 5457 4F20 4652 4F4D
    SELECT TWO FROM
    0x0A000200B1F3F320 : 2054 3120 4541 5243 485F 4E41 4D45 2C20 T1
    
    To confirm the problem, you can examine packed descriptor the
    specific table by executing:
    $ db2cat -d <db_name> -s <schema> -n <table_name>
    
    and check if column length is lower than inline length for the
    affected column, which is the symptom of corruption, e.g:
    
    $ db2cat -d sample -s db2inst1 -n t1:
    [...]
     COLUMN NAME               : TWO
     Length of column name     : 3
     Column id                 : 1
     Col type {hex, type}      : 0x0203 ,  DBCLOB
     Col dist. type {hex, type}: 0x004c ,  DBCLOB
     Column length             :   1048
     Blob length               : 2000000
     Statistic offset          : -1
     Flags                     : 0x00000090
                                 - SQLRG_MIXED
                                 - SQLRG_NULLIND
     Codepage                  : 1200
     Collation name            : IDENTITY
     Collation ID in hex       : B'00 00 00 02 FF 00 FF FF
     Statistic Descriptor      : None
     Security Label ID         : 0
    

Local fix

  • Force column length to be re-calculated by altering the table by
    increasing either size or inline length.
    
    Example:
    $ db2 "ALTER TABLE T1 ALTER TWO SET DATA TYPE DBCLOB(1000001)"
    or:
    $ db2 "ALTER TABLE T1 ALTER TWO SET INLINE LENGTH 1001
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * ALL                                                          *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See Error Description                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to DB2 version 9.7 Fix Pack 11                       *
    ****************************************************************
    

Problem conclusion

  • First fixed in DB2 version 9.7 Fix Pack 11
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT09490

  • Reported component name

    DB2 FOR LUW

  • Reported component ID

    DB2FORLUW

  • Reported release

    970

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-06-16

  • Closed date

    2015-10-20

  • Last modified date

    2015-10-20

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

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

Fix information

  • Fixed component name

    DB2 FOR LUW

  • Fixed component ID

    DB2FORLUW

Applicable component levels

  • R970 PSN

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSEPGG","label":"DB2 for Linux, UNIX and Windows"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.7","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
20 October 2015