Ich habe folgende Anrufstruktur:
- Jenkins rennt
fab -Huser@host set_repository_commit_hash:123abc
. set_repository_commit_hash
läuftgit fetch
mitpty = False
.- Der untergeordnete Prozess wird
ssh git@github.com git-upload-pack 'user/repository.git'
nie beendet.
Ich habe versucht, git fetch
in einem lokalen Klon auszuführen, und das ist erfolgreich, aber das Ausführen gibt ssh git@github.com git-upload-pack 'user/repository.git'
nur Folgendes zurück und hängt:
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
Ist dies ein bekanntes SSH / Git / Fabric / Jenkins-Problem?
Ich habe strace
es getan , aber ich habe die Sitzung nicht aufgezeichnet. Ich glaube es steckte auf einem read
.
Möglicherweise relevante Links:
- Jenkins Problem 14752: SCM-Abfrage / Max. Anzahl gleichzeitiger Abfragen = 1 hängt bei Github-Abfragen
- Warum sollte git-upload-pack (während des Klonens von git) hängen bleiben?
- tortoisegit issue 1880: Der Abruf von tortoisegit hängt, weil tortoisegitplink ausgeführt wird (insbesondere Kommentar 7 )
- Was ist dieser zufällige, endlose 'Git-Upload-Pack'-Prozess?
git-upload-pack
Genau das soll AFAICT tun. Es wartet darauf, dass Sie das git-Fetch-Pack-Protokoll sprechen und ihm mitteilen, welche Daten gesendet werden sollen (versuchen Sie es in einem lokalen Repository auszuführen, Sie erhalten dieselbe Ausgabe).
git clone
(von Github stammende) Arbeit auf dem Host, auf den Jenkins versucht, sie abzurufen? Ich vermute, dass dies nicht der Fall ist, und Sie haben wahrscheinlich ein Problem mit der Pfad-MTU-Erkennung, das durch eine kaputte Firewall verursacht wurde (die sich möglicherweise irgendwo auf dem Pfad befindet - nicht nur auf Ihrer Seite.)
strace -p <pid of hung git daemon>
sagt es auch, dass es blockiert?