Saya memiliki struktur panggilan berikut:
- Jenkins berlari
fab -Huser@host set_repository_commit_hash:123abc
. set_repository_commit_hash
berjalangit fetch
denganpty = False
.- Proses anak
ssh git@github.com git-upload-pack 'user/repository.git'
tidak pernah selesai.
Saya sudah mencoba menjalankan git fetch
klon lokal dan itu berhasil, tetapi menjalankan ssh git@github.com git-upload-pack 'user/repository.git'
hanya mengembalikan yang berikut dan hang:
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
Apakah ini masalah SSH / Git / Fabric / Jenkins yang diketahui?
Saya melakukannya strace
, tetapi saya belum merekam sesi. Saya percaya itu macet di read
.
Tautan yang mungkin relevan:
- Masalah Jenkins 14752: Polling SCM / Maks. # Pemungutan suara serentak = 1 hang polling github
- Mengapa git-upload-pack (selama git clone) hang?
- tortoisegit issue 1880: tortoisegit mengambil hang karena menjalankan / tidak pernah keluar tortoisegitplink (terutama komentar # 7 )
- Apakah proses 'git-upload-pack' acak yang tidak pernah berakhir ini?
git-upload-pack
seharusnya dilakukan, AFAICT. Ini menunggu Anda untuk berbicara protokol git fetch-pack dan memberitahukannya hal-hal apa yang harus dikirim (coba jalankan di repositori lokal, Anda akan mendapatkan hasil yang sama).
git clone
(dari github) bekerja pada host yang Jenkins coba ambil? Saya kira itu tidak akan terjadi, dan Anda mungkin memiliki masalah penemuan Path MTU yang disebabkan oleh firewall yang rusak (yang mungkin ada di mana pun di jalan — bukan hanya di sisi Anda.)
strace -p <pid of hung git daemon>
dikatakannya memblokir?