Problem

Under this general category are memory-related problems (out of memory).

Every Kiuwan analysis step is executed as a forked process running in a JVM. That forked execution is run with some default memory parameters (min and max).

By default, forked JVM is configured to run with a maximum of 1024 Mb. If the analysis needs more memory, the execution will finish with this error.

The most common out-of-memory error messages are:

Exception in thread "main" com.als.core.OptimythException: GC overhead limit exceeded
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded


Exception in thread "main" com.als.core.OptimythException: Java heap space
Caused by: java.lang.OutOfMemoryError: Java heap space

 All of them can be solved increasing the memory allocated to Kiuwan analysis.

GUI mode

If you are using Kiuwan Local Analyzer in GUI mode, a dialog will open indicating this error:

Click Analyzer log to open a window where the log file (temp/agentGUI.log) is displayed. You will see the following error message.

You will find some lines as the following indicating that an Out of Memory error is produced.

WARN 2016-10-05 11:13:21,314 - Exception in thread "main" com.als.core.OptimythException: GC overhead limit exceeded
WARN 2016-10-05 11:13:21,316 - Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded


CLI mode

If you are using Kiuwan Local Analyzer in CLI mode, this error is reported to the standard output.

An error code will be returned to the calling process.

Please visit Local Analyzer Return Codes for further information on return codes.

Solution

The solution consists of providing more memory to Kiuwan.

You can do it in two ways: 

  1. Change the memory parameters
  2. Modify the conf/analyzer.properties file

Change the memory parameters

  1. Click Advanced in the analysis configuration window
  2. Select Analysis Configuration
  3. Modify the Max memory size property (set by default to 1024 Mb)



  4. After modifying the value, click Save to open the next dialog

  5. Save = this configuration will apply only to the current applications.
    Save as defaults = the configuration changes will apply to all the applications of your Kiuwan Local Analyzer installation.

Modify conf/analyzer.properties file

An alternative way to change this memory value is by modifying the conf/analyzer.properties file.

To do it, edit “memory-max” property:

# Maximum size for heap memory (1024m = 1 Gigabyte)
memory.max=1024m


If you have a specific configuration for an application and you want the change only to be applied to that specific application, you will need to modify this property in the conf/apps/<name_of_your_app>.properties file.

In case you increase this parameter too high, it’s possible that the Operating System cannot allocate such free memory.

If this happens, you will get a Not enough Memory error. In this case, please read the next section.



Related articles


Related issues