IBM Support

IT03924: MEMORY ALLOCATION ERROR -208 ON OPEN CURSOR WHEN LOOPING PREPARE/DECLARE/OPEN/CLOSE WITH NO FREE

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

  • The ESQL/C program reproduces the problem when compiled on
    redhat with both
    
      ESQL/C 3.50.UC3 (esql -m32 -static repro.ec -o repro) and
      ESQL/C 3.50.FC7 (esql -m64 -static repro.ec -o repro)
    
    The problem reproduces against IDS 12.10.FC3 on linux x86_64,
    but does not repro against 11.50.FC9 on same platform.
    
    The problem does not reproduce if the client sets env variable
    IFX_AUTOFREE=1
    
    Given the repro.ec file below, the problem reproduces on the 4th
    call to do_cursor() in the $open.  It does not reproduce
    when the second occurrence of "$EXECUTE Temp_Slot_del;" just
    before the return from do_cursor() is commented out.
    
    In my test, I created stores_demo via
    
      $ ifx dbaccessdemo7 stores_demo
    
    Here is the contents of the file repro.ec:
    ***************************************
    
    #include <stdio.h>
    
    void
    do_cursor()
    {
        $char demoquery[80];
        $char workbuf[256];
        $char queryvalue[2];
    
        $CREATE TEMP TABLE TEMP_SLOT(c1 integer, c2 integer);
        sprintf(workbuf,"insert into temp_slot values(1,1)");
        $PREPARE Temp_Slot_ins FROM :workbuf;
        $EXECUTE Temp_Slot_ins;
    
        sprintf(demoquery, "%s %s", "select fname, lname from
    customer", "where lname < ? ");
    
        EXEC SQL prepare demo2id from :demoquery;
        if (sqlca.sqlcode != 0)
            {
            printf("PREPARE error %d\n",sqlca.sqlcode);
            exit(4);
            }
        EXEC SQL declare demo2cursor cursor for demo2id;
        if (sqlca.sqlcode != 0)
            {
            printf("DECLARE error %d\n",sqlca.sqlcode);
            exit(4);
            }
        sprintf(queryvalue, "C");
        EXEC SQL open demo2cursor using :queryvalue;
        if (sqlca.sqlcode != 0)
            {
            printf("OPEN error %d\n",sqlca.sqlcode);
            exit(4);
            }
    
        EXEC SQL close demo2cursor;
    
        sprintf(workbuf,"DELETE FROM TEMP_SLOT");
        $PREPARE Temp_Slot_del FROM :workbuf;
        $EXECUTE Temp_Slot_del;
        $DROP TABLE TEMP_SLOT;
    
        $EXECUTE Temp_Slot_del;
        printf("Exeute Temp_Slot_del %d\n",sqlca.sqlcode);
        return;
    }
    
    main()
    {
        printf("DEMO2 Sample ESQL Program running.\n\n");
        EXEC SQL WHENEVER ERROR STOP;
        EXEC SQL connect to 'stores_demo';
        do_cursor();
        do_cursor();
        do_cursor();
        do_cursor();
        do_cursor();
        do_cursor();
        do_cursor();
        do_cursor();
        do_cursor();
        do_cursor();
        do_cursor();
        do_cursor();
    };
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Those not explicitly freeing statements                      *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See Error Description                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Update to IDS-12.10.xC5                                      *
    ****************************************************************
    

Problem conclusion

  • Problem Fixed In IDS-12.10.xC5
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT03924

  • Reported component name

    INFORMIX SERVER

  • Reported component ID

    5725A3900

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-08-21

  • Closed date

    2015-10-16

  • Last modified date

    2015-10-16

  • 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

    INFORMIX SERVER

  • Fixed component ID

    5725A3900

Applicable component levels

  • RB10 PSN

       UP

  • RB10 PSY

       UP

  • RB50 PSN

       UP

  • RB50 PSY

       UP

  • RB70 PSN

       UP

  • RB70 PSY

       UP

  • RC10 PSN

       UP

  • RC10 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":"C10","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
16 October 2015