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

Intermittent error "Cyclic states exhausted" #14

Open
RobertWilbrandt opened this issue Jan 19, 2025 · 0 comments
Open

Intermittent error "Cyclic states exhausted" #14

RobertWilbrandt opened this issue Jan 19, 2025 · 0 comments
Labels
bug Something isn't working

Comments

@RobertWilbrandt
Copy link
Contributor

The driver sometimes crashes with a std::runtime_error stating "Cyclic states exhausted". This is not frequent, an example in CI is this run.

I don't yet have a way to reproduce this reliably and don't know what could cause this. The problem has however already occurred with the first driver version.

The RsiFactory class is used to prevent memory allocations during runtime. As the number of RsiState and RsiCommand objects is bounded, a fixed number is allocated at startup and kept in a ring buffer. Whenever the parser or the hardware interface requires a new instance, the next one is taken from the buffer. In order to detect problems with too many objects in use and multiple parts of the code handling the same instance, they are stored in shared_ptrs and their use count is checked before returning the object. As this check fails, some part of the driver seems to request many (meaning: >1024) RsiStates.

@RobertWilbrandt RobertWilbrandt added the bug Something isn't working label Jan 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant