[CI] 팀시티 git checkout 메모리 에러

2016. 8. 12. 18:47프로그래밍/형상관리

728x90
728x90

에러는 대강 이렇다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
jetbrains.buildServer.agent.impl.patch.PatchDownloaderImpl$1: Server was not able to build correct patch, most likely due to VCS errors
    at jetbrains.buildServer.agent.impl.patch.PatchDownloaderImpl.throwError(PatchDownloaderImpl.java:118)
    at jetbrains.buildServer.agent.impl.patch.PatchDownloaderImpl.checkPatch(PatchDownloaderImpl.java:108)
    at jetbrains.buildServer.agent.impl.patch.PatchDownloaderImpl.copyPatchAndCheck(PatchDownloaderImpl.java:69)
    at jetbrains.buildServer.agent.impl.patch.UpdateSourcesPatcherBase.copyPatchToTempFile(UpdateSourcesPatcherBase.java:71)
    at jetbrains.buildServer.agent.impl.patch.UpdateSourcesFromServer.updateSources(UpdateSourcesFromServer.java:57)
    at jetbrains.buildServer.agent.impl.patch.UpdateSourcesBuildStageBase.doSourceUpdate(UpdateSourcesBuildStageBase.java:91)
    at jetbrains.buildServer.agent.impl.patch.UpdateSourcesBuildStageBase.doRecoverableStage(UpdateSourcesBuildStageBase.java:59)
    at jetbrains.buildServer.agent.impl.buildStages.startStages.RecoverableBuildStage.doLastAttempt(RecoverableBuildStage.java:112)
    at jetbrains.buildServer.agent.impl.buildStages.startStages.RecoverableBuildStage.doBuildStage(RecoverableBuildStage.java:70)
    at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:31)
    at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:24)
    at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:78)
    at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:37)
    at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor.doStages(BuildStagesExecutor.java:24)
    at jetbrains.buildServer.agent.impl.BuildRunActionImpl.doStages(BuildRunActionImpl.java:70)
    at jetbrains.buildServer.agent.impl.BuildRunActionImpl.runBuild(BuildRunActionImpl.java:50)
    at jetbrains.buildServer.agent.impl.BuildAgentImpl.doActualBuild(BuildAgentImpl.java:284)
    at jetbrains.buildServer.agent.impl.BuildAgentImpl.access$100(BuildAgentImpl.java:52)
    at jetbrains.buildServer.agent.impl.BuildAgentImpl$1.run(BuildAgentImpl.java:248)
    at java.lang.Thread.run(Thread.java:745)
Caused by: jetbrains.buildServer.vcs.patches.UnsuccessfulPatchException: Failed to build patch for build #1 {build id=1692, buildTypeId=X2Autobuild_VcsTest}, VCS root: "Git" {instance id=6, parent internal id=1, parent id=X2Autobuild_Git, description: "jominhyuk87@loka:/usr/local/git/repos-x2#master"}, due to error: 'git fetch' command failed.
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 org.eclipse.jgit.transport.BasePackFetchConnection.receivePack(BasePackFetchConnection.java:762)
    at org.eclipse.jgit.transport.BasePackFetchConnection.doFetch(BasePackFetchConnection.java:363)
    at org.eclipse.jgit.transport.BasePackFetchConnection.fetch(BasePackFetchConnection.java:301)
    at org.eclipse.jgit.transport.BasePackFetchConnection.fetch(BasePackFetchConnection.java:291)
    at org.eclipse.jgit.transport.FetchProcess.fetchObjects(FetchProcess.java:247)
    at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:160)
    at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:122)
    at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1138)
    at jetbrains.buildServer.buildTriggers.vcs.git.Fetcher.fetch(Fetcher.java:109)
    at jetbrains.buildServer.buildTriggers.vcs.git.Fetcher.main(Fetcher.java:64)
cs


대강 JVM 메모리가 턱없이 부족하다는 것.

그래서 자바 관련된 오만 메모리를 건드리고 테스트 하다가 실신할 뻔 했다.

회사 코드가 워낙 방대하다 보니... 리비전도 30만개에 용량도 어마어마...


결론은 팀시티 웹페이지에서

Adminstration > Diagnostics > Internal Properties의 Edit Internal properties에서 속성을 추가해준다.


1
teamcity.git.fetch.process.max.memory=1024M
cs


기본이 아마 512M 정도로 잡혀있을 것인데 이를 세팅해주는 것이다.

Edit internal properties가 활성화 되지 않는다면 직접 파일을 로컬에 추가해준다.

<DataPath>/JetBrains\TeamCity\config\internal.properties

해당 폴더에 해당 파일 생성하고 위의 속성 추가 해주면 끝.


728x90
반응형