본문 바로가기
우당탕탕 개발생활/_Jenkins

[Jenkins] GitLab Hook Test 오류 원인

by J-2n 2023. 6. 15.

안녕하세요

제가 Jenkins에서 GitLab Hook 설정하면서 발생한 2가지 오류에 대해 공유드리겠습니다.


# internal error - execution expired

해당 오류는 작업이 실행되는 동안 제한 시간을 초과했을 때 발생할 수 있는 오류이다. 일반적으로 작업이 실행되는 동안 예상되는 시간보다 오래 걸릴 때 발생하게 된다.

이 오류의 원인과 해결 방법은 작업의 성격과 환경에 따라 다를 수 있는데, 몇 가지 일반적인 원인과 해결 방법을 살펴보겠습니다

1. 작업의 복잡성: 작업이 복잡하거나 처리해야 할 데이터가 많은 경우에는 작업 완료까지 시간이 오래 걸릴 수 있다. 이 경우에는 작업의 병렬화, 최적화 또는 성능 향상을 위한 조치를 고려할 수 있다.

2. 자원 제약: 작업에 필요한 자원(메모리, CPU 등)이 부족한 경우에도 이 오류가 발생할 수 있다. 이 경우에는 자원 할당량을 증가시키거나 다른 자원을 해제하여 작업에 필요한 자원을 확보할 수 있다.

3. 네트워크 문제: 작업이 외부 리소스에 의존하고 인터넷 연결이 불안정한 경우, 네트워크 문제로 인해 작업이 지연될 수 있다. 네트워크 연결을 점검하고 필요한 경우 안정적인 연결을 유지하도록 조치할 수 있다.

4. 제한 시간 설정: Jenkins 또는 작업 실행 환경에서 제한 시간을 설정한 경우, 작업이 해당 시간 내에 완료되지 않으면 이 오류가 발생할 수 있다. 제한 시간 설정을 확인하고 필요한 경우 적절하게 조정해야 한다.

저와 같은 경우는 네트워크 문제로 의심이 갔습니다. GitLab에서 hook Test 를 진행할 때 Response headers와 Response body가 비어있는 것이 가장 이상해보였거든요.

- 해결방법

저와 같은 경우는 회사에서 진행할 때 발생된 것이라서 쉽게 찾을 수 있었습니다. gitLab 서버와 Jenkins 서버는 분리되어있었고, 한번도 접속 안해봤기에 방화벽 문제로 파악했습니다. 그래서 사내에 있는 서버 관리 팀에게 Gitlab 서버에서 Jenkins 서버로 접속하기 위한 방화벽 오픈을 요청했습니다. (GitLab서버 IP, 접속할 Jenkins IP, Port)


# 403 에러 - HTTP ERROR 403 No valid crumb was included in the request

방화벽 오류를 해결 한 뒤 발생 했던 오류 이다. 방화벽 오픈이 되고 나서는 Response headers와 Response body가 입력 되어 있는걸로 확인할 수 있었다.

 

이 해당 오류는 결론적으로 요청 URL이 틀려서 발생했다. Jenkins에서 그대로 복사해서 붙여넣었지만 이게 화근이었다. Jenkins에서 복사한 URL에는 job이 포함 되어있어서 그랬다. 주소에서 job을 제거 해준 뒤 정상 작동 하였다.

Before: http://ip주소:port번호/job이름/project/item이름

After: http://ip주소:port번호/project/item이름


공부하기 위한 기록으로 틀린 정보가 있을 시 알려주시면 감사하겠습니다 :)