오전에 Cruise Control .Net에 문제가 발생하였다. 문제가 발생한 시기부터 문제를 해결한 시기까지 시간순서대로 사건을 요약하면 다음과 같다.
-
원격작업 도중에 윈도우즈 2000 서버가 말썽을 일으켰다. 운영체제를 재부팅시켜야 했다.
-
재부팅 후에 CruiseControl .NET이 등록된 첫번째 프로젝트에서 멈추는 현상이 발생했다.
-
CruiseControl .NET의 윈도우즈 서비스를 중지시키려고 해봤으나, 정상 종료가 되지 않았다는 에러 메시지가 떴다.
-
PsKill을 사용해서 CruiseControl .NET의 윈도우즈 서비스 프로세스를 강제종료시켰다.
-
프로젝트 설정파일을 백업 받고, 프로그램 추가제거에서 CruiseControl .NET을 삭제하고, 다시 설치했다. 백업 받은 설정파일을 [잘라내기->붙여넣기]했다.
-
새로 설치한 CruiseControl .NET의 윈도우즈 서비스를 실행시켰으나, 오류가 발생했다.
-
이벤트 로그를 보니, 해당 네트워크 포트를 다른 프로세스가 사용하고 있다는 메시지를 볼 수 있었다. 문제를 간단하게 해결하기 위해서 개발서버를 재부팅시켰다.
-
만약을 위해 CruiseControl .NET을 제거하고 다시 설치했다. 이 과정에서 기존 프로젝트 설정파일을 함께 지워버렸다.
-
기본 설정파일 내용 중 처음 두개의 프로젝트 내용만 복구한 후, CruiseControl .NET을 콘솔 모드로 실행시켜봤다. 콘솔 모드를 택한 것은 작업 과정을 실시간으로 모니터링하기 위함이었다. 이번에도 첫번째 프로젝트에서 작동이 멈췄다.
-
메시지를 자세히 살펴보니,
check source code modifications
(정확한 표현인지는 확실하지 않다. 여하튼 비슷한 내용의 메시지였다.)라는 메시지 이후에 작업이 멈췄다. -
첫번째 프로젝트의 소스버전관리시스템 저장소에 문제가 발생했을지 모른다는 생각이 들었다. 실제로 해당 저장소에 접근이 되지 않았다.
-
관리도구로 저장소를 복구하니 모든 문제가 해결됐다.
-
설정파일에 나머지 프로젝트에 대한 정보를 모두 기입하고 마무리했다.
오늘의 교훈: 트러블 슈팅시에는 무턱대고 여기저기 찔러보지 말고, 가능한 많은 자료를 모은 후에 작업하자.