Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously any tool running could consume all available RAM
and swap causing availability issues if the offending process
isn't terminated quickly.
This change adds a configuration parameter to limit the amount
of RAM a process can use. If it exceeds this limit, the process
is terminated, but other processes can continue.
Although we have a Filesystem analyser, which can only limit
memory usage via ulimit, the Docker analyser also uses this
mechanism because Docker's own memory limit will terminate the
container, not just the offending process. I.e. the limit cannot
be applied to our exec instance, only when we've created the
container.
We're also required to run the ulimit command each time, because
each tool is executed with a new shell, which won't inherit the
limits put in place by previous commands.
Fixes #106.