TeamCity: OutOfMemoryError: GC overhead limit exceeded

Автор: | 02/28/2015
 

teamcity_logoПри выполнении автотестов — агент упал с ошибкой нехватки памяти для Garbage Collector:

[00:13:57][com.service] at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:258)
[00:13:57][com.service] … 89 more
[00:13:57][com.service] Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
[00:13:57][com.service] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 25.558 sec <<< FAILURE!
[00:13:59][com.service] Running com.HierarchyImportAutoTest

Агенты у нас работают на Windows. Для каждого агента имеется свой файл настроек buildAgent.properties, в котором можно переопределить настройки памяти для него:

c:BuildAgent>type confbuildAgent.properties
#Generated properties (see buildAgent.dist.properties for description)
#Tue Feb 25 10:53:31 EET 2014
name=build3
ownPort=9090
serverUrl=http://teamcity.domain.com:8111
workDir=C:\BuildAgent\work
tempDir=C:\Temp
#User defined properties
#Tue Feb 25 10:53:31 EET 2014
env.TEAMCITY_JRE=C:\BuildAgent\jre
authorizationToken=95d16df0c2d1f5bb9a5083b6a6702a75

Там так же можно добавить дополнительные параметры Java, с помощью параметра TEAMCITY_AGENT_OPTS. Подробнее — смотрите тут>>>.

Добавляем новый параметр:

env.TEAMCITY_AGENT_MEM_OPTS=-XX:MaxPermSize=512m

Перезапускаем агент — готово.