View

 Ant 와 Ivy를 통해서 Java로 작성된 Open Source를 반영하던 중 특정 Jar 파일에 대한 dependency lock으로 인해 빌드가 더 이상 진행되지 않는 현상이 발생했다. 이는 공통 빌드 서버에서 Apache Solr에 대한 배포작업 (ant deploy)과 바이너리 패키지 작업(ant package)를 진행하던 중 발생한 것으로 동일한 jar파일에 대해 접근하려고 하다가 dead lock이 발생한 것으로 보였다. 


NOTE: If your build hangs when building and especially on a "resolve" step, it's probably because there are left over lock files in your ivy directory (often because you crtl-c'd during a build). To fix this navigate to your .ivy2 directory and delete all of the "*.lck" files in the tree. For *nix operating systems, issue a command similar to: find . -name "*.lck" | xargs rm


위와 같이 solr build 메뉴얼에서 잘 설명해 주었는데 ' find . -name "*.lck" '명령으로 파일을 찾은 다음, *.lck 파일을 삭제해 주면 된다. 
(혹시 관련 없는 파일이 있을 수 있으니 처음 실행 시에는 | xargs rm 명령은 수행하지 않도록 하자) 

하지만 위에서 말하는 '.ivy2'  디렉토리가 어디에 있는지 도통 알기 어려웠다. 확인결과 사용하고 있는 계정의 home dir에 존재하였다(cd ~). 실제 Jenkins의 working directory에 생성될 것으로 판단하였지만 사용계정의 home에 생성되어 약간 리스크가 있을 것으로 생각되었다. 

위 명령을 통해 *.lck 파일을 삭제한 뒤 정상적으로 build 를 수행할 수 있었다. 



Share Link
reply
«   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