Tengo la siguiente estructura de llamadas:
- Jenkins corre
fab -Huser@host set_repository_commit_hash:123abc
. set_repository_commit_hash
corregit fetch
conpty = False
.- El proceso hijo
ssh git@github.com git-upload-pack 'user/repository.git'
nunca termina.
He intentado ejecutar git fetch
en un clon local y eso tiene éxito, pero la ejecución ssh git@github.com git-upload-pack 'user/repository.git'
solo devuelve lo siguiente y se bloquea:
00ab84249d3bb20930c185c08848c60b71f7b28990d6 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed agent=git/1.8.4
0041cb34b1c8ca75d478df38c794fc15c5f01cc6377e refs/heads/branch_name
004012577068adf47015001bfa0cff9386d6cdf497ce refs/heads/[...]
003f84249d3bb20930c185c08848c60b71f7b28990d6 refs/heads/master
[a couple more lines like the ones above, then:]
0000
¿Es este un problema conocido de SSH / Git / Fabric / Jenkins?
Lo hice strace
, pero no he grabado la sesión. Creo que estaba atascado en un read
.
Enlaces posiblemente relevantes:
- Problema de Jenkins 14752: SCM Polling / Max # de sondeo concurrente = 1 bloquea el sondeo github
- ¿Por qué colgaría git-upload-pack (durante git clone)?
- problema de tortoisegit 1880: la captura de tortoisegit se bloquea debido a que se ejecuta / nunca sale de tortoisegitplink (especialmente el comentario # 7 )
- ¿Qué es este proceso aleatorio interminable de 'git-upload-pack'?
git-upload-pack
se supone que debe hacer, AFAICT. Está esperando que hable el protocolo git fetch-pack y le diga qué cosas enviar (intente ejecutarlo en un repositorio local, obtendrá la misma salida).
git clone
Funciona un nuevo (de github) en el host que Jenkins está tratando de obtener? Sospecho que no lo hará, y es probable que tenga un problema de descubrimiento de MTU de ruta causado por un cortafuegos roto (que podría estar en cualquier parte del camino, no solo a su lado)
strace -p <pid of hung git daemon>
dice que está bloqueando?