2010-01-19 13 views
8

Estaba tratando de obtener las fuentes para la versión Android 1.6, pero la operación de sincronización repo sigue colgando.Repo sincronización cuelga

estoy pegando la última parte del mensaje que recibo en el terminal aquí:

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 

Simplemente cuelga allí ... no hay mensajes de error o aything de ese tipo.

¿Alguien ha enfrentado un problema similar?

+1

Estoy experimentando esto en mi máquina Ubuntu 12 LTS x86. Parece bombardear constantemente en un solo objeto, cuando 'git' genera y maximiza la CPU. Intenté deshabilitar la escala de la ventana TCP y restringirla a un hilo, pero no a los dados. –

Respuesta

0

Hubo un problema similar back in September on SO.

Puede estar relacionada con la velocidad de la red o estar vinculada a la versión exacta de Git que está utilizando.
Si es msysgit, actualice a la última versión.
Véase también msysgit issue 361

11

Me pregunto si está utilizando VMWare para ejecutar Linux. Tuve el mismo problema que tú hasta que encontré lo que estaba causando: el tamaño de la ventana tcp de nuestro lado se configuró en 0 (lleno). Estoy ejecutando Ubuntu 10.04 en VMWare en Windows 7 de 64 bits como host. Para solucionarlo solo asegúrese de darle suficiente RAM a Ubuntu en VMWare para descartar cualquier problema de memoria. Hice que el mío se establezca en 512 MB y aumente a 1,5 M para un mejor rendimiento. Luego, la configuración más importante (y la que realmente hizo el truco): asegúrese de configurar el adaptador de red en VMWare en el modo de puente. Si usa NAT, por ejemplo, el servicio NAT se ahogará y estropeará el tamaño de la ventana por usted.

Causa: El tamaño de la ventana TCP de un cliente le dice al servidor la cantidad de bytes que está dispuesto a recibir al mismo tiempo del servidor; esta es la ventana de recepción del cliente. Cuando la ventana se establece en 0, significa que el cliente no podrá recibir más datos hasta que procesen los datos que aún están pendientes en sus búferes internos. Esto es algo normal de TCP. El efecto de tamaño de una ventana establecida en 0 en un cliente es que una conexión TCP aún estará activa durante un tiempo hasta que el servidor decida que ha esperado lo suficiente y haya cancelado la conexión. Esto es lo que estaba causando que mi sincronización de repo se cuelgue sin errores.

+1

Gracias, eso funcionó para mí. La conexión puenteada solucionó el problema. – inazaruk

+0

Estoy usando VirtualBox, sin embargo, después de cambiar a una conexión en puente, todavía encuentro el mismo problema. – Joset

+0

Para agregar algo más de validez a esta respuesta, esto ahora está documentado por android: http://source.android.com/source/known-issues.html – gsingh2011

5

Espero que esto ayude a alguien refiriendo este foro.

He tenido este problema de git clones de grandes repositorios colgando. Inicialmente, la velocidad será alta y luego se reduce drásticamente y finalmente se bloquea. Era un problema con TCP Window Scaling. Una vez que se deshabilitó, funcionó bien.

(Pero la parte extraña es que cuando me encontré con él desde Linux en VMWare, no había problema.)

para deshabilitar este para la sesión actual $ sudo sysctl -w net.ipv4.tcp_window_scaling = 0

+2

Para agregar más validez a esta respuesta, esto ahora está documentado por Android : source.android.com/source/known-issues.html – gsingh2011

+0

Esto lo arregló para mí, gracias. De alguna manera, cuando miré la página de problemas conocidos, no me di cuenta de que estaba allí.Es extraño que el repositorio no tenga la capacidad de recuperarse de una sincronización fallida. – BHS