Informix - Problem description
Problem IT33917 | Status: Closed |
CONTINOOUS PREPARE/DECLARE/FREE OF AN STATEMENT IN AN FOREACH LOOP IN SPL CAUSE A LINEAR MEMORY CONSUMPTION IN SESSION RALLOC | |
product: | |
INFORMIX SERVER / 5725A3900 / C10 - IDS 12.10 | |
Problem description: | |
When I have the following logic in an Stored Procedure create procedure sp () foreach select into val1, val2 -- select returns 15 Mio ++ rows let variable = string|| string || string || val1 || string .... || val2 prepare ID from variable declare cursor on ID ... free cursor free ID end foreach end procedure; and execute this SP, it will continoously growth on sessions RALLOC part until SHMTOTAL or systems available memory. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * Users of Informix Server prior to 12.10.xC15 and 14.10.xC5. * **************************************************************** * PROBLEM DESCRIPTION: * * When the following logic is in a Stored Procedure: * * * * create procedure sp () * * * * foreach select into val1, val2 -- select returns 15 Mio ++ * * rows * * let variable = string|| string || string || val1 || * * string .... || val2 * * prepare ID from variable * * declare cursor on ID * * ... * * free cursor * * free ID * * end foreach * * * * end procedure; * * * * and the stored procedure is executed, it will continuously * * growth in a sessions * * RALLOC part until SHMTOTAL or the systems available memory. * **************************************************************** * RECOMMENDATION: * * Upgrade to Informix Server 12.10.xC15 (when available) or * * 14.10.xC5. * **************************************************************** | |
Local Fix: | |
Solution | |
Workaround | |
**************************************************************** * USERS AFFECTED: * * Users of Informix Server prior to 12.10.xC15 and 14.10.xC5. * **************************************************************** * PROBLEM DESCRIPTION: * * When the following logic is in a Stored Procedure: * * * * create procedure sp () * * * * foreach select into val1, val2 -- select returns 15 Mio ++ * * rows * * let variable = string|| string || string || val1 || * * string .... || val2 * * prepare ID from variable * * declare cursor on ID * * ... * * free cursor * * free ID * * end foreach * * * * end procedure; * * * * and the stored procedure is executed, it will continuously * * growth in a sessions * * RALLOC part until SHMTOTAL or the systems available memory. * **************************************************************** * RECOMMENDATION: * * Upgrade to Informix Server 12.10.xC15 (when available) or * * 14.10.xC5. * **************************************************************** | |
Comment | |
Fixed in Informix Server 12.10.xC15 and 14.10.xC5. | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 14.08.2020 04.02.2021 04.02.2021 |
Problem solved at the following versions (IBM BugInfos) | |
Problem solved according to the fixlist(s) of the following version(s) |