Unix Technical Forum

RE: 10.0 xC6

This is a discussion on RE: 10.0 xC6 within the Informix forums, part of the Database Server Software category; --> Hi, everybody, The mystery of enormous memory leak in 10.0uc6 is finally solved. Many thanks to IBM Informix development ...


Go Back   Unix Technical Forum > Database Server Software > Informix

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-20-2008, 03:10 PM
Alexey Sonkin
 
Posts: n/a
Default RE: 10.0 xC6

Hi, everybody,

The mystery of enormous memory leak in 10.0uc6 is finally solved.
Many thanks to IBM Informix development team, namely John Lengyel,
for informal, quick and very professional investigation.

It turned out, the problem was introduced by the new functionality:
'Private Memory Caches for Virtual Processors'.
This functionality is targeted for Cheetah, but is introduced
in 10.0xC5. We didn't run into it with xC5, because we found another
problem in xC5 and stopped testing it.
By mistake, the new functionality is turned 'on' by default.
This functionality allowes IDS to allocate large blocks of memory
to private VP caches...

To disable this functionality, one can set the new
$ONCONFIG parameter VP_MEMORY_CACHE_KB to 0 and restart IDS
or do it online with 'onmode -wf VP_MEMORY_CACHE_KB=0'

Most probably, IBM will fix this very shortly.

To reproduce the problem, one can do the following:
-----------
-- CREATE ANSI-MODE DATABASE and connect-----

set isolation to dirty read;
set lock mode to wait 5;

create function str2list(
str lvarchar,separator char default ',')
returning list(lvarchar not null);
define lst list(lvarchar not null);
define dummy lvarchar;
if separator = ',' then
let dummy = 'list{'||str||'}';
else
let dummy = 'list{'||replace(str,separator,',')||'}';
end if;
let lst = dummy;
return lst;
end function;
commit;

create procedure test_spl();
define i int;
define lst list(lvarchar not null);
for i in (1 to 1000000)
let lst = str2list('1,2,3,4,5,6,7,8,9');
end for;
end procedure;
commit;

execute procedure test_spl();
commit;
------------------------------------------

This block would cause a 200-MB memory leak...
Actually, the problem might also exist in 10.0xC5

Alexey Sonkin


-----Original Message-----
From: informix-list-bounces@iiug.org
[mailto:informix-list-bounces@iiug.org] On Behalf Of david@smooth1.co.uk


Please let us know what Tech Support say!


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 06:28 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.UnixAdminTalk.com