Skip to content

Cpp98 API Memory Leak #2773

@afisher1

Description

@afisher1

Describe the bug
I have created a HELICS federate using the cpp98 api. I configured the federate to consist of two endpoints where it sends a fixed payload from one endpoint to the other. At each timestep I check for receipt of any message process said message then attempt to clear message from memory. then I create and send a new message through the designated sending endpoint then clear the newly sent message from memory. I run the simulation for 86400 seconds. I monitor my memory usage and see it steadily rise to around 2 GB for the duration of the simulation. the size of the message payload around 13 KB in size.

When doing the exact same thing using a Python HELICS federate I see no visible increase in my memory usage as  it runs.

What is the expected behavior?
I expect the memory usage to behave similar to the Python HELICS federate usage as they both use the C api under the hood.

To Reproduce
Steps to reproduce the behavior:

I'm providing a tarball with my cpp89 federate executable (helicsCppFederate) and source code is helicsCppFederate.cpp and my python federate code found in the pythonFederate folder.

running the cpp89 federate:
./helicsCppFederate federateEndpointConfig.json 86400.

running the python federate:
python helicsFederate.py federateEndpointConfig.json 86400.

both federates start up their own broker and connect to it so no need to run a broker in a separate terminal.

Environment (please complete the following information):
WSL2 Ubuntu 24.04
HELICS 3.6.1
cmake 3.28
gcc/g++ 13.3.0 

helicsCpp98Federate.tar.gz

Metadata

Metadata

Labels

bugIssue concerning incorrect code operation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions