CI/CD 단계중 빌드단계에서 OOM이 발생하는 경우가 얼마나 될까?
일단 지금까지 여러 어플리케이션의 빌드를 돌려봤지만 처음 경험해 봤다. 🤔
젠킨스 빌드 로그에는 아래와 같이 OutofMemoryError가 발생했다는 로그가 남아있다. 그리고 힙덤프 업로드 알림이 왔다.
힙덤프를 분석해보기 위해 MAT실행 > 분석!
이런 처음 보는 에러가 memory leak의 가장 의심되는 부분이라고 분석되었다. 원인을 위해 해당 검색을 해보았지만 딱히 도움되는 글을 발견하지는 못했다. (가장 관련있어 보이는 stackoverflow의 글 일단 링크)
빌드 oom이니까 gradle의 문제아닐까..?
일단 힙덤프를 봐도 모르겠으니, 다음 타겟인 gradle을 의심해봤다. 관련해서 자료를 찾아보니, gradle daemon 의 heap size가 부족하면 OOM이 발생할 수도 있다고 한다. 당장 바꿔~~
이렇게 gradle.properties 파일에 jvmargs 옵션을 추가하고 다시 빌드를 돌려보니, 빌드가 성공적으로 돌았다!!!
그럼 왜 이전에는 빌드에 실패헀을까? 따로 설정한 값이 없었으니, gradle daemon의 default 설정으로 실행되었을텐데.
gradle daemon이 해당 프로젝트를 빌드할때 default size인 512MB보다 큰 값이 필요했던것으로 보인다.
아니 512MB보다 더 필요한 경우는 처음보네..
좀 규모가 있는 어플리케이션의 경우에는 512MB보다 더 필요하다고 gradle 문서에 써있지만, 해당 어플리케이션은 그렇게 규모가 크지는 않은데..? 규모가 큰것에 대한 기준이 뭐지? 🤔
좀 더 알아볼 부분
- gradle daemon, gradle launcher
참고한 문서
반응형
'devlog > TIL' 카테고리의 다른 글
Transactional + DDD (0) | 2022.09.30 |
---|---|
[Python] scp, paramiko 패키지 예제 (0) | 2021.08.26 |
[vim] 좀 더 편-안하게 vim editor를 사용하는 설정 (0) | 2020.10.07 |
[TIL] fluentd & NGINX (0) | 2020.09.22 |
뚝딱거리는 초보 devops의 TIL (0) | 2020.09.03 |