소스 동기화 문제

최선을 다해도 작은 문제가 발생하는 경우가 있습니다. 이 페이지는 Android 소스 코드를 동기화하는 중에 발생할 수 있는 몇 가지 알려진 문제를 자세히 설명합니다.

소스 코드 동기화 문제(프록시 문제)

증상: repo init 또는 repo sync가 404 또는 500 HTTP 오류와 함께 실패합니다.

원인: 대용량 데이터를 전송하는 데 많은 시간이 소요되는 HTTP 프록시와 관련된 몇 가지 원인이 있습니다.

수정: 일반적인 솔루션은 없지만 Python 2.7을 사용하고 명시적으로 repo sync -j1을 사용하면 때때로 도움이 될 수 있습니다.

소스 트리 동기화 문제(DNS 문제)

증상: repo sync를 실행 중일 때 호스트 이름을 인식하지 못하는 것과 관련된 여러 오류가 발생하여 프로세스가 실패합니다. 이러한 오류 중 하나는 <urlopen error [Errno -2] Name or service not known>입니다.

원인: 일부 DNS 시스템은 소스 트리 동기화에 수반되는 많은 수의 쿼리를 처리하는 데 어려움이 있습니다. 최악의 경우 수백 개의 요청이 있을 수 있습니다.

수정: 관련 호스트 이름을 직접 확인하고 결과를 로컬에서 하드 코딩합니다.

이 문제를 해결하려면 각 호스트 이름에 하나의 숫자 IP 주소를 제공하는 nslookup 명령을 사용합니다. 일반적으로 출력의 '주소' 부분에 있습니다.

nslookup googlesource.com
nslookup android.googlesource.com

그런 다음 /etc/hosts를 수정하여 파일에 다음 형식의 두 행을 추가하여 로컬에서 하드 코딩할 수 있습니다.

aaa.bbb.ccc.ddd googlesource.com
eee.fff.ggg.hhh android.googlesource.com

소스 트리 동기화 문제(TCP 문제)

증상: repo sync 동기화가 99% 완료되면 동기화가 중단됩니다.

원인: TCP/IP 스택의 일부 설정으로 인해 일부 네트워크 환경에 지장을 초래해서 repo sync가 완료되지도 실패하지도 않습니다.

수정: Linux에서 다음 명령어를 입력합니다.

sysctl -w net.ipv4.tcp_window_scaling=0

macOS에서는 네트워크 설정에서 rfc1323 확장 프로그램을 사용 중지합니다.