O git-upload-pack trava indefinidamente

30

Eu tenho a seguinte estrutura de chamada:

  1. Jenkins corre fab -Huser@host set_repository_commit_hash:123abc.
  2. set_repository_commit_hashcorre git fetchcom pty = False.
  3. O processo filho ssh [email protected] git-upload-pack 'user/repository.git'nunca termina.

Eu tentei executar git fetchem um clone local e isso foi bem-sucedido, mas executar ssh [email protected] 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:

  1. Edição 14752 de Jenkins: Pesquisa SCM / Nº máximo de pesquisas simultâneas = 1 trava a pesquisa no github
  2. Por que o git-upload-pack (durante o clone do git) travava?
  3. tortoisegit edição 1880: a busca do tortoisegit trava devido à execução / intermitência do tortoisegitplink (especialmente o comentário nº 7 )
  4. O que é esse processo aleatório e interminável de 'git-upload-pack'?
l0b0
fonte
11
Você já tentou alguma das sugestões nas perguntas e respostas da SO? Além disso, o que strace -p <pid of hung git daemon>diz que está bloqueando?
Slm
@slm Você tem alguma sugestão específica em mente?
L0b0
11
O fixo para mim foi certificando-se de Jenkins foi executado como o usuário com credenciais adequadas para os repos GIT
MauricioOtta
11
Isso é o que git-upload-packdeveria 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).
derobert
2
(Presumindo que essa pergunta não seja obsoleta, pois é de 2013) Um novo 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.)
derobert

Respostas:

0

Esse problema parece ter desaparecido por conta própria, como pode ser esperado por um software em rápida evolução. Como não observo esse problema há provavelmente alguns anos, gostaria de estender meus agradecimentos a quem o corrigiu e considerar obsoletos.

Se você está enfrentando esse problema com versões recentes do Git, considere fazer uma pergunta separada , pois provavelmente não é exatamente o mesmo problema.

l0b0
fonte