기본 콘텐츠로 건너뛰기

2월, 2015의 게시물 표시

[오류처리] Ning + Jetty 조합에서 Unable to establish loopback connection 오류 발생할 때

발생 환경 현재 프로젝트에서 Dropwizard를 적용하고 있는데, Mesos와 연계할 부분이 생겨서 Mesos Client를 구성하고 Ning을 사용해서 비동기 Http 클라이언트를 구성하였다. 그런데 디버그 모드일 때는 상관이 없지만 (아마도 처리가 되는 시간적인 부분이 있는 듯 하다) 실행에서 java.io.IOException: Unable to establish loopback connection 오류가 발생하는 것을 확인하였다. 오류 메시지 4047 ERROR 2015-02-26 14:01:13 [main] com.ning.http.client.AsyncHttpClient[loadDefaultProvider:561] -Unable to instantiate provider com.ning.http.client.providers.netty.NettyAsyncHttpProvider. Trying other providers. 4053 ERROR 2015-02-26 14:01:13 [main] com.ning.http.client.AsyncHttpClient[loadDefaultProvider:564] -org.jboss.netty.channel.ChannelException: Failed to create a selector. org.jboss.netty.channel.ChannelException: Failed to create a selector. at org.jboss.netty.channel.socket.nio.AbstractNioSelector.openSelector(AbstractNioSelector.java:343) ~[netty-3.9.2.Final.jar:na] at org.jboss.netty.channel.socket.nio.AbstractNioSelector.(AbstractNioSelector.java:100) ~[netty-3.9.2.Final.jar:na] at org.jboss.netty.ch

[Python] Eclipse + PyDev 개발환경 구성 (Hello World!)

요즘 진행하고 있는 Docker 관련한 프로젝트에서 여러 가지 오픈 소스들을 검토하고 적용하면서 새로운 플랫폼으로서의 활용도를 검증하고 있다. 그런데 많은 오픈 소스들이 Go, Ruby, Python, Scala 와 같은 내게는 이질적인 언어들을 사용하고 있는 관계로 이번에 Python에 도전해 보도록 한다. ㅠㅠ 우선 첫 걸음으로 Hello World!를 출력해 보도록 하자. Python 설치 Python (이하 파이썬)의 안정화 버전은 파이썬2 기준으로 2.7.9와 파이썬3 기준으로 3.4.2가 발표된 상태이며, 파이썬3와 파이썬2가 서로 호환성이 높지 않기 때문에 별도로 버전이 진행되고 있으므로 필요한 버전으로 설치를 하면 된다. 파이썬의 설치 파일은 python.org/download 에서 msi를 받아서 설치하면 된다. 설치할 때 기본적으로 환경설정 (PATH 설정)이 꺼져있으므로 이를 활성화해 주거나 아니면 설치 후에 수동으로 설정해야 한다. 설치에서 환경 설정은 기본적인 설치 경로만 처리해 주므로 수동으로 설정이 필요하다. 따라서 여기서는 기본 설치 후에 환경 변수를 설정하는 것으로 한다. 설치 후에 환경 설정 (PATH) 해 주어야 하는 기본 경로는 아래와 같다. C:\Python34 <- 인스톨러 옵션을 활성화하면 설정되는 기본 폴더 C:\Python34\Scripts <- 추가 설정 (향후 사용 편의를 위해) C:\Python34\Tools\Scritps <- 추가 설정 (향후 사용 편의를 위해) 위와 같은 설정이 모두 완료되면 실행 파일에 대한 링크를 설정해 준다. 여러 버전을 관리할 수 있도록 3.x 버전부터는 각 실행파일에는 버전이 붙기 때문에 나중에 사용할 때 번거롭다. 만일 단일 버전만 사용한다면 굳이 아래와 같이 링크를 설정할 필요는 없다. C: \> mklink python34 .exe python .exe C: \> mklink p

[ubuntu] apt-get update 오류 처리 (Hash sum mismatch 등)

apt-get update 명령을 사용해서 처리를 수행할 때 중간에 파일 Not found (404, …) 등으로 오류가 발생할 수 있다. 대 부분의 경우는 실제 구성 패키지의 일부 파일들이 다운로드되지 않아서 패키지의 Hash sum 값이 틀리다는 오류다. 원인은 Archive 파일이 잘 못된 경우도 존재하지만 거의 대부분은 네트워크가 느려서 발생하는 경우로 이 때는 좀 더 빠른 사이트로 변경을 해 주면 문제없이 해결할 수 있다. 패키지 소스에 대한 정보는 /etc/apt/sources.list 파일에 존재한다. 해당 파일을 확인해 보면 사이트가 archive.ubuntu.com 으로 지정되어 있는데 무선 접속이나 통신망이 원할하지 않는 경우는 큰 패키지 처리 시에 위와 같은 오류가 지속적으로 발생한다. 따라서 사이트를 국내에서 제공하는 사이트로 변경해서 처리하면 된다. $ sudo sed -i 's/archive.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list 위의 명령은 ‘sed’ 툴을 이용해서 /etc/apt/sources.list 파일의 내용 중에서 archive.ubuntu.com 으로 지정된 모든 문자열을 ftp.daum.net 으로 변경해서 원본을 갱신하는 것이다. 이렇게 국내 미러 사이트로 변경을 하면 네트워크 문제로 인한 오류는 대 부분 해결이 된다. 그러나 OS 상에 설치되어 있는 정보에 문제가 있어서 발생하는 경우도 존재할 수 있기 때문에 아래와 같이 추가적인 설정을 처리해 주면 된다. $ sudo rm -rfv /var/lib/apt/lists/* && sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && apt-get update && apt-get -y upgrade 위의 명령은 /var/lib/apt/lists 폴더의 내용