git-upload-pack hang tanpa batas

30

Saya memiliki struktur panggilan berikut:

  1. Jenkins berlari fab -Huser@host set_repository_commit_hash:123abc.
  2. set_repository_commit_hashberjalan git fetchdengan pty = False.
  3. Proses anak ssh [email protected] git-upload-pack 'user/repository.git'tidak pernah selesai.

Saya sudah mencoba menjalankan git fetchklon lokal dan itu berhasil, tetapi menjalankan ssh [email protected] 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:

  1. Masalah Jenkins 14752: Polling SCM / Maks. # Pemungutan suara serentak = 1 hang polling github
  2. Mengapa git-upload-pack (selama git clone) hang?
  3. tortoisegit issue 1880: tortoisegit mengambil hang karena menjalankan / tidak pernah keluar tortoisegitplink (terutama komentar # 7 )
  4. Apakah proses 'git-upload-pack' acak yang tidak pernah berakhir ini?
l0b0
sumber
1
Sudah mencoba salah satu saran di SO T&J? Juga apa yang strace -p <pid of hung git daemon>dikatakannya memblokir?
slm
@slm Apakah Anda memiliki saran khusus dalam pikiran?
l0b0
1
Apa yang diperbaiki bagi saya adalah memastikan Jenkins berjalan sebagai pengguna dengan kredensial yang tepat untuk repositori GIT
MauricioOtta
1
Itu yang git-upload-packseharusnya 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).
derobert
2
(Menganggap pertanyaan ini tidak usang, karena ini dari 2013) Apakah segar 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.)
derobert

Jawaban:

0

Masalah ini tampaknya telah hilang dengan sendirinya, seperti yang dapat diharapkan oleh perangkat lunak yang berkembang pesat. Karena saya belum mengamati masalah ini mungkin selama beberapa tahun sekarang saya ingin menyampaikan terima kasih kepada siapa pun yang memperbaikinya dan menganggap pertanyaan ini sudah usang.

Jika Anda mengalami masalah ini dengan versi Git terbaru, silakan pertimbangkan untuk mengajukan pertanyaan terpisah , karena kemungkinan bukan masalah yang sama persis.

l0b0
sumber