IBM Support

JR30220: TRAP WITH "DOUBLE FREE." AFTER SQLERRETURNFMPTOPOOL, SQLERCLEANTHREADRESOURCE, SQLERREMOVEALLIPCFORROW IN DB2DIAG.LOG

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A 64-bit database manager instance might trap after you run a
    32-bit stored procedure,
    with a sequence of messages in db2diag.log that includes
    messages like these, including "Double free.":
    
    
    2999-12-31-23.59.59.99999+0000 XXXXXXXXXXXXX      LEVEL: Warning
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : X-XXX                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, routine_infrastructure, sqlerReturnFmpToPool,
    probe:1001
    DATA #1 : String, 4 bytes
    PID:
    DATA #2 : SQLO_PID, PD_TYPE_SQLO_PID, 4 bytes
    XXXX
    DATA #3 : String, 10 bytes
    stateFlags
    DATA #4 : Hex integer, 4 bytes
    0x00000010
    
    [...]
    
    2999-12-31-23.59.59.99999+0000 XXXXXXXXXXXXX      LEVEL: Severe
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : X-XXX                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, routine_infrastructure,
    sqlerCleanThreadResource, probe:7
    RETCODE : ZRC=0x850F0005=-2062614523=SQLO_NOSEG
              "No Storage Available for allocation"
              DIA8305C Memory allocation failure occurred.
    
    [...]
    
    2999-12-31-23.59.59.99999+0000 XXXXXXXXXXXXX      LEVEL: Severe
    (OS)
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : X-XXX                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, SQO Memory Management, sqlocshr2, probe:172
    MESSAGE : ZRC=0x850F0005=-2062614523=SQLO_NOSEG
              "No Storage Available for allocation"
              DIA8305C Memory allocation failure occurred.
    CALLED  : OS, -, OpenFileMapping
    OSERR   : 2 "The system cannot find the file specified."
    DATA #1 : String, 33 bytes
    Global\DB2SHMMYINST_XXXXXXXXXXXX
    
    2999-12-31-23.59.59.99999+0000 XXXXXXXXXXXXX      LEVEL: Warning
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: PRODDB2              NODE : 000         DB   :
    PRODEUAP
    APPHDL  : 0-445                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, routine_infrastructure, sqlerReturnFmpToPool,
    probe:2000
    DATA #1 : String, 35 bytes
    Clean up NOT THREADED FMP process:
    DATA #2 : SQLO_PID, PD_TYPE_SQLO_PID, 4 bytes
    XXXX
    
    [...]
    
    2999-12-31-23.59.59.99999+000  XXXXXXXXXXXXX      LEVEL: Error
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : X-XXX                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, routine_infrastructure,
    sqlerRemoveAllIPCforRow, probe:30
    DATA #1 : String, 16 bytes
    sqlocshr failed:
    DATA #2 : unsigned integer, 4 bytes
    2232352773
    
    [...]
    
    2999-12-31-23.59.59.99999+000  XXXXXXXXXXXXX      LEVEL: Severe
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : 0-999                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, SQO Memory Management,
    sqloDiagnoseFreeBlockFailure, probe:30
    DATA #1 : String, 12 bytes
    Double free.
    
    [...]
    
    If the database manager configuration parameter KEEPFENCED=NO
    then a trap which is caused
    by this defect happens immediately after you run the stored
    procedure.
    But if KEEPFENCED=YES then the trap might happen a long time
    after you run
    the stored procedure.
    

Local fix

  • For 64-bit database manager instances, build stored
    procedures as 64-bit executable files.
    

