Ho la seguente struttura delle chiamate:
- Jenkins corre
fab -Huser@host set_repository_commit_hash:123abc
. set_repository_commit_hash
corregit fetch
conpty = False
.- Il processo figlio
ssh git@github.com git-upload-pack 'user/repository.git'
non finisce mai.
Ho provato a correre git fetch
in 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:
- Emissione 14752 di Jenkins: polling SCM / numero massimo di polling simultaneo = 1 si blocca il polling github
- Perché git-upload-pack (durante il clone di git) si bloccherebbe?
- tortoisegit numero 1880: il recupero di tortoisegit si blocca a causa di tortoisegitplink in esecuzione / senza mai uscire (in particolare il commento # 7 )
- Cos'è questo processo casuale 'git-upload-pack' senza fine?
git-upload-pack
dovrebbe 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).
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.)
strace -p <pid of hung git daemon>
dice che sta bloccando?