78 lines
3.7 KiB
HTML
78 lines
3.7 KiB
HTML
<html devsite>
|
|
<head>
|
|
<title>Source Sync Issues</title>
|
|
<meta name="project_path" value="/_project.yaml" />
|
|
<meta name="book_path" value="/_book.yaml" />
|
|
</head>
|
|
<body>
|
|
<!--
|
|
Copyright 2017 The Android Open Source Project
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<p>Even with our best care, small problems sometimes slip in. This page details
|
|
some known issues you may encounter while trying to sync the Android source code.
|
|
|
|
<h2 id="difficulties-syncing-the-source-code-proxy-issues">
|
|
Difficulties syncing the source code (proxy issues)</h2>
|
|
<p><strong>Symptom</strong>: <code>repo init</code> or <code>repo sync</code> fail with http errors,
|
|
typically 403 or 500.</p>
|
|
<p><strong>Cause</strong>: There are quite a few possible causes, most often
|
|
related to http proxies, which have difficulties handling the
|
|
large amounts of data getting transferred.</p>
|
|
<p><strong>Fix</strong>: While there's no general solution, using python 2.7
|
|
and explicitly using <code>repo sync -j1</code> have been reported to
|
|
improve the situation for some users.</p>
|
|
|
|
<h2 id="difficulties-syncing-the-source-tree-dns-issues">
|
|
Difficulties syncing the source tree (DNS issues)</h2>
|
|
<p><strong>Symptom</strong>: When running <code>repo sync</code>, the process fails with
|
|
various errors related to not recognizing the hostname. One such
|
|
error is <code><urlopen error [Errno -2] Name or service not known></code>.</p>
|
|
<p><strong>Cause</strong>: Some DNS systems have a hard time coping with the
|
|
high number of queries involved in syncing the source tree
|
|
(there can be several hundred requests in a worst-case scenario).</p>
|
|
<p><strong>Fix</strong>: Manually resolve the relevant hostnames, and hard-code
|
|
those results locally.</p>
|
|
<p>You can resolve them with the <code>nslookup</code> command, which will give
|
|
you one numerical IP address for each of those (typically in the
|
|
"Address" part of the output).</p>
|
|
<pre class="devsite-click-to-copy">
|
|
<code class="devsite-terminal">nslookup googlesource.com</code>
|
|
<code class="devsite-terminal">nslookup android.googlesource.com</code>
|
|
</pre>
|
|
<p>You can then hard-code them locally by editing <code>/etc/hosts</code>, and
|
|
adding two lines in that file, of the form:</p>
|
|
<pre class="devsite-click-to-copy">
|
|
aaa.bbb.ccc.ddd googlesource.com
|
|
eee.fff.ggg.hhh android.googlesource.com
|
|
</pre>
|
|
<p>Note that this will only work as long as the servers' addresses
|
|
don't change, and if they do and you can't connect you'll have
|
|
to resolve those hostnames again and edit <code>etc/hosts</code> accordingly.</p>
|
|
|
|
<h2 id="difficulties-syncing-the-source-tree-tcp-issues">
|
|
Difficulties syncing the source tree (TCP issues)</h2>
|
|
<p><strong>Symptom</strong>: <code>repo sync</code> hangs while syncing, often when it's
|
|
completed 99% of the sync.</p>
|
|
<p><strong>Cause</strong>: Some settings in the TCP/IP stack cause difficulties
|
|
in some network environments, such that <code>repo sync</code> neither completes
|
|
nor fails.</p>
|
|
<p><strong>Fix</strong>: On Linux, enter the command:</p>
|
|
<pre class="devsite-terminal devsite-click-to-copy">sysctl -w net.ipv4.tcp_window_scaling=0</pre>
|
|
<p>On MacOS, disable the rfc1323 extension in the network settings.</p>
|
|
|
|
|
|
</body>
|
|
</html>
|