[Ace-users] Re: [tao-bugs] run out of memory caused by bounded recursive sequence

Johnny Willemsen jwillemsen at remedy.nl
Mon Aug 13 03:22:38 CDT 2007


Hi,

Having looked briefly at the code, it looks like the bounded sequences do
allocate the data for all its values at creation time, with a recursive
definition this then leads to a stack recursion. This seems not to be tested
anywhere in TAO at this moment. Please deliver a test program as reproducer
(extend one of the existing ones) and file this problem in bugzilla (see
http://deuce.doc.wustl.edu/bugzilla/index.cgi). We welcome patches to fix
this issue.

Regards,

Johnny Willemsen
Remedy IT
Postbus 101
2650 AC  Berkel en Rodenrijs
The Netherlands
www.theaceorb.nl / www.remedy.nl  

*** Integrated compile and test statistics see
http://scoreboard.theaceorb.nl ***
*** Commercial service and support for ACE/TAO/CIAO             ***
*** See http://www.theaceorb.nl/en/support.html                 ***

"Stanislaw Trytek" <tryteks at pit.edu.pl> wrote in message
news:<mailman.1794.1186991942.5286.tao-bugs at mail.cse.wustl.edu>...
> 
>      TAO VERSION: 1.5.10
>      ACE VERSION: 5.5.10
> 
>      HOST MACHINE and OPERATING SYSTEM:
> 	linux debian sarge
> 
>      COMPILER NAME AND VERSION (AND PATCHLEVEL): gcc-3.3
> 
>      THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE
> 	threads = 0
> 
>      AREA/CLASS/EXAMPLE AFFECTED:
> 	bounded sequence
> 
> 
>      DOES THE PROBLEM AFFECT:
> 	EXECUTION
> 
>      SYNOPSIS:
> 	Definition of bounded recursive sequence causes segmentation fault
> 
>      DESCRIPTION:
> 	We are moving from x.4.2 version to 5.5.10 and have encountered
strange  
> behaviour.
> 	The problem concerns only bounded sequences ( unbounded work fine).
This  
> new feature because
> 	in version x.4.2 it worked fine. Has something changed in this case?
> 
> 	This is simple idl file to picture the problem:
> 	__________________________________
> 	module Test{
> 		struct Node {
> 			sequence <Node, 256> nodes;
> 		};
> 	
> 	}
> 	__________________________________
> 
> 
> 	As defined
> 	
> 	Test::Node node;
> 
> 	it tries to allocate recursively the whole memory, so that finally
it  
> runs out of memory and causes segmentation fault.
> 
> That is gdb output:
> (gdb) where
> #0  0x4051883f in mallopt () from /lib/tls/libc.so.6
> #1  0x40517c43 in malloc () from /lib/tls/libc.so.6
> #2  0x404532fe in operator new () from /usr/lib/libstdc++.so.5
> #3  0x4045342f in operator new[] () from /usr/lib/libstdc++.so.5
> #4  0x4002e8ad in _tao_seq_Test_Node__256 (this=0x300c58fc) at  
> Bounded_Value_Allocation_Traits_T.h:39
> #5  0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300c44f4) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #6  0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300c30ec) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #7  0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300c1ce4) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #8  0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300c08dc) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #9  0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300bf4d4) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #10 0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300be0cc) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #11 0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300bccc4) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #12 0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300bb8bc) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #13 0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300ba4b4) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #14 0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300b90ac) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #15 0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300b7ca4) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #16 0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300b689c) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #17 0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300b5494) at  
> Bounded_Value_Allocation_Traits_T.h:40
> #18 0x4002e8c8 in _tao_seq_Test_Node__256 (this=0x300b408c) at  
> Bounded_Value_Allocation_Traits_T.h:40
> etc. .........
> 	
> 
> Stanislaw Trytek
> 
> -- 
> _________________________________________
> PRZEMYSLOWY INSTYTUT TELEKOMUNIKACJI
> TELECOMMUNICATIONS RESEARCH INSTITUTE
> ul. Poligonowa 30,  04-051 Warszawa,  Poland
> tel: +48 (22) 48 65 232
> fax: +48 (22) 48 65 494
> e-mail: tryteks at pit.edu.pl
> 



More information about the Ace-users mailing list