-
Notifications
You must be signed in to change notification settings - Fork 3
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
Heap out of memory when combining lastVersionOf with polling #79
Comments
My initial thought was, that these should be able to work together, but that the client emits the last versions in batches. This way the consumer can interact with this, by registering a listener to the poll event and start up some logic for something. However, this does not mean that the client should go oom, and I can't really say why this happens. Have you looked into the problem @smessie? |
That sounds like a viable option as well, although the poll event doesn't contain any data, but a client could work with that and reason that any members emitted after the poll event are newer versions of earlier emitted members.
No, not yet. I experienced this issue but can now circumvent it by making sure I don't pass the combination of config parameters, so it's not a blocker for me and thus have some other priorities first. Also wanted to discuss it here first.
The LDES contained 16800 members, out of which 1042 unique ones. So no, no millions of different members.
It actually looks like it did. |
For an LDES containing 438057 members (out of which 1797 unique ones), it also goes OOM with only the |
When you configure the ldes-client with
lastVersionOf: true
andpolling: true
(--last-version-only --follow
), the client consumes more and more memory, until the Node process crashes withFATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
.It is to be expected that you should not configure the combination of these parameters, as you will never be able to emit members because you don't know if future members will be new versions of the ones you already found, and you configured to stay in sync.
However, it should not cause memory issues.
The question now is how we want to handle this issue?
The text was updated successfully, but these errors were encountered: