Teamcity не хватает памяти при клонировании репозитория

#git #out-of-memory #teamcity

#git #не хватает памяти #teamcity

Вопрос:

Я пытаюсь создать настройку teamcity для создания решения Visual Studio.

Я создал корень git VCS, который указывает на репозиторий в нашей сети (a git@XXX:YYY.git тип адреса).

Teamcity выдает ошибку при попытке клонировать репозиторий. В журнале сборки я вижу:

 Failed to collect changes, error: Error collecting changes for VCS repository '"myrepo_git" {instance id=15, parent internal id=5, parent id=myRepoGit, description: "git@192.168.xxx.yyy:myrepo.git#refs/heads/develop"}'
'git fetch' command failed (repository dir: <TeamCity data dir>/system/caches/git/git-72C073A1.git).
stderr: java.lang.OutOfMemoryError: Java heap space
    at org.eclipse.jgit.internal.storage.pack.BinaryDelta.apply(BinaryDelta.java:163)
    at org.eclipse.jgit.internal.storage.pack.BinaryDelta.apply(BinaryDelta.java:118)
    at org.eclipse.jgit.transport.PackParser.resolveDeltas(PackParser.java:610)
    at org.eclipse.jgit.transport.PackParser.resolveDeltas(PackParser.java:587)
    at org.eclipse.jgit.transport.PackParser.resolveDeltas(PackParser.java:550)
    at org.eclipse.jgit.transport.PackParser.parse(PackParser.java:507)
    at org.eclipse.jgit.internal.storage.file.ObjectDirectoryPackParser.parse(ObjectDirectoryPackParser.java:194)
    at org.eclipse.jgit.transport.PackParser.parse(PackParser.java:448)
    at...
  

Я пытался отслеживать агент Windows во время клонирования, и у меня всегда есть свободная память, как для диска, так и для оперативной памяти, так что проблема не в КОМПЬЮТЕРЕ агента (я полагаю).

Что я могу проверить, чтобы устранить эту проблему?

Комментарии:

1. Ошибки нехватки памяти могут возникать, когда программное обеспечение не может выделить один непрерывный блок памяти. У вас может быть свободен гигабайт, но если самая большая непрерывная свободная область составляет 100 Мбайт, а вы пытаетесь выделить 200 Мбайт, вы получите сообщение об ошибке нехватки памяти. У вас есть какие-то очень большие объекты в вашем репозитории git?

2. Нет, это все текстовые файлы и некоторые небольшие двоичные файлы, такие как значки. В истории есть несколько больших файлов, которые являются причиной ошибок фиксации, как некоторые. dll-файлы, но их размер составляет менее 10 МБ.

3. Вы когда-нибудь решали это? У меня такая же проблема.

4. Я переписал историю git remote, удалив большие двоичные файлы, зафиксированные по ошибке. После очистки истории все прошло хорошо

Ответ №1:

Недавно у меня была похожая проблема. Я заставил наш репозиторий работать, перейдя на страницу администрирования-> Диагностика-> Внутренние свойства и используя следующее для «внутренних свойств»:

 teamcity.git.fetch.max.memory=1300M
teamcity.git.fetch.process.max.memory=1300M
teamcity.git.fetch.timeout=7200enter code here
  

Надеюсь, это поможет, если у вас что-то еще не заработало.