#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
Надеюсь, это поможет, если у вас что-то еще не заработало.