티스토리 뷰

시간이 10분 이상 걸리는 Batch Job이 있고 이를 Jenkins를 통해서 실행을 하려고 한다. 분명히 Batch가 수행되며 data는 모두 성공적으로 들어갔고 정상적으로 종료된듯 보인다. 하지만 Jenkins Job의 상태는 Unstable이다. 

콘솔 츨력

SSH: Disconnecting configuration [batch_001] ...
ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 213,127 ms]
Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE

로그를 꼼꼼히 보니 위와 같은 ERROR 로그가 있었다. timeout 관련된 오류다. 

Jenkins는 스케쥴러 역할을 하는 녀석으로 B라는 서버에 올라가 있고 A라는 서버에는 Batch instance가 올라가있다. 이 B가 A한테 ssh를 사용해 "batch 수행해!" 라고 명령했고 A는 열심히 일을 했는데 B는 결과를 기다리다가 timeout이 난 것이다. 

 

해결책은 간단하다. 명령을 날리는 Jenkins(B)가 충분한 시간동안 기다려줄수 있도록 timeout 옵션을 변경해주면 된다. 

 

 SSH 연결하는 부분에서 우측 하단의 고급을 눌러본다.

 

Jenkins SSH timeout 설정

그럼 확장되는 부분에 Exec timeout (ms) 라고 되어 있는데 이를 0 (무제한) 으로 바꾸거나 시간에 맞게 변경해준다. 

 

Send files or execute commands over SSH 가 아니라 다른 방식의 SSH 연결을 하는것이라면 그에 맞게 timeout 시간을 변경해주도록 하자. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
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