Eu tenho a seguinte estrutura de chamada:
- Jenkins corre
fab -Huser@host set_repository_commit_hash:123abc
. set_repository_commit_hash
corregit fetch
compty = False
.- O processo filho
ssh git@github.com git-upload-pack 'user/repository.git'
nunca termina.
Eu tentei executar git fetch
em um clone local e isso foi bem-sucedido, mas executar ssh git@github.com git-upload-pack 'user/repository.git'
apenas retorna o seguinte e trava:
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
Esse é um problema conhecido do SSH / Git / Fabric / Jenkins?
Eu fiz strace
, mas não gravei a sessão. Eu acredito que estava preso em um read
.
Links possivelmente relevantes:
- Edição 14752 de Jenkins: Pesquisa SCM / Nº máximo de pesquisas simultâneas = 1 trava a pesquisa no github
- Por que o git-upload-pack (durante o clone do git) travava?
- tortoisegit edição 1880: a busca do tortoisegit trava devido à execução / intermitência do tortoisegitplink (especialmente o comentário nº 7 )
- O que é esse processo aleatório e interminável de 'git-upload-pack'?
git-upload-pack
deveria fazer, AFAICT. Ele está esperando você falar o protocolo git fetch-pack e dizer quais itens enviar (tente executá-lo em um repositório local, você obterá a mesma saída).
git clone
(do github) funciona no host que Jenkins está tentando buscar? Eu suspeito que não vai, e você provavelmente tem um problema de descoberta de caminho MTU causado por um firewall quebrado (que pode estar em qualquer lugar no caminho, não apenas o seu lado.)
strace -p <pid of hung git daemon>
diz que está bloqueando?