Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GDS can consume the full system memory if the GUI is not use #2337

Closed
SMorettini opened this issue Oct 24, 2023 · 3 comments
Closed

GDS can consume the full system memory if the GUI is not use #2337

SMorettini opened this issue Oct 24, 2023 · 3 comments
Labels

Comments

@SMorettini
Copy link
Contributor

F´ Version
Affected Component fprime-gds

Problem Description

The history inside fprime-gds is cleaned only when the data are sent to the GUI. If for some reason the GUI is not opened(for example when using the option -g none) the history is never cleaned. If Fprime and gds is run for enough time they will eventually take all the memory available and crash.

How to Reproduce

  1. Start fprime-gds with the option -g none
  2. Start an Fprime executable(it would be better if the executable publish channel with a lot of data and/or very frequently)
  3. Let it run for a while(like half an hour) and check the memory consumption of your device.

Expected Behavior

Memory consumption should not grow without limits.

Possible fixes

A fix I thought but I'm not sure it's acceptable is to add a maximum history size in SelfCleaningRamHistory. When the history reaches the maximum size, the first element added in the history can be removed avoiding unlimited growth.

I was also thinking of disabling the history when there is no GUI but from the structure of GDS I'm not sure is possible.

@SMorettini SMorettini added the bug label Oct 24, 2023
@LeStarch
Copy link
Collaborator

This is further discussed here: #2336

In short, -g none should not start the flask/UI app at all, yet it is.

@LeStarch
Copy link
Collaborator

Fixed by: nasa/fprime-gds#149

@LeStarch
Copy link
Collaborator

Fix was merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants