| <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> |