git-upload-pack si blocca indefinitamente


30

Ho la seguente struttura delle chiamate:

  1. Jenkins corre fab -Huser@host set_repository_commit_hash:123abc.
  2. set_repository_commit_hashcorre git fetchcon pty = False.
  3. Il processo figlio ssh git@github.com git-upload-pack 'user/repository.git'non finisce mai.

Ho provato a correre git fetchin un clone locale e questo ha esito positivo, ma l'esecuzione ssh git@github.com git-upload-pack 'user/repository.git'restituisce semplicemente quanto segue e si blocca:

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

È un problema SSH / Git / Fabric / Jenkins noto?

L'ho fatto strace, ma non ho registrato la sessione. Credo che sia stato bloccato su un read.

Link eventualmente pertinenti:

  1. Emissione 14752 di Jenkins: polling SCM / numero massimo di polling simultaneo = 1 si blocca il polling github
  2. Perché git-upload-pack (durante il clone di git) si bloccherebbe?
  3. tortoisegit numero 1880: il recupero di tortoisegit si blocca a causa di tortoisegitplink in esecuzione / senza mai uscire (in particolare il commento # 7 )
  4. Cos'è questo processo casuale 'git-upload-pack' senza fine?

1
Hai provato qualcuno dei suggerimenti nelle domande e risposte SO? Inoltre cosa strace -p <pid of hung git daemon>dice che sta bloccando?
slm

@slm Hai in mente qualche suggerimento specifico?
l0b0,

1
Ciò che mi ha risolto è stato assicurarmi che Jenkins fosse in esecuzione come utente con le credenziali adeguate per i repository GIT
MauricioOtta,

1
Questo è ciò che git-upload-packdovrebbe fare, AFAICT. Sta aspettando che tu pronunci il protocollo git fetch-pack e gli dica quali elementi inviare (prova a eseguirlo su un repository locale, otterrai lo stesso output).
derobert,

2
(Presumendo che questa domanda non sia obsoleta, poiché è del 2013) Un nuovo git clone(da github) funziona sull'host su cui Jenkins sta cercando di recuperare? Sospetto che non lo farà, e probabilmente hai un problema di scoperta di Path MTU causato da un firewall rotto (che potrebbe trovarsi ovunque sul percorso, non solo dalla tua parte.)
derobert

Risposte:


0

Questo problema sembra essersi risolto da solo, come ci si può aspettare da un software in rapida evoluzione. Dal momento che non osservo questo problema probabilmente da un paio d'anni, vorrei estendere i miei ringraziamenti a chiunque lo abbia risolto e considerare questa domanda obsoleta.

Se riscontri questo problema con le recenti versioni di Git, considera di porre una domanda separata , poiché probabilmente non è lo stesso identico problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.