Limit nodes of invocation sequence to reduce the risk of out-of-memory on the system under diagnosis

Description

Migrated from NovaTec Jira. Original ticket: INSPECTIT-424

Currently invocation sequence data is kept thread-locally until the invocation sequence is finished (meaning until the method that initialized the invocation returns). For some methods (e.g. batch processing) this can take a high amount of time.

We had this situation at the IVV, that we instrumented a batch in a wrong way and this batch took a long time. This batch accumulated 1,9 GB of invocation data which in the end resulted in an out of memory error on the system under diagnosis.

In order to be safe(r) from such problems we should limit the size of a invocation sequence and completely drop the invocation sequence if this size is exceeded.

  • The size should be set to 100.000 by default but should be modifyable (e.g. some configuration file or a startup parameter if something other than the default setting is desired)

  • The invocation should be dropped completely (we cannot handle incomplete invocation sequences yet)

  • An error log must be written indicating that an invocation sequence is dropped (which methods dropped it, why was it dropped).

This should be an option of the invocation sensor in the configuration interface Environment page.

Environment

None

Assignee

Unassigned

Reporter

Stefan Siegl

Labels

None

Integrator

None

Components

Priority

Medium
Configure