IBM Support

IC69277: BSU HEAP MEMORY LEAK WHEN ABP PROCESSING CAN'T SPAWN NEW AGENT -1223

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • BSU heap memory leak occurs if ABP (Asynchronous Background
    Processing) hits the maximim allowed agents.
    Typically the following error message may be seen in
    db2diag.log:
    
    2010-03-17-02.05.26.523520+000 I1762474A390       LEVEL: Error
    PID     : 3170456              TID  : 1           PROC :
    db2taskp (DBDB) 0
    INSTANCE: inst1                NODE : 000         DB   : DBDB
    APPHDL  : 0-1087               APPID: *LOCAL.DB2.100317021212
    AUTHID  : INST1
    FUNCTION: DB2 UDB, base sys utilities, sqleGetAgent, probe:70
    MESSAGE : Agent not allocated, sqlcode = -1223
    
    You might see those ABP agents (db2taskp) spawned as part of
    Asynchronous Index Cleanup which happens if you DETACH
    partitions on a range partitioned table where indexes do exists.
    
    If this occurs DB2 may leak a small amount of memory. The leak
    may be observed in the db2pd memory block output for the BSU
    heap (pool 71):
    
    Memory blocks in DBMS set for pool 71.
    
    Address            PoolID     PoolName     BlockAge
    Size(Bytes)  I LOC   File
    0x0780000001B40068 71         bsuh         60549      27
      1 287   3997065017
    0x0780000001B400A8 71         bsuh         60550      9
      1 256   1410089717
    0x0780000001B400E8 71         bsuh         60554      27
      1 287   3997065017
    0x0780000001B40128 71         bsuh         60555      9
      1 256   1410089717
    ...
    Memory blocks sorted by size for bsuh pool:
    PoolID     PoolName   TotalSize(Bytes)     TotalCount LOC   File
    71         bsuh       3350322              124086     287
    3997065017
    71         bsuh       1116774              124086     256
    1410089717
    ...
    
    The leak occurs in a pair of the two allocations above.
    
    Over time the BSU heap may eventually become exhausted at which
    point an SQLO_NOMEM_BSUH ("No memory available in 'BSU Heap'")
    error will be reported in the db2diag.log.
    

Local fix

  • There is no real work around for the leak, however it is small
    an is unlikely to affect systems that are periodically
    restarted, so
    this may be a means to avoid running out of BSU heap space.
    
    Try to avoid running many DETACH commands in parallel or raise
    dbm cfg MAXAGENT setting. How many ABP agents can be spawned
    depends indirectly on the MAXAGENT configuration parameter. Note
    there is still no guarantee to avoid the leak completly, but
    this helps to probably reduce the amount of leaked memory.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * ALL                                                          *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * BSU heap memory leak occurs if ABP (AsynchronousBackground   *
    * Processing) hits the maximim allowedagents. Typically the    *
    * following error message may beseen in                        *
    * db2diag.log:2010-03-17-02.05.26.523520+000 I1762474A390      *
    * LEVEL:ErrorPID    : 3170456              TID  : 1            *
    * PROC :db2taskp (DBDB) 0INSTANCE: inst1                NODE : *
    * 000        DB  : DBDBAPPHDL  : 0-1087              APPID:    *
    * *LOCAL.DB2.100317021212AUTHID  : INST1FUNCTION: DB2 UDB,     *
    * base sys utilities, sqleGetAgent,probe:70 MESSAGE : Agent    *
    * not allocated, sqlcode = -1223You might see those ABP agents *
    * (db2taskp) spawned as partof Asynchronous Index Cleanup      *
    * which happens if you DETACHpartitions on a range partitioned *
    * table where indexes doexists.If this occurs DB2 may leak a   *
    * small amount of memory.The leak may be observed in the db2pd *
    * memory blockoutput for the BSU heap (pool 71):Memory blocks  *
    * in DBMS set for pool 71.Address            PoolID            *
    * PoolName    BlockAgeSize(Bytes)  I LOC                       *
    * File0x0780000001B40068 71        bsuh        60549      271  *
    * 287  39970650170x0780000001B400A8 71        bsuh             *
    * 60550      91 256  14100897170x0780000001B400E8 71           *
    * bsuh        60554      271 287  39970650170x0780000001B40128 *
    * 71        bsuh        60555      91 256  1410089717...Memory *
    * blocks sorted by size for bsuh pool:PoolID    PoolName       *
    * TotalSize(Bytes)    TotalCount LOC  File71        bsuh       *
    * 3350322              124086    287399706501771        bsuh   *
    *    1116774              124086    2561410089717...The leak   *
    * occurs in a pair of the two allocations above.Over time the  *
    * BSU heap may eventually becomeexhausted at which point an    *
    * SQLO_NOMEM_BSUH("No memory available in 'BSU Heap'") error   *
    * will bereported in the db2diag.log.                          *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to DB2 UDB Version 9.7 FixPak 3                      *
    ****************************************************************
    

Problem conclusion

  • First fixed in DB2 UDB Version 9.7, FixPak 3
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC69277

  • 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

    2010-06-16

  • Closed date

    2010-09-27

  • Last modified date

    2010-09-27

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

    IZ74771

  • 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:
27 September 2010