IBM Support

IC66156: CONVERSION FROM IDS 10 TO 11.50.XC6 ADDS MANY SHARED MEMORY SEGMENTS AFTER CHECKING FOR FREE SPACE IN PARTITION HEADER PAGES

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • When upgrading from IDS 10 to IDS 11.50.xC6, the conversion
    process begins dynamically allocating new shared memory segments
    immediately after the following check for free space in
    partition header pages as noted in the online.log.  Depending
    upon how many chunks are allocated to the instance being
    converted, this can result in IDS running out of shared memory
    and crashing before the conversion completes.
    
    The number of segments allocated seems to correspond to the
    number of chunks defined in the instance.  The larger the number
    of chunks defined, the more likely the conversion will run out
    of shared memory.  In testing, even a box with large memory
    resources ran out of shared memory when converting an instance
    with 2047 chunks.
    
    By comparison, the same conversion process to IDS 11.50.xC5W4,
    with the same 2047 chunk instance, jumps right from the check
    for free space in partition header pages into conversion control
    block initialization, without adding any new segments.
    
    Example of the 11.50.xC6 online.log output during the
    conversion:
    
              12:05:02  Conversion from version 10.00 Started
              12:05:20  Checking partition header pages for needed
    free space
              12:05:20  Checking for free space in partition header
    pages succeeded
              12:05:20  Segment locked: addr=c000000033400000,
    size=8388608
              12:05:20  Dynamically allocated new virtual shared
    memory segment (size 8192KB)
              12:05:20  Memory sizes:resident:15968 KB,
    virtual:50896 KB, no SHMTOTAL limit
              12:05:20  Segment locked: addr=c000000033c00000,
    size=8388608
              ...
              ...
              ...
              12:05:30  Memory sizes:resident:15968 KB,
    virtual:2434768 KB, no SHMTOTAL limit
              12:05:30  Segment locked: addr=c0000000c5400000,
    size=8388608
              12:05:30  Dynamically allocated new virtual shared
    memory segment (size 8192KB)
              12:05:30  Memory sizes:resident:15968 KB,
    virtual:2442960 KB, no SHMTOTAL limit
              12:05:30  shmat: [EMFILE][24]: out of shared memory
    segments, check system SHMSEG
              12:05:30  out of virtual shared memory
    
              12:05:30  oninit: Fatal error in shared memory
    initialization
    
    
    By comparison, here is the same section of the online.log in
    11.50.FC5W4:
    
              13:58:09  Conversion from version 10.00 Started
              13:58:27  Checking partition header pages for needed
    free space
              13:58:27  Checking for free space in partition header
    pages succeeded
              13:58:27  Conversion control block initialization
              13:58:27  Succeeded
              13:58:27  Initialization of Conversion Session
              ...
              ...
              ...
              13:59:38  Conversion Completed Successfully
    
    The test for this difference in 11.50.FC6 behavior is fairly
    straightforward.  Create an IDS 10 instance with a 2 GB cooked
    file and run a script to create 2047 chunks in that single file,
    such as:
    
    onspaces -c -d dbsp0001 -p /tmpdata/informix/cooked_files/dbsp1
    -o 0 -s 1000
    onspaces -c -d dbsp0002 -p /tmpdata/informix/cooked_files/dbsp1
    -o 1000 -s 1000
    onspaces -c -d dbsp0003 -p /tmpdata/informix/cooked_files/dbsp1
    -o 2000 -s 1000
    onspaces -c -d dbsp0004 -p /tmpdata/informix/cooked_files/dbsp1
    -o 3000 -s 1000
    ...
    ...
    onspaces -c -d dbsp2044 -p /tmpdata/informix/cooked_files/dbsp1
    -o 2043000 -s 1000
    onspaces -c -d dbsp2045 -p /tmpdata/informix/cooked_files/dbsp1
    -o 2044000 -s 1000
    onspaces -c -d dbsp2046 -p /tmpdata/informix/cooked_files/dbsp1
    -o 2045000 -s 1000
    onspaces -c -d dbsp2047 -p /tmpdata/informix/cooked_files/dbsp1
    -o 2046000 -s 1000
    onspaces -c -d dbsp2048 -p /tmpdata/informix/cooked_files/dbsp1
    -o 2047000 -s 1000
    
    Steps to run the test:
    1. Create 2047 chunks in the IDS 10 instance.
    2. Create a backup of the instance for later restore back to IDS
    10
    3. Shutdown the instance.
    
    4. Start the upgrade of the instance using IDS 11.50.FC6
    software.
    5. Instance will immediately begin allocating several shared
    memory segments, and may run out of shared memory and crash.
    
    6. Restore the IDS 10 instance from backup.
    7. Start the upgrade of the instance using IDS 11.50.FC5W4
    8. Note that this upgrade will complete successfully.  There may
    be a couple of shared memory segments added here or there during
    the process, but not at all near the number seen in FC6.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * IDS users with lots of chunk migrating to 11.50xC6           *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * When there are many chunks, the engine allocates lots of     *
    * memory during conversion if conversion guard is turned on.   *
    * For 2048 chunks on 4K pagesize platforms, the engine         *
    * allocates 4GB memory.  On 2K pagesize platforms, the engine  *
    * allocates 2GB memory.                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to IDS 11.50.xC7 and above.                          *
    ****************************************************************
    

Problem conclusion

  • This problem is fixed to allocate less memory during conversion
    in IDS 11.50.xC7.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC66156

  • Reported component name

    IBM IDS ENTRP E

  • Reported component ID

    5724L2304

  • Reported release

    B15

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-02-08

  • Closed date

    2010-10-15

  • Last modified date

    2010-10-15

  • 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

    IBM IDS ENTRP E

  • Fixed component ID

    5724L2304

Applicable component levels

  • RB15 PSY

       UP

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

Document Information

Modified date:
15 October 2010