Problem summary

  • Users Affected:
    Users of DB2 9.5 on Linux, UNIX and Windows
    
    
    Problem Description:
    A 64-bit database manager instance might trap after you run a
    32-bit stored procedure.
    
    If the database manager configuration parameter KEEPFENCED=NO
    then a trap which is caused
    by this defect happens immediately after you run the stored
    procedure.
    But if KEEPFENCED=YES then the trap might happen a long time
    after you run
    the stored procedure.
    
    
    
    Problem Summary:
    db2diag.log contains a sequence of messages
    like these, including "Double free.":
    
    
    2999-12-31-23.59.59.99999+0000 XXXXXXXXXXXXX      LEVEL: Warning
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : X-XXX                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, routine_infrastructure, sqlerReturnFmpToPool,
    probe:1001
    DATA #1 : String, 4 bytes
    PID:
    DATA #2 : SQLO_PID, PD_TYPE_SQLO_PID, 4 bytes
    XXXX
    DATA #3 : String, 10 bytes
    stateFlags
    DATA #4 : Hex integer, 4 bytes
    0x00000010
    
    [...]
    
    2999-12-31-23.59.59.99999+0000 XXXXXXXXXXXXX      LEVEL: Severe
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : X-XXX                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, routine_infrastructure,
    sqlerCleanThreadResource, probe:7
    RETCODE : ZRC=0x850F0005=-2062614523=SQLO_NOSEG
              "No Storage Available for allocation"
              DIA8305C Memory allocation failure occurred.
    
    [...]
    
    2999-12-31-23.59.59.99999+0000 XXXXXXXXXXXXX      LEVEL: Severe
    (OS)
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : X-XXX                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, SQO Memory Management, sqlocshr2, probe:172
    MESSAGE : ZRC=0x850F0005=-2062614523=SQLO_NOSEG
              "No Storage Available for allocation"
              DIA8305C Memory allocation failure occurred.
    CALLED  : OS, -, OpenFileMapping
    OSERR   : 2 "The system cannot find the file specified."
    DATA #1 : String, 33 bytes
    Global\DB2SHMMYINST_XXXXXXXXXXXX
    
    2999-12-31-23.59.59.99999+0000 XXXXXXXXXXXXX      LEVEL: Warning
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: PRODDB2              NODE : 000         DB   :
    PRODEUAP
    APPHDL  : 0-445                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, routine_infrastructure, sqlerReturnFmpToPool,
    probe:2000
    DATA #1 : String, 35 bytes
    Clean up NOT THREADED FMP process:
    DATA #2 : SQLO_PID, PD_TYPE_SQLO_PID, 4 bytes
    XXXX
    
    [...]
    
    2999-12-31-23.59.59.99999+000  XXXXXXXXXXXXX      LEVEL: Error
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : X-XXX                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, routine_infrastructure,
    sqlerRemoveAllIPCforRow, probe:30
    DATA #1 : String, 16 bytes
    sqlocshr failed:
    DATA #2 : unsigned integer, 4 bytes
    2232352773
    
    [...]
    
    2999-12-31-23.59.59.99999+000  XXXXXXXXXXXXX      LEVEL: Severe
    PID     : XXXX                 TID  : XXXX        PROC :
    db2syscs.exe
    INSTANCE: MYINST               NODE : XXX         DB   : MYDB
    APPHDL  : 0-999                APPID: XXXXXXXX.XXXX.XXXXXXXXXXXX
    AUTHID  : MYUSER
    FUNCTION: DB2 UDB, SQO Memory Management,
    sqloDiagnoseFreeBlockFailure, probe:30
    DATA #1 : String, 12 bytes
    Double free.
    
    [...]
    

Problem conclusion

  • Problem was first fixed in Version 9.5 Fix Pack 3
    

Temporary fix

  • For 64-bit database manager instances, build stored
    procedures as 64-bit executable files.
    

Comments

APAR Information

  • APAR number

    JR30220

  • Reported component name

    DB2 UDB ESE WIN

  • Reported component ID

    5765F4101

  • Reported release

    950

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2008-08-14

  • Closed date

    2009-03-13

  • Last modified date

    2009-03-13

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

    JR30209

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

Fix information

  • Fixed component name

    DB2 UDB ESE WIN

  • Fixed component ID

    5765F4101

Applicable component levels

  • R910 PSN

       UP

  • R950 PSN

       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":"950","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
12 October 2021