IBM Support

IT36076: EXECUTING ADMIN_MOVE_TABLE ON A TABLE WITH SOME KINDS OF STATEMENTS > 64KB SIZE, WILL RETURNED SQL0104N OR SQL1224N

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • 1.  Problem description
    
    If ADMIN_MOVE_TABLE is executed on a table in which some
    specific kinds of statements larger than 64 KB size are defined,
    SQL0104N(syntax error) will be returned or SQL1224N will be
    returned (and instance will be crash with SYGSEGV).
    
    The ADMIN_MOVE_TABLE procedure takes a 64 KB chunk of strings
    inside a loop and concatenates the segments to create a complete
    string.
    However, if the data is larger than the buffer provided (64 KB),
    the defect in logic for storing data in the buffer may make the
    statement incomplete and return SQL0104N or crash the instance
    due to a memory access violation.
    
    * Statements possibly affected by this issue are:
    -- CREATE TRIGGER
    -- CREATE VIEW
    -- the statistics profile statement ('STATISTICS_PROFILE' column
    in SYSCAT.TABLES)
    
    2.  Diagnostic information
    
    <Case1: SQL0104N is returned>
    
    db2diag.log is as below.
    
    2018-09-03-13.24.31.675288+540 E345017A1077         LEVEL: Error
    PID     : 22393                TID : 70367112524205 PROC
    :db2sysc 0
    INSTANCE: db2inst             NODE : 000           DB   : SAMPLE
    APPHDL  : 0-7                  APPID:*LOCAL.db2inst.180809072000
    AUTHID  : TEST               HOSTNAME: test_host
    EDUID   : 23                   EDUNAME: db2agent (SAMPLE) 0
    FUNCTION: DB2 UDB, database application extension for utilities,
    adminotm_online_table_move, probe:26296
    DATA #1 : String, 5 bytes
    SAMPLE
    DATA #2 : String, 33 bytes
    TEST_TABLE_FOR_REPRO_SQL0104N
    DATA #3 : String, 4 bytes
    MOVE
    DATA #4 : SQLCA, PD_DB2_TYPE_SQLCA, 136 bytes
     sqlcaid : SQLCA     sqlcabc: 136   sqlcode: -104   sqlerrml: 47
     sqlerrmc: TEST_TABLE2_FOR_REPRO_SQL0104N
            , END-OF-STATEMENT
     sqlerrp : SQL10055
     sqlerrd : (1) 0x00000000      (2) 0x00000000      (3)
    0x00000000
               (4) 0x00000000      (5) 0x00000000      (6)
    0x00000000
     sqlwarn : (1)      (2)      (3)      (4)        (5)       (6)
    
               (7)      (8)      (9)      (10)        (11)
     sqlstate: 42601
    
    
    
    <Case2: SQL1224N is returned (and instance is crashed)>
    
    The stack trace from trap.txt is as below.
    
    <StackTrace>
    -------Frame------ ------Function + Offset------
    0x000000000000F480 ?unknown + 0x0
    0x09000002E861CB04 getDataAsString__15StoredProcedureFiUsP5sqlca
    + 0x2A4
    0x09000002E86FA5DC
    dropDependantObjects__3OtmFPCcN21PPcPiRlP5sqlca + 0xADC
    0x09000002E87088EC renameTables__3OtmFP5sqlca + 0x36C
    0x09000002E87324BC swapOffline__3OtmFbT1P5sqlca + 0x1ABC
    0x09000002E8736290 swap__3OtmFP5sqlca + 0xDB0
    0x09000002E87418A0
    admin_move_table__FPCcN91N21PsN913_N213_P13sqludf_dbinfoP5sqlcaP
    FUiPPv_ibT28_ + 0x20E0
    0x09000002E8747354 admin_move_table_int1 + 0x114
    
    Nested signal handlers detected
    <SignalDetails>
    
    
    And the stack trace from gdb_out.txt is as follows:
    
        [Switching to thread 1 (Thread 0x3fff633ef1b0 (LWP 2205))]
        #0 0x00003fff6b8f69a0 in .__memcpy_power7 () from
    /lib64/power8/libc.so.6
    
        Stack level 0, frame at 0x3fff633b4bf0:
         pc = 0x3fff6b8f69a0 in .__memcpy_power7; saved pc
    0x3fff482866ec
         called by frame at 0x3fff633c4d40
         Arglist at 0x3fff633b4bf0, args:
         Locals at 0x3fff633b4bf0, Previous frame's sp is
    0x3fff633b4bf0
         Saved registers:
         r31 at 0x3fff633b4be8
    
        #0 0x00003fff6b8f69a0 in .__memcpy_power7 () from
    /lib64/power8/libc.so.6
        #1 0x00003fff482866ec in
    ._ZN15StoredProcedure15getDataAsStringEitP5sqlca ()
          from /data29/dbinst29/sqllib/bin/routine/db2dbroutext
        #2 0x00003fff48379218 in
    ._ZN3Otm20dropDependantObjectsEPKcS1_S1_PPcPiRlP5sqlca ()
          from /data29/dbinst29/sqllib/bin/routine/db2dbroutext
        #3 0x00003fff48388d98 in ._ZN3Otm12renameTablesEP5sqlca ()
    from /data29/dbinst29/sqllib/bin/routine/db2dbroutext
        #4 0x00003fff483b6934 in ._ZN3Otm11swapOfflineEbbP5sqlca ()
    from /data29/dbinst29/sqllib/bin/routine/db2dbroutext
        #5 0x00003fff483babf4 in ._ZN3Otm4swapEP5sqlca () from
    /data29/dbinst29/sqllib/bin/routine/db2dbroutext
        <<snip>>
    

Local fix

  • Reducing the size of the statements defined in the target table
    of ADMIN_MOVE_TABLE to 64KB or less.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * ADMIN_MOVE_TABLE users that for example use large trigger    *
    * statements                                                   *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See Error Description                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to Db2 11.1.4.7                                      *
    ****************************************************************
    

Problem conclusion

  • Fix included in Db2 11.1.4.7
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT36076

  • Reported component name

    DB2 FOR LUW

  • Reported component ID

    DB2FORLUW

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-03-02

  • Closed date

    2021-11-29

  • Last modified date

    2021-11-29

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

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

    IT38659

Fix information

  • Fixed component name

    DB2 FOR LUW

  • Fixed component ID

    DB2FORLUW

Applicable component levels

  • RB10 PSN

       UP

  • RB10 PSY

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"DB2 for Linux- UNIX and Windows"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"11.1","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
04 May 2022