http://bugs.orocos.org/show_bug.cgi?id=889
Summary: Memory leak in the real-time memory pool when calling
remote operations
Product: RTT
Version: rtt-trunk
Platform: All
OS/Version: GNU/Linux
Status: NEW
Severity: critical
Priority: P3
Component: Real-Time Toolkit (RTT)
AssignedTo: orocos-dev [..] ...
ReportedBy: philippe [dot] hamelin [..] ...
CC: orocos-dev [..] ...
Estimated Hours: 0.0
Created attachment 725
--> http://bugs.orocos.org/attachment.cgi?id=725
Two test cases to reproduce the problem
There's a memory leak when calling remote operation through OperationCaller. It
seems that the memory allocated by LocalOperationCaller::cloneRT() is never
deallocated, even if the destructor of the SendHandle is called. Indeed, the
allocated real-time memory is always growing.
I was able to reproduce the leak is in two different ways. I scoped both
the TC and the TaskContextServer cleanups together and this lead to some
memory still allocated during the real-time memory pool destruction, even if
the TCs were destroyed. The two test cases are provided in the attached
archive.
Each send() approximately leaks 200 bytes of real-time memory. So, if the
application has 1 megabyte of real-time memory and do 10 remote calls per
second, it will crash after 8-10 minutes. This is why I consider this one has a
critical bug. Unfortunately, I'm not actually able to solve the problem.
I'm using Orocos-RTT 2.3.1 on Linux.
[Bug 889] Memory leak in the real-time memory pool when calling
http://bugs.orocos.org/show_bug.cgi?id=889
Philippe Hamelin <philippe [dot] hamelin [..] ...> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2