2010-01-19 6 views
8

Ich habe versucht, die Quellen für die Android 1.6-Version zu bekommen, aber die Repo Synchronisierung bleibt hängen.Repo Sync hängt

Ich bin Einfügen den letzten Teil der Nachricht ich hier auf dem Terminal erhalten:

Fetching projects: 19% (32/164) 
Initializing project platform/external/freetype ... 
remote: Counting objects: 970, done. 
remote: Compressing objects: 100% (414/414), done. 
Receiving objects: 57% (558/970), 1.28 MiB | 26 KiB/s 

Es gibt nur hängt ... keine Fehlermeldungen oder aything dieser Art.

Hat jemand ein ähnliches Problem konfrontiert?

+1

Ich erlebe dies auf meinem Ubuntu 12 LTS x86-Rechner. Es scheint, als würde es konstant auf ein einzelnes Objekt bombardieren, wenn 'git' die CPU hervorbringt und maximiert. Ich habe versucht, die Skalierung des TCP-Fensters zu deaktivieren und auf einen Thread zu beschränken, aber keinen Würfel. –

Antwort

0

Es gab ein ähnliches Problem back in September on SO.

Es kann Netzwerkgeschwindigkeit bezogen werden, oder mit der genauen Version von Git verbunden, die Sie verwenden.
Wenn es msysgit ist, aktualisieren Sie bitte auf die neueste Version.
Siehe auch msysgit issue 361

11

Ich frage mich, ob Sie VMWare verwenden, um Linux auszuführen. Ich habe das gleiche Problem wie du, bis ich gefunden habe, was es verursacht: die tcp Fenstergröße auf unserer Seite ist auf 0 (voll) gesetzt. Ich benutze Ubuntu 10.04 auf VMWare unter Windows 7 64-bit als Host. Um es zu beheben, stellen Sie sicher, dass Sie Ubuntu auf VMWare ausreichend RAM zur Verfügung stellen, um Speicherprobleme zu beseitigen. Ich habe meine auf 512 MB eingestellt und für eine bessere Leistung auf 1,5 MB erhöht. Dann die wichtigste Einstellung (und die, die den Trick tatsächlich tat): Stellen Sie sicher, dass Sie den Netzwerkadapter auf VMWare auf Bridged-Modus einstellen. Wenn Sie beispielsweise NAT verwenden, wird der NAT-Dienst die Fenstergröße für Sie ersticken.

Ursache: Die TCP-Fenstergröße eines Clients teilt dem Server die Anzahl der Bytes mit, die er auf einmal vom Server empfangen möchte. Dies ist das Empfangsfenster des Clients. Wenn das Fenster auf 0 gesetzt ist, bedeutet dies, dass der Client keine Daten mehr empfangen kann, bis er die noch ausstehenden Daten in seinen internen Puffern verarbeitet. Das ist normales TCP-Zeug. Der Größeneffekt eines Fensters, das auf einem Client auf 0 gesetzt ist, besteht darin, dass eine TCP-Verbindung noch einige Zeit aktiv ist, bis der Server entscheidet, dass er ausreichend gewartet hat und die Verbindung abbricht. Dies hat dazu geführt, dass meine Reposynchronisierung fehlerfrei ausgeführt wurde.

+1

Danke, das hat für mich funktioniert. Überbrückte Verbindung hat das Problem behoben. – inazaruk

+0

Ich benutze VirtualBox aber nach dem Umschalten auf eine Bridge-Verbindung, habe ich immer noch das gleiche Problem. – Joset

+0

Um dieser Antwort noch mehr Geltung zu geben, ist dies nun von android dokumentiert: http://source.android.com/source/known-issues.html – gsingh2011

5

Hoffe das hilft jemand, dieses Forum zu verweisen.

Ich habe dieses Problem von Git Klonen von großen Repositories hängen. Anfangs wird die Geschwindigkeit hoch sein und dann drastisch sinken und schließlich hängt es. Es war ein Problem mit der TCP-Fensterskalierung. Sobald das deaktiviert war, funktionierte es gut.

(Aber das seltsame Teil ist, dass, wenn ich es von Linux in VMWare lief, gibt es kein Problem.)

Um dies für aktuelle Sitzung zu deaktivieren $ sudo sysctl -w net.ipv4.tcp_window_scaling = 0

+2

Um dieser Antwort noch mehr Gültigkeit zu verleihen, wird dies nun von android dokumentiert : source.android.com/source/known-issues.html – gsingh2011

+0

Das reparierte es für mich, danke. Irgendwie, als ich die Seite mit bekannten Problemen ansah, fand ich das dort nicht bemerkt.Es ist seltsam, dass Repo nicht von einer fehlgeschlagenen Synchronisierung wiederherstellen kann. – BHS