Проблемы с синхронизацией источника

Даже при нашей максимальной осторожности иногда возникают небольшие проблемы. На этой странице подробно описаны некоторые известные проблемы, с которыми вы можете столкнуться при попытке синхронизации исходного кода Android.

Трудности с синхронизацией исходного кода (проблемы с прокси)

Симптом: сбой repo init или repo sync репозитория с ошибками HTTP, обычно 403 или 500.

Причина. Существует несколько возможных причин, чаще всего связанных с HTTP-прокси, которые с трудом обрабатывают большие объемы передаваемых данных.

Исправление: хотя общего решения нет, иногда может помочь использование Python 2.7 и явное использование repo sync -j1 .

Проблемы с синхронизацией исходного дерева (проблемы с DNS)

Симптом: при выполнении repo sync происходит сбой процесса с различными ошибками, связанными с нераспознаванием имени хоста. Одной из таких ошибок является <urlopen error [Errno -2] Name or service not known> .

Причина. Некоторым системам DNS трудно справиться с большим количеством запросов, связанных с синхронизацией исходного дерева (в худшем случае может быть несколько сотен запросов).

Исправление: Вручную разрешите соответствующие имена хостов и жестко закодируйте эти результаты локально.

Вы можете решить их с помощью команды nslookup , которая предоставляет один числовой IP-адрес для каждого имени хоста (обычно в части «Адрес» вывода).

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 в настройках сети.