GC overhead limit exceeded error in TAC

Talend Version 6.2.1

Summary

 
Additional Versions 6.x, 5.x
Product Talend Data Integration
Component  
Problem Description

The following error message is seen in the technical log when starting TAC:

Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
	at org.talend.designer.core.model.components.ElementParameter.getVariableName(ElementParameter.java:184)
	at org.talend.core.model.process.ElementParameterParser.parse(ElementParameterParser.java:500)
	at org.talend.designer.core.model.components.EmfComponent.addPropertyParameters(EmfComponent.java:1869)
	at org.talend.designer.core.model.components.EmfComponent.createElementParameters(EmfComponent.java:421)
	at org.talend.designer.core.ui.editor.nodes.Node.init(Node.java:494)
	at org.talend.designer.core.ui.editor.nodes.Node.<init>(Node.java:439)
	at org.talend.designer.core.ui.editor.connections.Connection.createParallelizeParameters(Connection.java:585)
	at org.talend.designer.core.ui.editor.connections.Connection.init(Connection.java:218)
	at org.talend.designer.core.ui.editor.connections.Connection.<init>(Connection.java:128)
	at org.talend.designer.core.ui.editor.process.Process.loadConnections(Process.java:2574)
	at org.talend.designer.core.ui.editor.process.Process.loadConnections(Process.java:2512)
	at org.talend.designer.core.ui.editor.process.Process.loadXmlFile(Process.java:1971)
	at org.talend.designer.joblet.ui.models.JobletGEFProcess.loadXmlFile(JobletGEFProcess.java:107)
	at org.talend.designer.core.ui.editor.process.Process.loadXmlFile(Process.java:1939)
	at org.talend.designer.joblet.ui.process.JobletProcessProvider.getProcessFromJobletProcessItem(JobletProcessProvider.java:1620)
	at org.talend.designer.joblet.ui.process.JobletProcessProvider.buildNewGraphicProcess(JobletProcessProvider.java:215)
	at org.talend.designer.joblet.ui.process.JobletProcessProvider.rebuildGraphicProcessFromNode(JobletProcessProvider.java:420)
	at org.talend.designer.core.model.process.DataProcess.replaceNodeFromProviders(DataProcess.java:3195)
	at org.talend.designer.core.model.process.DataProcess.buildFromGraphicalProcess(DataProcess.java:1640)
	at org.talend.designer.core.ui.editor.process.Process.getGeneratingNodes(Process.java:804)
	at org.talend.designer.runprocess.ProcessorUtilities.hasMetadataDynamic(ProcessorUtilities.java:594)
	at org.talend.designer.runprocess.ProcessorUtilities.checkMetadataDynamic(ProcessorUtilities.java:579)
	at org.talend.designer.runprocess.ProcessorUtilities.generateCode(ProcessorUtilities.java:827)
	at org.talend.designer.runprocess.ProcessorUtilities.generateNodeInfo(ProcessorUtilities.java:1032)
	at org.talend.designer.runprocess.ProcessorUtilities.generateCode(ProcessorUtilities.java:847)
	at org.talend.designer.runprocess.ProcessorUtilities.generateCode(ProcessorUtilities.java:711)
	at org.talend.designer.runprocess.ProcessorUtilities.generateCode(ProcessorUtilities.java:1214)
	at org.talend.repository.ui.wizards.exportjob.handler.BuildJobHandler.generateJobFiles(BuildJobHandler.java:148)
	at org.talend.repository.ui.wizards.exportjob.scriptsmanager.BuildJobManager$1.run(BuildJobManager.java:191)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2313)
	at org.talend.repository.ui.wizards.exportjob.scriptsmanager.BuildJobManager.buildJob(BuildJobManager.java:207)
Problem root cause

The error is thrown when 2% of the memory is freed after several GC cycles. This means that the small amount of heap the GC can clean might quickly fill again, forcing the GC to restart the cleaning process again.

Solution or Workaround

Edit the following JVM parameters in the cataline.bat/sh file, as shown below:

set JAVA_OPTS="-Xms1024m -Xmx2048m -XX:MaxPermSize=1024m
-XX:-UseGCOverheadLimit -XX:+UseParallelGC -XX:MaxHeapFreeRatio=70

Note: You can set -Xms , -Xmx, and -XX:MaxPermSize as per your requirements.

JIRA ticket number  
Version history
Revision #:
6 of 6
Last update:
‎09-14-2018 08:38 AM
Updated by:
 
Comments
Employee

Please add solution when TAC is started as Windows Service, because catalina.bat is not taken into account when TAC is started as Windows service